Two August forecasts scored daily against real results. The new sheet (frozen 14 Aug) keeps the client's online revenue plan and email calendar, replaces her subscription line with the renewal-book model, and adds a daily ad spend plan. The client sheet is scored as she built it. One variable differs between them (subscriptions), so the accuracy gap between the two sheets measures the subs model directly. Kept separate from the KC Financial Dashboard until cost inputs are settled.
| Revenue | Ad spend | |
|---|---|---|
| New sheet projected landing (actuals + remaining forecast) | £218,712 | £53,683 |
| Client sheet full-month target | £225,695 | n/a (no spend plan) |
| KC Dashboard predicted landing | £170,898 | £27,064 |
| KC Dashboard stretch plan | £189,704 | £26,945 |
| Actual to date (complete days + today so far) | £90,533 | £23,955 |
MAE = average daily error. Bias = cumulative forecast vs cumulative actual (positive = forecast too high). The fair race between the two sheets runs 14-31 Aug, the window both forecasts cover from their freeze dates. Subs rows validate the renewal-book model directly; days 1-13 for the model are its out-of-sample backtest.
| Forecast | Days scored | MAE / day | Cum bias | Cum forecast | Cum actual | |
|---|---|---|---|---|---|---|
| Total revenue - NEW SHEET (race, 14-31) | 1 | £547 | -3.8% | £13,709 | £14,256 | |
| Total revenue - client sheet (race, 14-31) | 1 | £1,077 | -7.6% | £13,179 | £14,256 | |
| Total revenue - client sheet (full month) | 14 | £682 | 3.9% | £93,886 | £90,353 | |
| Subs - renewal-book model (race, 14-31) | 1 | £752 | 78.6% | £1,709 | £957 | |
| Subs - client sheet (race, 14-31) | 1 | £222 | 23.2% | £1,179 | £957 | |
| Subs - renewal-book model (incl. 1-13 backtest) | 14 | £273 | 10.5% | £24,704 | £22,360 | |
| Subs - client sheet (full month) | 14 | £293 | 18.3% | £26,456 | £22,360 |
The KC Financial Dashboard recorded £0 of Google spend for August. Google Ads is in fact running four campaigns (Shopping High, Shopping Low Brand, Search Brand, PMax) at roughly £230/day, £3,463 month to date. The dashboard's puller calls Google Ads API v21, which Google now rejects as an unsupported version, so the call fails and the month books zero. This tracker pulls Google independently on v24 and every spend figure below is Meta plus Google.
This is not a Pott-only problem. The version broke between 6 and 13 Aug. Hyde & Hare and Pairs still show Google spend only because their nightly sync last succeeded on 6 and 3 Aug respectively and their month docs are frozen at those dates. Every client will book £0 Google as soon as the sync resumes, unless the API version is bumped first. Both faults are logged for the dashboard backlog.
Any August efficiency number produced before 15 Aug was Meta-only and understated spend by about 18%. Corrected:
| August 1-12 | Meta only (wrong) | Meta + Google (true) |
|---|---|---|
| Spend | £17,421 | £20,540 |
| CAC | £37 | £44 |
| New-customer ROAS | 1.91 | 1.62 |
| Blended ROAS | 4.05 | 3.44 |
Ad spend is almost entirely a new-customer instrument, but daily revenue is mostly driven by returning customers, email and subscriptions. So spend must not be sized as a share of total revenue. Evidence from 92 days of daily data (May to Aug):
| Test | Result | Reading |
|---|---|---|
| Correlation, daily spend vs new-customer revenue | +0.55 | Spend does drive acquisition |
| Correlation, daily spend vs returning revenue | −0.03 | No relationship at all |
| Correlation, daily spend vs subscription revenue | −0.03 | No relationship at all |
| Correlation, daily spend vs total revenue | +0.23 | Weak, and only via the new-customer part |
| Day-to-day volatility: spend vs returning revenue | 17% vs 53% | Spend has always been run flat; revenue is spiky |
| 14 Aug (Emily Doran launch), the month's biggest day | 81% returning | New-customer revenue was 35% below a normal day |
The retired v1 plan divided her online revenue target by a blended MER of 2.9, which made spend swing from £1,725 to £3,450 and put the single biggest budget on the bank-holiday email day. On the evidence above that is backwards: list-driven days need no extra ad spend at all.
The plan is therefore a flat £1,750/day total (roughly £1,520 Meta, £230 Google), £29,750 for 15 to 31 Aug. No day-to-day modulation at all: Meta budgets are a decision we set rather than something to forecast, Google runs a steady shopping and brand book, and the efficiency data below gives no reason to move the number around. An earlier draft varied the daily figure by £250 on product-push days; that was invented rather than evidenced and has been removed.
On corrected numbers, no. CAC is improving while spend rises, and there is no saturation anywhere in the range this account has operated:
| Window (Meta + Google) | Spend / day | CAC | NC ROAS | Blended ROAS |
|---|---|---|---|---|
| Trading days -42 to -28 | £1,168 | £53 | 1.36 | 4.54 |
| Prior 14 trading days | £1,229 | £54 | 1.35 | 3.91 |
| Last 14 trading days | £1,641 | £44 | 1.61 | 3.54 |
| Spend quartiles, 92 days (£950 → £1,559/day) | rising 64% | £50 / £48 / £52 / £50 | flat | - |
Spend is up 34% over the last fortnight and CAC fell from £54 to £44. Across 92 days, CAC does not move with spend level at all. That is the signature of an account with headroom, not one at its ceiling.
The payback test. Break-even CPA on the first order is £29.68 at August's new-customer AOV, so at £44 each new customer starts about £14 down. The cohort curve closes that gap in month 4, and 36-month contribution per new customer is £103, roughly 2.3x the acquisition cost. Acquisition is profitable on any horizon longer than a quarter.
The one real caution is cash, not efficiency. Blended ROAS has slipped from 4.54 to 3.54 across those same three windows. That is not a leak, it is arithmetic: spend is growing against a revenue base that is mostly returning and subscription income which ads do not move. It does mean cash converts more slowly, which matters with Q4 inventory to fund. Hold £1,750/day, and treat a sustained CAC above £55 (not a fall in blended ROAS) as the signal to pull back.
Spend plan is a flat £1,750/day total (Meta + Google), not derived from the revenue targets. The actual column is Meta plus Google combined; hover the split in the data file if you need it per channel. Cum Δ columns: actual minus forecast, running. Greyed rows are future days; today is marked and excluded from scoring until complete.
| Day | Calendar | Ad spend | Subscriptions | Online | Total revenue | Cum Δ | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Plan | Actual | Model | Client | Actual | Client | Actual | New | Client | Actual | New | Client | ||
| 1 Sat | Orangery scent-of-month drop | £1,427 | £2,359 | £3,621 | £2,974 | £4,930 | £5,954 | £7,289 | £8,551 | £8,928 | +£377 | ||
| 2 Sun | £1,521 | £1,892 | £1,948 | £1,804 | £3,500 | £3,327 | £5,392 | £5,448 | £5,131 | +£60 | |||
| 3 Mon | Aug Bday Gift Guide email | £1,496 | £1,874 | £2,249 | £1,999 | £4,500 | £3,262 | £6,374 | £6,749 | £5,261 | −£1,428 | ||
| 4 Tue | £1,642 | £1,708 | £1,994 | £1,688 | £4,000 | £3,415 | £5,708 | £5,994 | £5,103 | −£2,319 | |||
| 5 Wed | Orangery Reviews email | £1,623 | £1,711 | £1,748 | £1,192 | £4,500 | £4,564 | £6,211 | £6,248 | £5,756 | −£2,811 | ||
| 6 Thu | £1,562 | £1,731 | £1,716 | £1,717 | £4,000 | £4,183 | £5,731 | £5,716 | £5,901 | −£2,626 | |||
| 7 Fri | £1,829 | £1,599 | £1,549 | £1,483 | £4,000 | £4,176 | £5,599 | £5,549 | £5,660 | −£2,516 | |||
| 8 Sat | Summer at Home email | £1,939 | £1,679 | £2,164 | £1,451 | £4,500 | £5,048 | £6,179 | £6,664 | £6,499 | −£2,681 | ||
| 9 Sun | £2,454 | £1,580 | £1,285 | £1,085 | £4,000 | £5,115 | £5,580 | £5,285 | £6,200 | −£1,765 | |||
| 10 Mon | £1,699 | £1,576 | £1,660 | £1,390 | £4,000 | £4,283 | £5,576 | £5,660 | £5,673 | −£1,752 | |||
| 11 Tue | Emily Doran teaser | £1,583 | £1,576 | £1,560 | £1,297 | £4,500 | £3,491 | £6,076 | £6,060 | £4,788 | −£3,025 | ||
| 12 Wed | £1,771 | £1,897 | £1,749 | £1,627 | £4,000 | £4,453 | £5,897 | £5,749 | £6,079 | −£2,694 | |||
| 13 Thu | 24-hour email | £1,728 | £1,813 | £2,034 | £1,696 | £5,000 | £3,422 | £6,813 | £7,034 | £5,118 | −£4,610 | ||
| 14 Fri | Emily Doran launch | £1,660 | £1,709 | £1,179 | £957 | £12,000 | £13,299 | £13,709 | £13,179 | £14,256 | +£547 | −£3,533 | |
| 15 Sat | £1,750 | £23 | £1,909 | £2,721 | £0 | £6,000 | £180 | £7,909 | £8,721 | £180… | |||
| 16 Sun | Emily Doran email | £1,750 | £1,496 | £1,259 | £6,000 | £7,496 | £7,259 | ||||||
| 17 Mon | £1,750 | £1,646 | £1,387 | £5,000 | £6,646 | £6,387 | |||||||
| 18 Tue | Tomato Vine | £1,750 | £1,537 | £1,797 | £6,000 | £7,537 | £7,797 | ||||||
| 19 Wed | £1,750 | £1,528 | £1,456 | £5,000 | £6,528 | £6,456 | |||||||
| 20 Thu | Tomato Vine | £1,750 | £1,544 | £2,138 | £6,000 | £7,544 | £8,138 | ||||||
| 21 Fri | £1,750 | £1,294 | £1,021 | £5,000 | £6,294 | £6,021 | |||||||
| 22 Sat | Tomato Vine | £1,750 | £1,403 | £1,523 | £6,000 | £7,403 | £7,523 | ||||||
| 23 Sun | £1,750 | £1,365 | £573 | £5,000 | £6,365 | £5,573 | |||||||
| 24 Mon | £1,750 | £1,622 | £1,827 | £5,000 | £6,622 | £6,827 | |||||||
| 25 Tue | Bank holiday outdoor push | £1,750 | £1,702 | £2,103 | £10,000 | £11,702 | £12,103 | ||||||
| 26 Wed | £1,750 | £1,734 | £2,067 | £6,500 | £8,234 | £8,567 | |||||||
| 27 Thu | £1,750 | £2,022 | £2,588 | £6,000 | £8,022 | £8,588 | |||||||
| 28 Fri | £1,750 | £2,026 | £3,684 | £5,000 | £7,026 | £8,684 | |||||||
| 29 Sat | Last Tomato Vine | £1,750 | £1,889 | £2,191 | £6,000 | £7,889 | £8,191 | ||||||
| 30 Sun | £1,750 | £1,799 | £2,800 | £5,500 | £7,299 | £8,300 | |||||||
| 31 Mon | Bank hol - diffusers last chance | £1,750 | £1,843 | £674 | £6,000 | £7,843 | £6,674 | ||||||
Contribution margin 56.5%. First-purchase break-even CPA £24.74. August CAC is £37, so each new customer is still roughly £12 underwater on the first order and recovered through subscription and repeat LTV. But the direction matters more than the level: CAC has gone £60 (May) to £44 (Jun) to £52 (Jul) to £37 (Aug), and new-customer ROAS £1.14 to £1.92 over the same span, making August the most efficient acquisition month of the last four. The KC plan's seasonal assumption of £24.72 (built on last August's unusually cheap auctions) has not been matched, but the gap is closing rather than widening. Cost inputs are under audit (duplicate-SKU COGS conflicts in Shopify) - treat profit math as directional until resolved.
node update-tracker.cjs in this folder.