Ad fatigue watch
Pott Candles
17 Oct to 23 Oct

1 launch, 0 build, 0 brief, 0 hand over

Every live ad with real spend, last 7 days (17 Oct to 23 Oct) against the 28 days before. Each ad is run through the same 9 checks. The cards show what tripped and what to do, every ad opens to a 21-day trend, and the rules behind the stages are at the bottom.

Ads checked
13
13 too new, 185 too small
Launch / hand over
1
1 launch now · 0 hand over
Build / brief
0
0 build · 0 brief
Spend on flagged ads
£6,512
22% of £28,957 this week
Account ROAS
1.76x
was 1.67x
Account CPM
£21.00
was £19.62

Flagged ads

Ad 1000 creative

Ad 1000

Launch refresh · Next to the original, now
Image | Holly | Customer Quote Tree Without Needle Drop | Review Card
Evergreen (old Tomato vine) / Christmas
7-day spend
£6,512
22% of account
ROAS
1.76x → 1.21x
prior 14d → last 7d
Purchases / wk
132 → 92
Cost per sale
£48.12 → £70.79
baseline → last 7d
Daily spend vs before
103%
Meta pushing more in
Breakeven ROAS
2.46x
from margin sheet · below
Days running
16
10 days of baseline: low confidence
Families tripped
attention moderate, return strong
Do: Launch the refresh now, in the same ad set as the original (same angle and offer, new hook, opening frame, thumbnail, first line or format). Do not pause the original: budget moves once the refresh proves itself. No refresh of this ad is live yet, so this one is late. Tripped: click rate falling, cost per sale rising, well off its best week, purchases falling.
4 of 9 checks tripped
Click rateAttention
Moderate
link CTR 1.39% → 1.18% (-15% own, -15% net of account)
Hook rateAttention
No data
Not a video, or too few impressions
Hold rateAttention
No data
Not enough data to judge
Cost to reachAudience
Clear
CPM £19.51 → £18.71, -10% vs the account's own move (+7%)
Audience wearAudience
Clear
ad set 7-day frequency 2.32 → 2.13 (-8%); prospecting ceiling 2.5 / 3
New reachAudience
Clear
new reach per £1k 25,108 → 19,016 (-24%); 123,843 people new to this ad this week
Cost per saleReturn
Strong
cost per sale £48.12 → £70.79 (+47%); ROAS 1.76x → 1.21x; purchases 132/wk → 92; chance of this few sales 0%
Return vs bestReturn
Moderate
ROAS 1.21x vs its best 7 days 2.04x (2026-10-04 to 2026-10-10)
PurchasesReturn
Moderate
purchases 132/wk → 92 (-30%); chance of this few 0%

Every ad, every check

All 13 ads with real spend, biggest first. Click an ad to see its last 21 days. Includes 2 Meta has already pulled spend from.

AdVerdictClick rateHook rateHold rateCost to reachAudience wearNew reachCost per saleReturn vs bestPurchases
Ad 1000 ▾
£6,512 · 1.21x
Launch refresh · Next to the original, nowModerateNo dataNo dataClearClearClearStrongModerateModerate
Ad 922 ▾
£1,423 · 1.67x
Monitor · Meta already pulled backClearClearClearClearClearClearClearClearNo data
Ad 983 ▾
£1,343 · 1.40x
Monitor · WatchClearNo dataNo dataClearClearClearStrongStrongClear
Ad 973 ▾
£814 · 3.84x
None · NothingClearClearClearClearClearClearClearNo dataClear
Ad 934 ▾
£617 · 1.44x
None · NothingClearNo dataNo dataClearClearClearClearClearClear
Ad 995 ▾
£599 · 2.55x
None · NothingClearNo dataNo dataClearClearClearClearClearClear
Ad 1008 ▾
£575 · 1.92x
None · NothingClearClearClearClearClearClearClearNo dataClear
Ad 970 ▾
£567 · 1.31x
None · NothingClearClearClearClearClearClearNo dataNo dataNo data
Ad 1006 ▾
£534 · 2.36x
None · NothingClearClearClearClearClearClearClearClearClear
Ad 964 ▾
£438 · 1.78x
None · NothingClearClearClearClearClearClearClearNo dataClear
Ad 940 ▾
£396 · 0.62x
Monitor · Meta already pulled backClearNo dataNo dataClearClearModerateModerateStrongNo data
Ad 837 ▾
£377 · 2.73x
Monitor · WatchModerateNo dataNo dataClearClearClearClearClearClear
Ad 1010 ▾
£303 · 1.59x
Monitor · Meta already pulled backModerateNo dataNo dataClearClearClearClearClearNo data

