Built 21 Oct 2026 from Meta Graph API data pulled the same day (1 Jan–20 Oct 2026, unified attribution). Nothing in the ad account was changed. Every figure below is from the API or computed from it; the method notes say where a number is a judgement.
Matched on "Tomato Vine" in the ad name. Among the account's top 80 spenders, every tomato ad whose link we could read points at /collections/tomato-vine-refillable-candle, and no ad without "Tomato" in its name points there. No tomato ad spent anything before 2 Jun 2026, when the tomato campaign launched. Highlighted rows are analysed. Ad 551 is one video in two ad IDs (£9,498 together, so effectively joint top with Ad 707). Ad 487 is included as a close third.
| # | Ad | Ad set | Spend | Purchases | ROAS | Created | Status today |
|---|---|---|---|---|---|---|---|
| 1 | Ad 707 Image · Tomato Vine · UGC Testimonial OG - Copy | Ad Set 1 - MAIN - Broad - Exclude Customers | £9,226 | 230 | 1.73x | 14 Aug | PAUSED |
| 2 | Ad 551 Video · Tomato Vine · Unboxing OG - Copy | Ad Set 1 - MAIN - Broad - Exclude Customers | £4,934 | 109 | 1.50x | 5 Aug | ADSET_PAUSED |
| 3 | Ad 551 Video · Tomato Vine · Unboxing OG | Ad Set 2 - MAIN - Broad - Exclude Customers | £4,564 | 169 | 2.55x | 17 Jun | ADSET_PAUSED |
| 4 | Ad 487 Image · Tomato Vine · Refillable Starter Pack OG | Ad Set 1 - MAIN - Broad - Exclude Customers | £4,041 | 152 | 2.52x | 2 Jun | ARCHIVED |
| 5 | Ad 489 Image · Tomato Vine · Three Wick Tower OG | Ad Set 1 - MAIN - Broad - Exclude Customers | £3,598 | 119 | 2.47x | 2 Jun | ADSET_PAUSED |
| 6 | Ad 940 Image · Tomato Vine · Maker So Happy OG | Tomato - Broad - Exclude Customers | £3,565 | 68 | 1.26x | 25 Sept | ACTIVE |
| 7 | Ad 934 Image · Tomato Vine · Customer Quote Whole Hall OG | Tomato - Broad - Exclude Customers | £3,550 | 63 | 1.24x | 24 Sept | ACTIVE |
| 8 | Ad 828 Video · Tomato Vine · Scent Led OG | Ad Set 1 - MAIN - Broad - Exclude Customers | £3,457 | 91 | 1.85x | 15 Aug | PAUSED |
Purchases and ROAS: Meta pixel purchases, unified attribution (the watcher's definition). Pott's breakeven ROAS is 2.46x (margin sheet); the account ran 1.5x–2.7x a week over this period, so every ad here sat below it most weeks.
All three ads ran in the CBO campaign "CS | Sales | Cold & Warm | Evergreen (old Tomato vine)". Meta moves money between ads inside it, so a spend fall is often Meta's choice, not a sign the ad is spent.
| Date | Budget change | By |
|---|---|---|
| 6 Jun | £100 → £120/day | Casey Snow |
| 11 Jun | £120 → £144/day | Casey Snow |
| 14 Jun | £144 → £172/day | Casey Snow |
| 15 Jun | £172 → £206/day | Casey Snow |
| 3 Jul | £206 → £246/day | Casey Snow |
| 14 Jul | £246 → £290/day | Casey Snow |
| 25 Jul | £290 → £340/day | Casey Snow |
| 4 Aug | £340 → £408/day | Casey Snow |
| 5 Aug | £408 → £488/day | Casey Snow |
| 20 Aug | £488 → £800/day | Casey Snow |
| 30 Aug | £800 → £960/day | Casey Snow |
| 4 Sept | £960 → £1,100/day | Casey Snow |
| 19 Sept | £1,100 → £1,320/day | Casey Snow |
| 25 Sept | £1,320 → £1,820/day | Casey Ai Brain |
| 7 Oct | £1,820 → £2,550/day | Casey Ai Brain |
| 14 Oct | £2,550 → £3,060/day | Casey Snow |
| Date | Event |
|---|---|
| 2 Jun | Ad 487 created (OG) |
| 17 Jun | Ad 551 created (OG) |
| 5 Aug | Ad 551 created (OG - Copy) |
| 5 Aug | Ad Set 2 - MAIN - Broad - Exclude Customers set inactive |
| 14 Aug | Ad 707 created (OG - Copy) |
| 13 Sept | Ad 487 switched off (Deleted) |
| 19 Sept | Ad 707 switched off (Inactive) |
| 25 Sept | Ad Set 1 - MAIN - Broad - Exclude Customers set inactive |
| 25 Sept | Ad Set 2 - MAIN - Broad - Exclude Customers set inactive |
| 15–21 Jul | Account-wide site dip (account ROAS 1.32x vs ~1.9x; the watcher's 18 Jul check case) |
| 6 Oct | Christmas launch (owned-channel drop; distorts October baselines) |
Tomato ad batches (ads created per day): 2 Jun (29), 17 Jun (25), 14 Jul (30), 25 Jul (15), 5 Aug (44), 14 Aug (2), 15 Aug (4), 13 Sept (1), 24 Sept (13), 25 Sept (9), 12 Oct (6), 19 Oct (1). Median gap between batches ≈ 11 days. The 2–3 week brief→launch assumption cannot be checked from Meta: almost every creative file was uploaded the same day its ad was created, so production time leaves no trace in the account. What can be seen: Ad 707's return started falling 2 Sep, it was switched off 19 Sep, and the next tomato batch went live 24–25 Sep (23 days after the drop), consistent with roughly three weeks.
Ad Set 1 - MAIN, Evergreen (old Tomato vine) CBO. Live 14 Aug to 19 Sep 2026.
Click rate never moved (net of the account it stayed within −8%). What moved was reach: new people per £1k fell 40% in week 2 and about 50% every week after, and CPM vs the account rose 26% in week 2. Conversion rate and basket size fell only once the drop had started (CVR −21%, AOV −12% the week of 9 Sep). Its own weekly frequency stayed at 1.05–1.28, and its ad set's 7-day frequency never passed 2.45 against the 2.5 ceiling. This is an ad using up its pocket of a broad audience, fast, while Meta scaled the campaign (budget £488 → £800 a day on 20 Aug, £960 on 30 Aug, £1,100 on 4 Sep).
| Week | Spend | Share | ROAS | Base | CPA | CTR | CTR net Δ | CPM vs acct Δ | Freq | New reach/£1k Δ | CVR | AOV | Spend vs base | Acct ROAS Δ | Confounders |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12 Aug | £1,041 | 10% | 2.17x | – | £31 | 1.45% | – | – | 1.18 | 75,374 (–) | 2.5% | £66 | – | – | |
| 19 Aug | £2,696 | 31% | 1.89x | 2.17x | £39 | 1.46% | +0% | +26% | 1.24 | 45,397 (-40%) | 2.5% | £73 | +159% | +2% | scaled (spend >=1.5x baseline) |
| 26 Aug | £1,658 | 20% | 2.10x | 1.97x | £35 | 1.16% | -8% | +7% | 1.28 | 26,973 (-50%) | 3.6% | £73 | -11% | +49% | |
| 2 Sept drop | £1,603 | 20% | 1.60x | 2.01x | £42 | 1.24% | -1% | +11% | 1.20 | 23,468 (-48%) | 3.0% | £67 | -11% | -7% | |
| 9 Sept | £1,356 | 16% | 1.06x | 1.92x | £59 | 1.44% | +7% | +11% | 1.19 | 18,095 (-55%) | 2.2% | £62 | -22% | -20% | account ROAS -20% |
| 16 Sept | £873 | 8% | 1.17x | 1.72x | £55 | 1.30% | 0% | -5% | 1.05 | 29,176 (-7%) | 2.2% | £64 | -52% | -23% | pulled back (spend <0.5x baseline); account ROAS -23% |
Weeks run Wednesday to Tuesday so the last one ends 20 Oct. Δ columns compare each week with the ad's previous up-to-4 weeks (ratio of sums, as the watcher does). Shaded = past the trip bar (blue = leading signal, red = outcome).
Each cell is that week vs the ad's previous up-to-4 weeks. Blue = a leading signal past its bar, red = an outcome (ROAS, CPA) past its bar; the outlined column is the outcome-drop week.
| Signal (trip bar) | 19 Aug | 26 Aug | 2 Sept | 9 Sept | 16 Sept |
|---|---|---|---|---|---|
| CTR, net of account | +0% | -8% | -1% | +7% | 0% |
| CPM vs account | +26% | +7% | +11% | +11% | -5% |
| Ad weekly frequency | +5% | +5% | -3% | -4% | -15% |
| New reach per £1k | -40% | -50% | -48% | -55% | -7% |
| CVR | -3% | +46% | +9% | -21% | -20% |
| ROAS (outcome) | -13% | +7% | -20% | -45% | -32% |
| CPA (outcome) | +26% | -4% | +19% | +60% | +34% |
OG in Ad Set 2 from 17 Jun; on 5 Aug Ad Set 2 was switched off and the same video copied into Ad Set 1 (the Copy), which ran to 25 Sep.
The classic wear-out. Click rate net of the account fell from the week of 8 Jul (−16%, −14%, −26%, −11%) while ROAS held at 2.3x–2.6x, then hold rate followed (−11% the week of 29 Jul). Hook rate stayed flat at 27–30% throughout. CPM vs the account only rose at the drop. The drop itself landed on the Copy: once Ad 707 launched on 14 Aug, Meta moved the campaign's money onto it and the Copy fell to £223 a week at 0.71x. So the drop is fatigue that Meta's own budget move exposed. Both watchers lost the history at the copy: the Copy was a new ad ID with no baseline.
| Week | Spend | Share | ROAS | Base | CPA | CTR | CTR net Δ | CPM vs acct Δ | Hook | Hold | CVR | AOV | Spend vs base | Acct ROAS Δ | Confounders |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 17 Jun | £688 | 12% | 2.51x | – | £29 | 1.58% | – | – | 27.0% | 18.4% | 4.1% | £72 | – | – | |
| 24 Jun | £556 | 10% | 2.82x | 2.51x | £22 | 1.86% | +18% | -4% | 28.9% | 16.6% | 4.3% | £63 | -19% | +2% | AOV -13% |
| 1 Jul | £408 | 7% | 3.02x | 2.65x | £24 | 1.78% | +4% | -7% | 29.8% | 17.0% | 3.4% | £72 | -34% | -2% | |
| 8 Jul | £832 | 12% | 2.53x | 2.74x | £29 | 1.41% | -16% | -7% | 29.6% | 16.2% | 3.5% | £72 | +51% | -8% | scaled (spend >=1.5x baseline) |
| 15 Jul | £418 | 6% | 1.51x | 2.67x | £42 | 1.37% | -14% | -14% | 28.5% | 16.0% | 2.1% | £63 | -33% | -32% | account ROAS -32% |
| 22 Jul | £598 | 9% | 2.59x | 2.50x | £28 | 1.11% | -26% | -2% | 26.7% | 15.6% | 4.1% | £74 | +8% | +8% | |
| 29 Jul | £1,061 | 13% | 2.29x | 2.44x | £29 | 1.14% | -11% | -9% | 28.0% | 14.3% | 3.6% | £66 | +88% | +8% | scaled (spend >=1.5x baseline) |
| 5 Aug | £1,723 | 16% | 2.30x | 2.31x | £32 | 1.13% | -9% | -3% | 27.5% | 14.8% | 3.8% | £73 | +137% | +8% | scaled (spend >=1.5x baseline) |
| 12 Aug drop | £851 | 8% | 1.73x | 2.25x | £45 | 1.19% | +2% | +21% | 28.1% | 15.3% | 3.1% | £78 | -10% | -1% | |
| 19 Aug | £223 | 3% | 0.71x | 2.22x | £74 | 1.44% | +27% | +54% | 26.5% | 16.7% | 1.9% | £53 | -79% | -3% | pulled back (spend <0.5x baseline); AOV -26% |
| 26 Aug | £377 | 5% | 0.75x | 2.08x | £63 | 1.26% | +21% | +46% | 27.2% | 15.2% | 2.7% | £47 | -61% | +45% | pulled back (spend <0.5x baseline); AOV -34% |
| 2 Sept | £253 | 3% | 1.07x | 1.85x | £51 | 1.15% | +6% | +26% | 23.1% | 16.3% | 3.5% | £54 | -68% | -5% | pulled back (spend <0.5x baseline); AOV -25% |
| 9 Sept | £311 | 4% | 2.67x | 1.28x | £24 | 1.41% | +15% | -6% | 25.8% | 14.9% | 6.2% | £64 | -27% | -20% | account ROAS -20% |
| 16 Sept | £750 | 7% | 0.92x | 1.32x | £58 | 1.20% | -6% | -2% | 28.3% | 13.1% | 3.2% | £53 | +158% | -23% | scaled (spend >=1.5x baseline); account ROAS -23% |
| 23 Sept | £450 | 3% | 0.34x | 1.23x | £225 | 0.92% | -23% | +17% | 28.5% | 12.9% | 1.3% | £76 | +6% | -22% | account ROAS -22% |
Weeks run Wednesday to Tuesday so the last one ends 20 Oct. Δ columns compare each week with the ad's previous up-to-4 weeks (ratio of sums, as the watcher does). Shaded = past the trip bar (blue = leading signal, red = outcome). Frequency and new reach are per ad ID and cannot be added across OG and Copy (reach is not additive), so they are shown per ID in the charts below.
Each cell is that week vs the ad's previous up-to-4 weeks. Blue = a leading signal past its bar, red = an outcome (ROAS, CPA) past its bar; the outlined column is the outcome-drop week.
| Signal (trip bar) | 24 Jun | 1 Jul | 8 Jul | 15 Jul | 22 Jul | 29 Jul | 5 Aug | 12 Aug | 19 Aug | 26 Aug | 2 Sept | 9 Sept | 16 Sept | 23 Sept |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CTR, net of account | +18% | +4% | -16% | -14% | -26% | -11% | -9% | +2% | +27% | +21% | +6% | +15% | -6% | -23% |
| CPM vs account | -4% | -7% | -7% | -14% | -2% | -9% | -3% | +21% | +54% | +46% | +26% | -6% | -2% | +17% |
| Hook rate | +7% | +7% | +4% | -1% | -9% | -2% | -2% | +1% | -4% | -2% | -16% | -5% | +10% | +6% |
| Hold rate | -10% | -3% | -7% | -5% | -5% | -11% | -4% | +3% | +13% | +3% | +8% | -4% | -16% | -10% |
| CVR | +4% | -18% | -12% | -44% | +21% | +7% | +12% | -13% | -47% | -24% | +4% | +114% | -13% | -65% |
| ROAS (outcome) | +12% | +14% | -8% | -43% | +4% | -6% | 0% | -23% | -68% | -64% | -42% | +108% | -31% | -73% |
| CPA (outcome) | -22% | -6% | +15% | +60% | +4% | -2% | +6% | +44% | +130% | +84% | +31% | -54% | +34% | +392% |
Ad Set 1 - MAIN. Live 2 Jun; deleted 13 Sep 2026.
Click rate net of the account was −20% the week of 8 Jul and ran −9% to −23% from 29 Jul. The outcome drop on 12 Aug came with Meta already pulling spend (−63% vs baseline) and a smaller basket (AOV −21%), the week after 44 new tomato ads went live in the same campaign on 5 Aug. CVR's fall on 15 Jul was the account-wide site dip (account ROAS −32% that week), not this ad. The 15 Jul and 22 Jul weeks also fail the over-scaled guard (spend 2-2.5x baseline), so they cannot be the drop week.
| Week | Spend | Share | ROAS | Base | CPA | CTR | CTR net Δ | CPM vs acct Δ | Freq | New reach/£1k Δ | CVR | AOV | Spend vs base | Acct ROAS Δ | Confounders |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 27 May | £2 | 0% | 0.00x | – | – | 0.00% | – | – | 1.05 | 68,553 (–) | – | – | – | – | |
| 3 Jun | £2 | 0% | 0.00x | 0.00x | – | 0.50% | – | -4% | 1.12 | 76,522 (+12%) | 0.0% | – | +45% | -12% | |
| 10 Jun | £243 | 4% | 2.76x | 0.00x | £27 | 1.55% | +404% | +4% | 1.28 | 65,887 (-10%) | 2.8% | £74 | +12382% | -24% | scaled (spend >=1.5x baseline); account ROAS -24% |
| 17 Jun | £109 | 2% | 3.46x | 2.71x | £22 | 1.73% | +29% | -1% | 1.16 | 57,337 (-13%) | 3.0% | £75 | +32% | -13% | |
| 24 Jun | £84 | 1% | 3.62x | 2.94x | £17 | 1.51% | +3% | +17% | 1.19 | 39,967 (-37%) | 5.1% | £61 | -5% | -9% | AOV -18% |
| 1 Jul | £228 | 4% | 3.21x | 3.08x | £19 | 1.71% | +8% | -5% | 1.32 | 51,673 (-12%) | 3.0% | £61 | +108% | -5% | scaled (spend >=1.5x baseline); AOV -14% |
| 8 Jul | £323 | 5% | 5.75x | 3.14x | £12 | 1.25% | -20% | +5% | 1.35 | 42,877 (-24%) | 7.0% | £66 | +95% | -7% | scaled (spend >=1.5x baseline) |
| 15 Jul | £651 | 10% | 1.41x | 4.39x | £54 | 1.46% | -1% | -9% | 1.36 | 58,599 (+24%) | 1.1% | £76 | +250% | -32% | scaled (spend >=1.5x baseline); account ROAS -32% |
| 22 Jul | £682 | 10% | 2.56x | 2.96x | £27 | 1.45% | +3% | -2% | 1.32 | 55,394 (+6%) | 2.1% | £70 | +112% | +8% | scaled (spend >=1.5x baseline) |
| 29 Jul | £589 | 7% | 2.61x | 2.78x | £22 | 1.17% | -13% | -2% | 1.37 | 51,758 (-4%) | 3.2% | £57 | +25% | +8% | AOV -17% |
| 5 Aug | £334 | 3% | 2.60x | 2.69x | £26 | 1.23% | -9% | -11% | 1.20 | 57,570 (+7%) | 2.7% | £67 | -40% | +8% | |
| 12 Aug drop | £210 | 2% | 1.48x | 2.24x | £35 | 1.03% | -23% | +17% | 1.30 | 36,404 (-35%) | 2.9% | £52 | -63% | -1% | pulled back (spend <0.5x baseline); AOV -21% |
| 19 Aug | £115 | 1% | 0.59x | 2.46x | £115 | 1.01% | -21% | +39% | 1.36 | 20,885 (-60%) | 1.0% | £69 | -75% | -3% | pulled back (spend <0.5x baseline) |
| 26 Aug | £196 | 2% | 2.38x | 2.23x | £39 | 1.07% | +2% | +35% | 1.43 | 16,907 (-65%) | 3.0% | £93 | -37% | +45% | |
| 2 Sept | £190 | 2% | 1.37x | 2.01x | £63 | 0.87% | -17% | +12% | 1.36 | 27,410 (-28%) | 2.2% | £87 | -11% | -5% | |
| 9 Sept | £82 | 1% | 1.08x | 1.56x | £82 | 0.88% | -11% | +3% | 1.27 | 13,152 (-50%) | 2.0% | £89 | -54% | -20% | pulled back (spend <0.5x baseline); account ROAS -20% |
Weeks run Wednesday to Tuesday so the last one ends 20 Oct. Δ columns compare each week with the ad's previous up-to-4 weeks (ratio of sums, as the watcher does). Shaded = past the trip bar (blue = leading signal, red = outcome).
Each cell is that week vs the ad's previous up-to-4 weeks. Blue = a leading signal past its bar, red = an outcome (ROAS, CPA) past its bar; the outlined column is the outcome-drop week.
| Signal (trip bar) | 3 Jun | 10 Jun | 17 Jun | 24 Jun | 1 Jul | 8 Jul | 15 Jul | 22 Jul | 29 Jul | 5 Aug | 12 Aug | 19 Aug | 26 Aug | 2 Sept | 9 Sept |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CTR, net of account | +404% | +29% | +3% | +8% | -20% | -1% | +3% | -13% | -9% | -23% | -21% | +2% | -17% | -11% | |
| CPM vs account | -4% | +4% | -1% | +17% | -5% | +5% | -9% | -2% | -2% | -11% | +17% | +39% | +35% | +12% | +3% |
| Ad weekly frequency | +7% | +17% | -10% | -4% | +7% | +7% | +5% | -2% | +2% | -11% | -2% | +3% | +9% | +6% | -6% |
| New reach per £1k | +12% | -10% | -13% | -37% | -12% | -24% | +24% | +6% | -4% | +7% | -35% | -60% | -65% | -28% | -50% |
| CVR | +6% | +79% | -6% | +122% | -77% | -25% | +31% | +3% | +35% | -61% | +4% | -17% | -18% | ||
| ROAS (outcome) | +27% | +23% | +4% | +83% | -68% | -14% | -6% | -3% | -34% | -76% | +7% | -32% | -30% | ||
| CPA (outcome) | -21% | -34% | -18% | -46% | +265% | +21% | -11% | +5% | +20% | +351% | +48% | +85% | +73% |
The watcher's own code (backed up as watch.cjs.backup-21-oct-before-refresh) was run unchanged for each of 203 days against cached API data, with its ledger carried forward as the daily cron would. Before trusting it, the replay was checked against the four real-API backtests from 20 Oct (30 Jul, 27 Aug, 10 Sep, 24 Sep): 873 of 873 ad judgements identical. The new code's live run for 20 Oct also matched its replay (213 of 213).
| Ad | Outcome-drop week | Old: first alert | Lead | Old: "Cut today" | New: Brief | New: Build | New: Launch | Stage changes old → new |
|---|---|---|---|---|---|---|---|---|
| Ad 707 | 2 Sept | 29 Aug | 4 days | 29 Aug (4 days) | 19 Aug (14 days) | 27 Aug (6 days) | 30 Aug (3 days) | 16 → 5 |
| Ad 551 OG | 12 Aug | 17 Jul | 26 days | 23 Jul (20 days) | 22 Jun (51 days) | 17 Jul (26 days) | 23 Jul (20 days) | 18 → 10 |
| Ad 551 Copy | 12 Aug | 29 Aug | -17 days | 28 Sept (-47 days) | 10 Aug (2 days) | 29 Aug (-17 days) | 30 Aug (-18 days) | 14 → 12 |
| Ad 487 | 12 Aug | 14 Jul | 29 days | never | 14 Jul (29 days) | 14 Jul (29 days) | 11 Aug (1 day) | 19 → 12 |
Lead = days from the first call to the first day of the outcome-drop week (negative = after it). Ad 551's drop is the creative's (12 Aug, OG and Copy combined). The Copy is a new ad ID, so both watchers judged it from scratch: too new until 17 Aug, then "pulled back".
| Stage | Action | Trigger | Basis |
|---|---|---|---|
| m Monitor | Watch | Unchanged: one signal alone, return moving with no leading signal, over-scaled, pulled back, check site, audience-not-creative (ad set frequency only). | [EXISTING] |
| b Brief refresh | Brief the refresh now: same angle and offer, new hook, opening frame, thumbnail, first line or format | A winner: 10%+ of 7-day spend, ROAS at or above the account's 7-day ROAS, 10+ sales this week. Too-new ads qualify. | [EVIDENCE: tomato] Ad 707 took 31% of spend in week 2 and its return fell in week 4, faster than a 2-3 week build. Share bar = existing bigShare [EXISTING]; ROAS ≥ account and 10 sales [JUDGEMENT]. |
| B Build refresh | Put the refresh into production now, live next to the original within 2 weeks | Old Highly likely, unchanged: both leading families tripped, one Strong, or one still tripped a week later. Return not yet hard. | [EXISTING] trigger. [EVIDENCE: tomato] fired 26-29 days before the drop on Ads 551 and 487; across Pott these ads earned 1.14x baseline net of the account over the next 14 days, so the stage is early, not wrong. |
| L Launch refresh | Launch the refresh in the same ad set as the original now. Never pause the original. | Old Fatigued or Close: return hard plus a leading family, Strong leading plus Moderate return, purchases −50%, or a big spender under half its best week. On an account-wide run a fresh Launch drops to Build (if its leading signals alone justify it) or Monitor. | [EXISTING] triggers. Pott Apr-Oct: old Fatigued and Close calls went on to 0.44x and 0.55x of baseline over the next 14 days, net of the account; new Launch (held days included) 0.70x. Account-wide demotion [EXISTING], now only for a fresh Launch. |
| O Hand over | Let the refresh take the budget; wind the original down once the refresh carries most of the concept for 7 days | A refresh is live: same campaign, same product + angle name fields, different ad number and different image/video, launched 3+ days later (or named "Refresh of 707", or mapped in config). It has £100+ and 5+ sales this week, ROAS ≥ 0.9x the original's this week and ≥ 0.8x the original's baseline. | [JUDGEMENT] No tomato refresh was named so it could be matched; Ad 1035 showed the duplicate trap (same image as Ad 1000). |
| Change | Rule | Basis |
|---|---|---|
| New reach check (audience family) | New people per £1k vs baseline weeks, from cumulative reach since the ad was created. Moderate −45%, strong −55%. | [EVIDENCE: tomato] Ad 707's click rate never moved; new reach per £ ran −45% to −55% from 27 Aug. Ad 551 held within ±20%. Bars set at the worst ~10% / ~4% of Pott's material ad-days, because new reach falls with age anyway (median −26% under 3 weeks). |
| Sticky stages | An ad keeps the highest stage it earned in the last 7 days. Held days do not count, so a hold cannot extend itself. | [JUDGEMENT] [EVIDENCE: tomato] the old stages changed 16-19 times per tomato ad (Ad 707: monitor/fatigued/monitor on 11-13 Sep). New: 5-12. |
| Audience-not-creative | Only when the ad set's frequency trips. A CPM or new-reach move on one ad in a broad ad set is the creative saturating, so it goes up the ladder. | [EVIDENCE: tomato] Ad 707 (broad, frequency ~1.2). |
| Young-ad and no-breakeven caps | Still computed, but both Fatigued and Close map to Launch, so they no longer change the stage (they only guarded a cut). | [EXISTING] |
| Everything else | Thresholds, windows, chance test, bigger-baskets guard, check-site, over-scaled, pulled back, persistence, families: unchanged. | [EXISTING] |
Wording in every action, card, email line and report heading now says refresh/launch/hand over. Nothing anywhere says cut or pause. Cron and email are unchanged and still off.
Every material Pott ad, every day, 1 Apr–20 Oct (about 6 material ads a day). A refresh stage lasts longer than an old alert, because it holds for 7 days, so the count of ads opening a refresh is the fairer comparison.
| Month | Old: ads entering Highly likely+ | Old: entering Close/Fatigued | New: ads entering Brief+ | New: entering Launch |
|---|---|---|---|---|
| 2026-04 | 14 | 5 | 15 | 5 |
| 2026-05 | 7 | 5 | 10 | 5 |
| 2026-06 | 8 | 3 | 7 | 3 |
| 2026-07 | 10 | 6 | 9 | 8 |
| 2026-08 | 8 | 6 | 7 | 6 |
| 2026-09 | 2 | 0 | 5 | 0 |
| 2026-10 | 8 | 4 | 8 | 4 |
| Total | 57 | 29 | 61 | 31 |
An entry = an ad reaching the stage for the first time in 30 days. Daily replay, 1 Apr to 20 Oct 2026.
| Old stage | Ad-days | New stage | Ad-days | |
|---|---|---|---|---|
| Fatigued (cut today) | 36 (3%) | Launch refresh | 196 (15%) | |
| Close | 39 (3%) | Hand over | 3 (0%) | |
| Highly likely | 228 (19%) | Build refresh | 402 (32%) | |
| Brief refresh | 152 (12%) | |||
| Monitor | 557 (46%) | Monitor | 310 (24%) | |
| None | 338 (28%) | None | 206 (16%) | |
| Material ad-days | 1198 | Material ad-days | 1269 |
New Build/Launch include held days (about a third of all flagged days). On a typical day: ~6.3 material ads, ~1 at Launch, ~2 at Build, under 1 at Brief.
Weekly samples (Tuesdays 7 Apr–6 Oct), each ad's next-14-day ROAS divided by its own 28-day baseline. "Net of account" divides again by the account's own move over the same windows, so a falling account does not flatter or punish a stage.
| Stage | Calls | Still spending | Next 14d ROAS ÷ baseline | Same, net of account | Share under 0.8x (net) |
|---|---|---|---|---|---|
| fatigued | 5 | 4 | 0.47x | 0.44x | 75% |
| close | 7 | 6 | 0.43x | 0.55x | 67% |
| highly-likely | 31 | 29 | 1.12x | 1.14x | 38% |
| monitor (account-wide: held-back Fatigued/Close) | 12 | 9 | 0.88x | 0.92x | 33% |
| monitor | 54 | 49 | 0.73x | 0.73x | 57% |
| none | 38 | 35 | 0.96x | 1.04x | 29% |
| Stage | Calls | Still spending | Next 14d ROAS ÷ baseline | Same, net of account | Share under 0.8x (net) |
|---|---|---|---|---|---|
| launch-refresh | 26 | 23 | 0.63x | 0.70x | 65% |
| build-refresh (account-wide day: held back from Launch) | 8 | 5 | 0.68x | 0.83x | 40% |
| build-refresh | 42 | 40 | 1.12x | 1.14x | 33% |
| brief-refresh | 20 | 14 | 0.88x | 0.82x | 50% |
| monitor | 33 | 29 | 0.63x | 0.66x | 69% |
| none | 23 | 22 | 0.96x | 1.06x | 14% |
Small samples (5–47 calls per stage). Read the ordering, not the decimals. Launch and Monitor ads went on to fall; Build and None ads kept earning. Build is an early stage by design.
The new watcher run against the live API (dry run, in a sandbox so Pott's real ledger, state and last-result files were not touched), as of 20 Oct, with the ledger carried from the replay. Account: 7-day spend £27,174, ROAS 1.72x → 1.67x. All ads listed are ACTIVE today.
| Ad | 7d spend | Share | ROAS base → 7d | Signals | Old watcher said | Action |
|---|---|---|---|---|---|---|
| Ad 1000 Image · Holly · Customer Quote Tree Without Needle Drop Christmas - Broad - Exclude Customers · 13 days · preview | £7,193 | 27% | 1.95x → 1.30x | ctr:moderate, cpa:strong, peak:moderate | fatigued | Launch the refresh in the same ad set now. Do not pause the original. No refresh of it is live yet. |
| Ad 983 Image · Icicle · New Glaze Fresh From The Kiln Christmas - Broad - Exclude Customers · 13 days · preview | £1,433 | 5% | 2.32x → 1.70x | ctr:moderate, cpa:moderate, peak:strong | close | Launch the refresh in the same ad set now. Do not pause the original. No refresh of it is live yet. |
| Ad | 7d spend | Share | ROAS base → 7d | Signals | Old watcher said | Action |
|---|---|---|---|---|---|---|
| Ad 922 Video · Seasalt Starter Pack · Buy Once Refill Forever Everything Else - Broad - Exclude Customers · 25 days · held from earlier run · preview | £1,598 | 6% | 1.38x → 1.60x | – | none | Put the refresh into production; live within 2 weeks. No refresh of it is live yet. Held: it earned this stage within the last 7 days. |
| Ad 995 Image · Icicle · Meet Icicle Limited Edition Christmas - Broad - Exclude Customers · 13 days · preview | £850 | 3% | 2.14x → 1.76x | ctr:strong | highly-likely | Put the refresh into production; live within 2 weeks. No refresh of it is live yet. |
| Ad 973 Video · Fir · Smells Like A Christmas Tree Christmas - Broad - Exclude Customers · 13 days · preview | £648 | 2% | 2.14x → 4.50x | ctr:strong, hold:moderate | highly-likely | Put the refresh into production; live within 2 weeks. No refresh of it is live yet. |
| Ad 940 Image · Tomato Vine · Maker So Happy Tomato - Broad - Exclude Customers · 25 days · preview | £525 | 2% | 1.34x → 0.79x | reach:moderate, cpa:moderate, peak:strong, purch:strong | monitor | Put the refresh into production; live within 2 weeks. No refresh of it is live yet. |
| Ad 837 Image · Fig · Scent Led Seasonal - Broad - Exclude Customers · 26 days · held from earlier run · preview | £470 | 2% | 2.05x → 2.27x | – | none | Put the refresh into production; live within 2 weeks. No refresh of it is live yet. Held: it earned this stage within the last 7 days. |
| Ad 915 Video · Cook Candle · Review At The Hob Ad Set 1 - MAIN - Broad - Exclude Customers · 31 days · held from earlier run · preview | £323 | 1% | 2.35x → 1.69x | peak:moderate | monitor | Put the refresh into production; live within 2 weeks. No refresh of it is live yet. Held: it earned this stage within the last 7 days. |
| Ad | 7d spend | Share | ROAS base → 7d | Signals | Old watcher said | Action |
|---|---|---|---|---|---|---|
| Ad 1008 Video · Starter Pack · Gifted Last Christmas Still Using It Gifting - Broad - Exclude Customers · 13 days | £717 | 3% | 1.09x → 1.98x | cpm:moderate | monitor | Watch; no action yet. |
| Ad 1010 Image · Christmas Collection · Favourite Gift Last Christmas Gifting - Broad - Exclude Customers · 13 days | £353 | 1% | 1.02x → 1.55x | ctr:moderate | monitor | Watch; no action yet. |
| Ad | 7d spend | Share | ROAS base → 7d | Signals | Old watcher said |
|---|---|---|---|---|---|
| Ad 934 Image · Tomato Vine · Customer Quote Whole Hall Tomato - Broad - Exclude Customers · 26 days | £788 | 3% | 1.20x → 1.40x | – | none |
| Ad 1006 Video · Starter Pack · Bought It For My Girlfriend Gifting - Broad - Exclude Customers · 13 days | £538 | 2% | 1.70x → 2.25x | – | none |
| Ad 964 Video · Seasalt · Standing By The Sea Everything Else - Broad - Exclude Customers · 16 days | £398 | 2% | 1.64x → 1.74x | – | none |
| Ad | 7d spend | Share | ROAS base → 7d | Signals | Old watcher said |
|---|---|---|---|---|---|
| Ad 1020 Video · Cook Candle · One Candle For Your Kitchen Ad Set 1 - MAIN - Broad - Exclude Customers · 8 days | £1,056 | 4% | 1.28x → 1.88x | – | too-new |
| Ad 1025 Video · Tomato Vine · Only Tomato Candle You Need Tomato - Broad - Exclude Customers · 8 days | £582 | 2% | 3.40x → 2.91x | – | too-new |
| Ad 1011 Image · Christmas Collection · Gifted To Lots Of People Gifting - Broad - Exclude Customers · 13 days | £574 | 2% | 0.00x → 1.20x | – | too-new |
| Ad 970 Video · Christmas Collection · Christmas Scents Are Here Christmas - Broad - Exclude Customers · 13 days | £413 | 2% | 1.50x → 0.67x | – | too-new |
| Ad 1035 Image · Holly · Customer Quote Tree Without Needle Drop Christmas - Broad - Exclude Customers · 3 days | £345 | 1% | – → 1.49x | – | too-new |
Files: REPORT.md, CHANGES.md, data/ (raw + computed), scripts/ (every step, rerunnable). De-indexed meta tag included; not published anywhere.