Too new / too small

Labelled separately, never shown as None. Too new = under a week of baseline, judged from next week (a too-new winner is briefed above). Too small = under £300 and 3% of spend this week, so it cannot leak enough to matter.

AdLabel7-day spend
Ad 1020Too new£968
Ad 1025Too new£714
Ad 1063Too new£651
Ad 1011Too new£644
Ad 1035Too new£459
Test - Ad 1033 | Video | Fir Starter Pack | Pine Disinfectant Real Christmas Tree | Starter Pack DemoToo new£411
Ad 975Too new£385
Ad 1067Too new£373
Test - Ad 1028 | Image | Fir Grand | Winning Quote New Grand Image | Review CardToo new£342
Test - Ad 1027 | Image | Fir Starter Pack | Short Review Smells Like A Fir Tree | Review CardToo new£337
Test - Ad 1029 | Image | Fir | True To Life Review | Story Informal PhotoToo new£337
Test - Ad 1030 | Image | Fir | Not Fake Review | Story LifestyleToo new£335
Ad 1022Too new£305
185 ads too small to judge (£8,198 between them this week)
AdLabel7-day spend
Ad 915Too small£276
Ad 967Too small£264
Ad 1066Too small£263
Ad 951Too small£259
Test - Ad 1032 | Video | Fir | Scent Led | Product VideoToo small£258
Test - Ad 1031 | Video | Fir | Founder Story | Founder StoryToo small£249
Ad 1055Too small£244
Ad 1057Too small£242
Ad 961Too small£235
Ad 420Too small£221
Ad 942Too small£211
Ad 925Too small£206
Ad 1061Too small£185
Ad 1060Too small£173
Ad 990Too small£172
Ad 1007Too small£170
Ad 944Too small£170
Ad 875Too small£170
Ad 945Too small£167
Ad 997Too small£167
Ad 968Too small£144
Ad 966Too small£141
Ad 962Too small£131
Ad 928Too small£130
Ad 779Too small£123
Ad 588Too small£113
Ad 974Too small£112
Ad 1059Too small£108
Ad 1016Too small£103
Ad 983Too small£102
Ad 926Too small£102
Ad 960Too small£94
Ad 1039Too small£79
Ad 977Too small£78
Ad 916Too small£78
Ad 979Too small£77
Ad 1058Too small£69
Ad 821Too small£66
Ad 927Too small£64
Ad 584Too small£61
Ad 1056Too small£61
Ad 852Too small£58
Ad 885Too small£57
Ad 920Too small£53
Ad 583Too small£48
Ad 1024Too small£48
Ad 982Too small£47
Ad 1013Too small£45
Ad 1003Too small£43
Ad 972Too small£43
Ad 936Too small£43
Ad 578Too small£42
Ad 1004Too small£41
Ad 580Too small£37
Ad 1012Too small£35
Ad 996Too small£35
Ad 865Too small£33
Ad 950Too small£33
Ad 582Too small£33
Ad 988Too small£31
Ad 861Too small£29
Ad 321Too small£29
Ad 573Too small£28
Ad 981Too small£27
Ad 948Too small£26
Ad 1009Too small£25
Ad 1019Too small£25
Ad 572Too small£24
Ad 1001Too small£24
Ad 946Too small£24
Ad 1015Too small£24
Ad 1014Too small£24
Ad 1064Too small£23
Ad 984Too small£23
Ad 923Too small£22
Ad 907Too small£21
Ad 1070Too small£21
Ad 991Too small£20
Ad 994Too small£19
Ad 949Too small£19
Ad 902Too small£18
Ad 931Too small£18
Ad 1005Too small£18
Ad 929Too small£17
Ad 947Too small£17
Ad 941Too small£17
Ad 1069Too small£16
Ad 918Too small£15
Ad 574Too small£15
Ad 1017Too small£14
Ad 910Too small£13
Ad 575Too small£13
Ad 913Too small£13
Ad 943Too small£12
Ad 579Too small£12
Ad 980Too small£12
Ad 585Too small£12
Ad 452Too small£12
Ad 992Too small£12
Ad 973Too small£11
Ad 919Too small£11
Ad 963Too small£10
Ad 577Too small£10
Ad 930Too small£9
Ad 953Too small£9
Test - Ad 869 | Video | Seasalt | Hook 2 Object Led | UGCToo small£9
Ad 959Too small£9
Test - Ad 869 | Video | Seasalt | Hook 4 No Compromise | UGCToo small£9
Ad 952Too small£8
Ad 458Too small£8
Ad 986Too small£8
Ad 376Too small£8
Ad 978Too small£8
Ad 957Too small£7
Ad 1043Too small£7
Ad 687Too small£7
Ad 882Too small£7
Ad 1021Too small£7
Ad 1002Too small£6
Ad 1026Too small£6
Ad 989Too small£6
Ad 900Too small£6
Ad 999Too small£6
Ad 1023Too small£6
Ad 924Too small£5
Ad 1018Too small£5
Ad 1038Too small£5
Ad 998Too small£5
Ad 586Too small£5
Ad 976Too small£5
Ad 969Too small£4
Ad 933Too small£4
Ad 987Too small£4
Ad 892Too small£4
Ad 932Too small£4
Ad 985Too small£4
Ad 1062Too small£4
Ad 904Too small£3
Ad 1000Too small£3
Ad 939Too small£3
Ad 587Too small£3
Ad 1042Too small£3
Ad 454Too small£3
Ad 576Too small£3
Ad 581Too small£3
Ad 912Too small£2
Ad 993Too small£2
Ad 938Too small£2
Ad 979Too small£2
Ad 935Too small£2
Ad 1065Too small£2
Ad 937Too small£1
Ad 971Too small£1
Ad 965Too small£1
Ad 958Too small£1
Ad 1068Too small£1
Ad 917Too small£1
Ad 995Too small£1
Ad 921Too small£1
Ad 974Too small£1
Ad 914Too small£1
Ad 1036Too small£0
Ad 1041Too small£0
Ad 899Too small£0
Ad 467Too small£0
Ad 911Too small£0
Ad 994Too small£0
Ad 898Too small£0
Ad 468Too small£0
Ad 1040Too small£0
Ad 375Too small£0
Ad 462Too small£0
Ad 1011Too small£0
Ad 1037Too small£0
Ad 461Too small£0
Ad 466Too small£0
Ad 906Too small£0
Ad 908Too small£0
Ad 909Too small£0
Ad 453Too small£0
Ad 459Too small£0
Ad 448Too small£0
Ad 449Too small£0
Ad 470Too small£0
Ad 894Too small£0

How a stage is decided

Every ad goes down the same path. The gates at the top decide whether an ad can be judged at all; the checks in the middle measure it; the ladder at the end names the stage, and each stage is defined by the one action it asks for.

1
Is it still taking real money?
7-day spend of £300+ or 3%+ of account spend.
NoToo small
YesCarry on
2
Is there a baseline to compare against?
At least 7 days and 5,000+ impressions in the 28 days before this week. Under 21 days of baseline the ad is scored with low confidence (shown on the card). A too-new ad that is already a winner (10%+ of spend at or above the account's ROAS) still goes to Brief refresh.
NoToo new
YesCarry on
3
Is Meta still spending on it?
Daily spend this week at 50%+ of its baseline daily spend. Below that Meta has already moved the money, so nothing is leaking.
NoMonitor · pulled back
YesCarry on
4
Run the nine checks and roll them up into three families
Each check scores Moderate or Strong against the bars in the table below. A family takes the strongest score of its checks, so two related signals never count twice. Attention and Audience are leading (no attribution lag); Return is lagging. Click rate and CPM are judged net of the account's own move; hook and hold against the ad's own baseline; frequency against a ceiling of 2.5 / 3 for prospecting and 5 / 8 for retargeting ad sets.
Attention
Click rate · Hook rate · Hold rate
Leading. Fewer people react to the creative.
Audience
Cost to reach · Audience wear · New reach
Leading. The same people are being reached, at a rising price, and fewer new ones.
Return
Cost per sale · Return vs best · Purchases
Lagging. The money has started to follow. 'Hard' = Strong, or Moderate on an ad with 10%+ of spend. Best-week on its own, with this week's ROAS and purchases not falling, never counts as hard.
5
Is it over-scaled rather than tired?
Daily spend at 150%+ of baseline, return down, and no leading family tripped. That is diminishing returns from scale: a different fix.
NoMonitor · over-scaled
YesCarry on
5b
Is it the site, not the ad?
Purchases collapsed (zero on an ad normally doing 5+ a week, or down 60%+ on one doing 10+) while click rate held. People are still clicking and not buying, which points at stock, the landing page or the pixel, never the creative.
NoMonitor · check site
YesCarry on
6
Is it below the breakeven line?
This week's ROAS against 2.46x from the margin sheet. Not the account average: that is dragged down by the big spenders themselves and lifted by retargeting and subscriber campaigns, so cold ads sit below it structurally. Since 21 Oct it no longer changes the stage (nothing is cut); it is shown on the card for urgency.
7
Pick the stage: first match from the top wins
Hand over · Shift budget to the refresh
The ad is at Brief or above and a refresh of it (same campaign, same product and angle in the name, a different ad number, launched later, on a different image or video) is live with £100+ and 5+ sales this week at 90%+ of the original's ROAS this week and 80%+ of its baseline. Let Meta move the money; wind the original down once the refresh carries most of the concept, never switch it off cold.
Launch refresh · Next to the original, now
Return is moving with a leading family agreeing (Return hard plus a leading family, a Strong leading family with a Moderate return fall, purchases down 50%+, or a big spender far below its best week). Launch the refresh in the same ad set as the original. Nothing is paused.
Build refresh · Live within 2 weeks
Return not yet hard, but both leading families tripped, one of them Strong, or one still tripped a week later. The results still hold at this stage (Pott Apr-Oct 2026: these ads earned about their baseline over the next 14 days; on tomato Ads 551 and 487 return fell about 4 weeks later), so this is when the refresh goes into production. On an account-wide run, a fresh Launch is also capped here.
Brief refresh · Start it now
A winner: 10%+ of spend at or above the account's ROAS with 10+ sales this week, even with nothing slipping, because a winner can decay faster than a refresh takes to make (Ad 707: return fell 19 days after launch). Too-new ads qualify.
Monitor · Watch
One Moderate signal on its own, or Return moving with no leading family agreeing (likely attribution lag), or audience-not-creative: ad set frequency high while clicks and hooks hold, so the fix is a broader audience, not a refresh. Over-scaled, pulled back and check-site also sit here.
None · Nothing
Clean or improving.
8
Has it persisted?
Compared with the ledger entry from about a week ago, never with yesterday's run (three daily runs share six of seven days, which is one week read three times). A leading family still tripped a week on lifts Brief to Build; a Return family still tripped lifts Build to Launch. Stages are also sticky: an ad keeps the highest refresh stage it earned in the last 7 days (held days do not count), so a refresh in the pipeline does not vanish on one quiet day.
9
Is it the whole account, not this ad?
If more than half of the material ads trip the same family on the same day, the run is labelled account-wide and a fresh Launch refresh is capped at Build. Briefs still go out: a refresh does no harm in an account-wide dip. Pott, 18 Jul 2026: ROAS fell on every ad with clicks, CPM and frequency flat, and the cause was site conversion rate, not creative.

The nine checks

What each one measures, where it trips, and why it earns a place.

CheckFamilyWhat is measuredTrip wireLagWhy it is in
1. Click rate
Are fewer people clicking?
Attention Link clicks / impressions, last 7 days vs the 14 days before Down 10% = moderate, 20% = strong. No lag The first thing to go when an audience has seen a creative enough. Moves days before revenue does.
2. Hook rate
Are fewer people stopping on the video?
Attention 3-second video views / impressions, videos only, vs the ad's own baseline Down 10% = moderate, 20% = strong. No lag Same signal as click rate for video, read earlier in the scroll. Judged against the ad's own baseline, not the account's, because the account hook rate moves with the image/video mix. Counted in the same family so a video does not score twice.
3. Hold rate
Of those who stopped, are fewer staying?
Attention ThruPlays / 3-second views, videos only, vs the ad's own baseline Down 10% = moderate, 20% = strong. No lag A video can still stop people and lose them two seconds later once they recognise it. Hold rate catches that before click rate does.
4. Cost to reach
Is it costing more to show this ad?
Audience Ad CPM move minus the account's CPM move over the same windows Up 15% = moderate, 25% = strong, net of the account. No lag Meta charges more to keep showing a creative its audience is ignoring. Judged net of the account so a Q4 auction rise does not flag every ad.
5. Audience wear
Are the same people seeing it again and again?
Audience Ad set 7-day frequency, this week vs last week Rising 10%+ and above 2.5 = moderate, above 3 = strong. No lag Ad set frequency, not ad frequency: in a broad set the audience wears out across the whole set. Reach falling with spend and CPM flat is the same thing, so reach is not a separate check.
6. New reach
Is it still finding people who have not seen it?
Audience People reached for the first time by this ad per £1k this week (cumulative reach since it was created), vs the same in the baseline weeks Down 45% = moderate, 55% = strong. No lag Added 21 Oct 2026 from the tomato backtest. Ad 707 kept its click rate to the end; what moved first, two weeks before its return fell, was new people per pound as it used up its pocket of a broad audience. Ad set frequency never got near its ceiling, so the old audience checks could not see it.
7. Cost per sale
Is each sale costing more?
Return Spend / purchases this week vs the baseline. Read only if this week spent 3x the baseline cost per sale, and only if the shortfall is unlikely to be chance Up 20% = moderate, 35% = strong, and the chance of this few sales at the baseline rate must be under 20% / 10%. Needs 8+ baseline purchases. Not counted if ROAS rose (bigger baskets). Lags 1-3 days The money signal, read as cost per sale rather than ROAS because ROAS also moves with basket size, which is a product-mix question. It arrives late (attribution lag), so on its own it never makes the top stage. The chance test stops one missing sale on a 5-a-week ad reading as decay.
8. Return vs best
Is it far below its own best week?
Return This week's ROAS as a share of the ad's best rolling 7 days (promo weeks excluded) At 70% of best = moderate, 50% = strong. Best week needs 10+ purchases. Lags 1-3 days Catches slow decay. Pott Ad 707 fell 3.0x to 1.1x without any single week tripping a week-on-week bar. BFCM weeks are excluded or every ad reads 'off its best' in December.
9. Purchases
Have purchases collapsed?
Return Purchases per week vs the baseline weekly rate Down 30% = moderate, 50% = strong. Not scored under 5 recent purchases. Lags 1-3 days Volume guard so a ROAS fall driven by one big order does not read as fatigue. The floor stops 4 vs 6 purchases reading as a 33% collapse.

Why the rules are shaped this way

Only material ads, and only while spend is held
An ad Meta has already pulled money off cannot leak more, and a £40 ad cannot leak enough to matter. The watcher exists to stop spend leaking, so it only looks where the money is.
Families, not a signal count
Reach down with spend and CPM flat is frequency up by another name, and click rate and hook rate move together on video. Counting them separately would let one cause score three times.
Net of the account
CPM and ROAS are judged against the account's own move over the same windows. A Q4 auction rise or a site-wide conversion dip then cancels out instead of flagging every ad at once.
Return alone never makes the top stage
Purchases attribute back over 1-3 days, so the newest days always look worse than they are. A return fall needs a leading family to agree before the ad moves up the ladder.
Breakeven, not the account average
Account average ROAS is the wrong line: the big spenders drag it down and retargeting lifts it. The bar is each client's breakeven from the margin sheet (2.46x here).
Own best week catches slow decay
Pott Ad 707 fell from 3.0x to 1.1x without any week tripping a week-on-week bar. Promo weeks (BFCM) are excluded from 'best', or every ad reads as off its best in December.
Age is shown, never a trigger
Pott Ad 153 ran eight months as the number two ad by purchases. Days running is on the card for context and as a sort tie-breaker; it never moves a stage.
A chance test on small numbers
Most ads do 2 to 10 sales a week, and one sale either way swings cost per sale by 30 to 50%. At the baseline rate this week's spend should have bought N sales; if seeing this few is more than 20% likely by chance, the fall is not counted. Below 5 purchases the return checks are also marked low confidence.
Cost per sale before ROAS
ROAS falls when baskets shrink and rises when they grow, and neither is the creative's doing. The return check reads cost per sale, and a cost-per-sale rise with ROAS up is logged as bigger baskets, not fatigue. ROAS keeps one job: the breakeven line.
A four-week baseline
The ad's normal is the 28 days before the judged week, so one odd fortnight does not become the baseline and weekday mix is balanced. Under 21 days of baseline the ad is low confidence (marked on the card).
Check the site before the creative
If purchases collapse while click rate holds, the ad is still doing its job and something after the click is broken: stock, the page or the pixel. That ad is routed to a site check, not a refresh, and the September 2026 backtest showed those ads recovered on their own.
Retargeting wears slower
A warm audience can see an ad five to eight times before it tires; a cold one two to three. Retargeting ad sets are spotted by name (never by the word 'warm', because Pott's prospecting campaigns are called Cold & Warm) and get the higher ceilings.
Persistence across non-overlapping data
Escalation compares with the ledger from about a week earlier, never with yesterday's run. Three consecutive daily runs share six of seven days.
Audience versus creative
Ad set frequency is used, not ad frequency. If the set is worn but every ad's clicks and hooks hold, the fix is a broader audience or a lower minimum; a refresh on its own will not help. A CPM or new-reach move on one ad is the creative, not the audience.
Refresh, never switch off
Casey, 21 Oct 2026: winning ads are not turned off. Every stage asks for a new version of the same ad (same angle and offer, new hook, opening frame, thumbnail, first line or format), launched next to the original, with budget moving only once the refresh proves itself.
Brief at the win
Pott Ad 707 took 31% of spend in its second week and its return fell in its fourth. A refresh takes 2 to 3 weeks to brief, make and launch, so no decay signal fires early enough on an ad like that. A winner is briefed while it is still winning.
Generated 24/10/2026, 20:03:15 by scripts/meta-fatigue-watch. Read-only: nothing in the ad account was changed.