Demand Test Timeline
01

For the board (the whole test on one page)

Simple version. We spent $5,214 in 17 days to find out whether people will buy this product from an ad. 154 did, and they tried to spend $7,187. Two ads out of 92 did most of it and were profitable on their own. The whole test lost $923 because finding those two cost $3,835. At today's ad cost this is not yet a business; at the two winners' ad cost it is. One more week and $2,500 tells us which.

154
sales at the wall
$7,187 of carts, $46.67 average, 47% of revenue from carts of 5+ sets
$5,214
Meta spend, 17 full days
planned about $5,000; 92 ads, seven customer pockets
−$923
after ad spend, 1.38x
the bar is +20% margin and 2x
  1. What we tested and how. A real store, real ads, a wall at the last click so no card was charged. Every sale is a person who entered her details and pressed Pay. 28 August to 13 September.
  2. What we found. One idea sells: "actually short", shown in a picture that proves it, landing on the design's own page. Two ads on that idea made 38% of the sales on 17% of the money, at $15 and $16 a sale against a $22 bar, +$907 after ads. Two more ads clear the bar on small counts. Six of the seven pockets do not buy. The price rise to $16 did not cost sales.
  3. What the learning cost. The launch wave $1,066 (58 ads on the collection page at $50 a set). Pockets that never sold $1,533. Raising winners too fast about $330. About $300 was avoidable with stricter kill rules; the rest was the price of the answer.
  4. What we do not know yet. Whether the winners hold their cost per sale on their own budget: no ad in this test held through a big raise. What a week at $350 a day yields as a planning unit. Card declines at a real checkout.
  5. The decision. Not a green light to spend more of the same, and not a stop. One week, about $2,500: the four proven ads each on their own budget plus five small variations, budgets fixed, kill rules written down. If the two Short winners hold under $22 a sale for six days, the ads can carry about $100 a day at a 20% margin and inventory gets planned on about three sales a day per ad. If they do not, the business needs more winners or bigger carts before more money goes in.
  6. What changed in how we work. Product pages, not the collection. One ad per ad set. Read at $100 spent, not day one. Rank on sales, never on checkout traffic. Double a winner, never multiply it. Tracking complete before the first dollar.

Press On Repeat, demand test, 28 Aug to 14 Sep 2026

What happened, when

17
full days of spend
28 Aug to 13 Sep
$5,214
Meta spend
$5,196 inside the phase windows
154
people pressed Pay
one person once, at her largest cart
$34
cost per Pay person
ad spend ÷ people: $5,196 ÷ 154
$46.67
AOV
average cart of a Pay person
$7,187
in those carts
what shoppers saw: $14 until 09-09 6 PM, then $16
−$923
profit after ad spend
$4,272 before ads; zero orders
1.38x
intent ROAS
carts ÷ spend; the bar is 2x
−12.8%
margin after ad spend
profit ÷ carts; the bar is 20%

The six ad waves, the price rise, and the sheet's own cut

282930311234567891011121314AUGSEPLaunch58 ads on the collection pageConsolidation9 rewritten ads on product pagesDesign test5 designs, one ad eachA013 force test1 ad, $30 a dayIteration 217 new ads in 5 setsVideo adsAS-14 and AS-15, $50 a day eachFirst spendBudgets cut to $30 a setConsolidation liveIteration 2 onPrice rise: $16, ship $6Re-allocation: Short $100Batch 2 live: 93 setsCampaign pausedThe sheet's phasescut by time, not by adsLaunch9/1 ConsolidationPhase 3, new pricesBars run from the minute a wave was switched on to the minute it was paused. Pacific time throughout.
Event tags on the next slides
ShopifyMetaAdsTrackingDecisionResult
03

The whole test on one line

Wave 1, the launch(08-28 → 09-01)
Wave 2, consolidation(09-01 8:44 PM → 09-06)
Wave 3, iteration 2(09-07 → 09-09 6 PM)
The price rise(09-09 evening)
Wave 4, the scale-up on the winners + the video test(09-10 → 09-13)
The end
Fri 28 Aug
08-28
First day of delivery
08-28 14:30
80 products on the Meta channel
Sat 29 Aug
08-29
First Pay clicks, theme v1.2 live
Sun 30 Aug
08-30
Arjun's dashboard v1
Mon 31 Aug
08-31
Budgets cut to $30 a set
Tue 1 Sep
09-01 18:04 → 20:00
Checkout button on the bar, ad name in the cart
09-01 18:33
Launch ads paused, Short to $50
09-01 20:10–20:18
Clarity installed
09-01 20:44–20:46
Consolidation goes live, $190 a day
Wed 2 Sep
09-02 03:44
Next wave drafted, inactive
09-02 07:49
MJ's product-page push: deck, shape tiles
09-02 15:55 → 19:41
Arjun's push: technique deck, new hero copy
09-02
First full day: 9 Pay people
Thu 3 Sep
09-03 08:38–08:42
Design test built, 5 sets at $10
09-03 10:56–10:57
Design test switched on
09-03 12:07–12:11
Short and Conditions to $75, A013 force test
09-03
Dashboard rebuilt around phases
Fri 4 Sep
09-04 00:16
Shape mix in every grid, shape preselected
09-04
10 Pay people, dashboard reads the sheet
09-04 23:17
Gap and force test paused
Sat 5 Sep
09-05
Quietest day
Sun 6 Sep
09-06 19:11
ForceTest paused
09-06 19:15–19:26
Iteration 2 built, paused
Mon 7 Sep
09-07 00:45–01:10
Pre-flight relinks
09-07 01:20
MJ switches iteration 2 on
09-07
Busiest traffic day
Tue 8 Sep
09-08
Clarity sweep, audience read
Wed 9 Sep
09-09 (day)
Best day: 22 Pay people
09-09 (before 6 PM)
Price eras built
09-09 17:10 → 18:46
Theme v1.3 built, published 6:46 PM
09-09 18:02–18:03
Sets to $16, shipping $6
09-09 21:35
Budgets re-cut for the new prices
09-09 (why, per MJ on 09-15)
Why the price rose
Thu 10 Sep
09-10 00:29
First video ad, AS-14
09-10 (day)
18 Pay people, timezone fix
09-10 15:54
Conditions, AS-9, Cherry Noir paused
09-10 23:46 → 09-11 00:32
Re-allocation: Short to $100, AS-15
Fri 11 Sep
09-11 10:36 → 12:39
Batch 2: 20 designs live
09-11 16:16 / 17:28
AS-15 to $50, AS-9 back on
09-11 17:02 → 19:22
Pop-out product page on Shop All
09-11
Design read, ad register
Sat 12 Sep
09-12
Batch 2 pass, duplicates button
Sun 13 Sep
09-13
Last full day: $410
Mon 14 Sep
09-14 01:04
Campaign paused
09-14 17:30
Last dashboard build
Tue 15 Sep
09-15
Spend $0
Dot coloursShopifyMetaAdsTrackingDecisionResult
04

Day by day

$329028$325429$327630$208431$147001$238902$274803$3401004$151505$243806$353907$3561208$3682209$3901810$3551011$3791212$4101413$2314Meta spend per dayPeople who pressed PayAug 28 to Sep 14
Profit per day: light = before ad spend, dark = after. Light above dark = that day's ad cost.−$32928−$28629−$19930−$11131−$14701+$6102−$12003−$11804−$3105−$5006−$14107+$2508+$24209+$6610−$6911−$312−$15813+$8614Aug 28 to Sep 14 · the label is profit after ad spend · a dark bar below the line is a lossProfit per day: light = before ad spend, dark = after. Light above dark = that day's ad cost.−$32928−$27429−$17130−$7931−$14701+$14602−$7403−$7204+$105+$806−$7907+$12608+$39309+$16610−$2411+$10012−$9113+$10014Aug 28 to Sep 14 · the label is profit after ad spend · a dark bar below the line is a lossProfit per day: light = before ad spend, dark = after. Light above dark = that day's ad cost.−$32928−$28629−$19930−$11131−$14701+$6102−$12003−$11804−$3105−$5006−$14107+$2508+$27209+$16610−$2411+$10012−$9113+$10014Aug 28 to Sep 14 · the label is profit after ad spend · a dark bar below the line is a loss
DaySpendAd sessionsCartsCheckoutsPressed PayCarts $Running that day
08-28 Thu$32955971100$07 launch sets @ ≈$50
08-29 Fri$32554395144$76same
08-30 Sat$327841123226$237same
08-31 Sun$2085866694$186cut to $30/set
09-01 Mon$14739643120$0launch winding down; consolidation live 8:44 PM
09-02 Tue$23855280259$513Short/Gap/Conditions $50 + ForceTest $40
09-03 Wed$274820139438$281+ 5 design sets @ $10 + A013 force $30; Short/Conditions → $75
09-04 Thu$3409651423610$388same ($300/day)
09-05 Fri$15151580275$211Gap + force test off (23:17 the night before); ForceTest $20
09-06 Sat$243860132368$367ForceTest off 7:11 PM; iteration 2 built paused
09-07 Sun$3531,182163569$376iteration 2 on 1:20 AM → $350/day
09-08 Mon$3568911763712$638same
09-09 Tue$3689271664522$1,072price rise 6 PM; budgets re-cut 9:35 PM
09-10 Wed$3901,0641755018$872video ad on; Conditions / Cherry Noir / AS-9 off 3:54 PM; re-allocation 11:46 PM
09-11 Thu$3559681724810$516Batch 2 live 12:39 PM; second video ad; $380/day
09-12 Fri$3791,0441603712$764same
09-13 Sat$4101,1621824914$534same, last full day
09-14 Sun$230313$156campaign paused 1:04 AM
Total$5,19613,9052,168557154$7,187
Takeaway

The test got better as it went. Every launch day lost money; after the move to product pages, five of the last twelve full days were profitable and four more were within $50 of breakeven. The best days were conversion days, not traffic days: 09-09 had fewer visits than average and 22 sales. And the two days with the most ad spend (09-13 at $410, 09-04 at $340) both lost, because spend was rising faster than sales.

05

Winning days, breakeven days, losing days

Every day of the test sorted by profit after ad spend. Breakeven means within $50 of zero either way. A sale is dated to the day the person was first seen and ad spend to the day it ran, so single days are noisy; the point is the shape, not one day. The columns re-sort when you change the price basis.

Winning days

DaySalesSpendCarts $ROASProfit after adsMarginWhat was running

Breakeven days

DaySalesSpendCarts $ROASProfit after adsMarginWhat was running

Losing days

DaySalesSpendCarts $ROASProfit after adsMarginWhat was running
Takeaway

After the launch, three of the four losing days were days something new was switched on or a budget raised: 09-03 (design test, force test, Short and Conditions to $75), 09-04 (first full day at $300) and 09-07 (iteration 2 on at $350). The fourth was the highest-spend day, 09-13. New money takes two or three days to turn into sales, so a launch day always reads worse than it is. Judge a change by its first full week, not its first day.

06

What each wave came to

8/28 launch(08-28 → 09-01)
14people
Spend$1,337
Carts$485
Spend per person$95
Intent ROAS0.36x
Profit after ads−$1,066
Margin after ads−219.8%
9/2 consolidation(09-02 → end)
81people
Spend$1,836
Carts$4,060
Spend per person$23
Intent ROAS2.21x
Profit after ads+$550
Margin after ads13.5%
9/3 design test(09-03 → end)
21people
Spend$751
Carts$742
Spend per person$36
Intent ROAS0.99x
Profit after ads−$324
Margin after ads−43.7%
9/3 A013 force test(09-03 → 09-04)
1people
Spend$53
Carts$19
Spend per person$53
Intent ROAS0.36x
Profit after ads−$45
Margin after ads−234.9%
9/7 iteration 2(09-07 → end, incl. the 2 video sets)
24people
Spend$1,220
Carts$1,303
Spend per person$51
Intent ROAS1.07x
Profit after ads−$398
Margin after ads−30.5%
All five
154people
Spend$5,196
Carts$7,187
Spend per person$34
Intent ROAS1.38x
Profit after ads−$923
Margin after ads−12.8%
PhaseAdsSpendPay peopleCarts $Spend per personIntent ROASProfit before adsProfit after adsMargin after adsSets per cart (median)
8/28 launch (08-28 → 09-01)58$1,33714$485$950.36x$271−$1,066−219.8%2.1 (1)
9/2 consolidation (09-02 → end)9$1,83681$4,060$232.21x$2,385+$55013.5%3.4 (2)
9/3 design test (09-03 → end)5$75121$742$360.99x$426−$324−43.7%1.7 (1)
9/3 A013 force test (09-03 → 09-04)1$531$19$530.36x$8−$45−234.9%1.0 (1)
9/7 iteration 2 (09-07 → end, incl. the 2 video sets)19$1,22024$1,303$511.07x$822−$398−30.5%3.0 (2)
All five92$5,196154$7,187$341.38x$4,272−$923−12.8%2.9 (2)
Takeaway

Only the consolidation wave clears the bar of 20% margin and 2x. It did that on nine ads, and two of them, A010 and A011, made all the profit. The launch wave cost $1,066 finding them, the six other pockets never sold, and every ad that was pushed hard got more expensive. The next money belongs to the four proven ads at their own budgets, not to more pockets.

07

What worked

Simple version. Send the click to the design's own page, run few ads with real money each, show the length in the picture, and let the ladder build the cart. Those four things made every dollar of profit in the test.

In the ads
$167 → $30 cost per sale, Shop All → product page
Product pages instead of Shop All

Cost per sale when the same ads landed on the design's own page instead of the collection grid. Four times the sales per visitor; 33% of checkout arrivals paid against 11%.

0.36x → 2.21x ROAS, launch wave → consolidation wave
Fewer ads, real money each

58 launch ads spread over seven sets lost $1,066. The nine consolidation ads made +$550 after ad spend.

$16 a sale · 3.44x A010's cost per sale and ROAS
The Short idea on the A010 picture

One nail held against the fingertip, and words short-nail women already say. 36 sales, +$602 after ads, no drift over twelve days.

$15 a sale · 3.25x A011's cost per sale and ROAS
The same idea on a second design

A011 on Cobalt Tips did as well as Garnet, on Meta's leftovers. The idea is the winner, not one design.

47% of revenue came from carts of 5 or more sets
The price ladder

42 of 154 carts held five or more sets. Average cart $46.67 on a $16 product.

$14 to $17 a sale cost per sale of the ads left at $10 to $50 a day
Small, steady budgets left alone

Every ad that ran untouched at $10 to $50 a day gave an honest number. The two raised five-fold in a day went to $64 and $65.

off by day 5 how fast most losing ad sets were paused
Losers switched off fast

Most losing ad sets were paused within four or five days. Only about $300 of the $923 lost was left on the table by not killing sooner.

On the website
2.3% → 5.2% ad visits that reached the checkout, launch week → last week
The product page did the selling

Share of ad visits that reached the checkout, launch week against the last week. Of those, the share who paid went 20% → 28%.

3.6 sets a cart average cart from the Garnet ad
The shop sold the rotation

Only 13 of A010's 36 buyers bought Garnet; the rest browsed on. 47% of all sets bought were designs that never had an ad.

2.65 → 3.71 sales per $100 of ad spend, before → after the price rise
The price rise to $16

Sales per $100 of ad spend before and after 09-09. Margin after ads −27% → +8.9%. Buying did not slow.

135 of 154 sales tied to the ad that made them
The ad's name written into the cart

Sales tied to the ad that made them, even on return visits. Without this there are no per-ad numbers.

7 of 7 buyers the wall log knew on 08-30 (Shopify knew 2)
The wall as the sensor

Buyers the wall log knew on 08-30; Shopify's own records knew 2. Every sale counted once, including Shop Pay and wallet checkouts.

Unread The checkout button on the bar (09-01), the product-page deck and shape tiles (09-02), the shape mix on every grid (09-04) and the pop-out product page (09-11) all went live in the same hours as ad changes or too close to the end. Nothing in the daily numbers steps up or down on those dates. Not credited, not blamed.
08

What did not work

Simple version. Sending clicks to Shop All, spreading the launch over 58 ads, six of the seven pockets, and every sharp budget jump. On the site, a sticky bar nobody used and a page that loses most readers before the fold. In how we ran it, two winners in one budget, ranking on checkout traffic, and cutting a winner while it was winning.

In the ads
$167 a sale cost per sale on the collection page
Shop All as the landing page

The launch sent every click to a grid of seventy designs. 11% of checkout arrivals paid; on product pages, 33%. The launch wave lost $1,066.

38 of 56 under $20 launch ads that got under $20 in total
Spray and pray at the launch

Meta funded one or two ads per set and starved the rest. 73% of the launch money was gone before anyone could read anything.

$1,533 → 9 sales spend and sales across the six pockets
Six of the seven pockets

Glue-burned, gap, tab doubter, collector, mix & match and reusability. Re-tested in iteration 2 with new pictures: $379 → 0 sales.

$14 → $64 a sale Ballet Tips' cost per sale, before → after the five-fold raise
Sharp budget jumps

Ballet Tips after the five-fold raise. Espresso Velvet $17 → $65. A045 $18 → $51 with a full week to prove it.

$321 → 4 sales spend and sales on the two video ads
The video ads

Clicks at expensive impressions and almost no one paid. Too early to call; no sign yet.

$53 → 1 sale the A013 copy (A084) on its own budget
The A013 force test

Good on three small sales, did not reproduce when given its own budget.

On the website
0 of 5,669 recorded sessions that used the sticky bar
The sticky add-to-bag bar

Recorded sessions that used it in a week. People added from the button in the page.

63% gone viewers lost by 15% of page depth
The product page below the fold

Share of viewers lost by 15% of page depth. What sold sat above the button: picture, price, shapes.

26% paid of A045's checkout arrivals (A010: 46%)
The Tortoise page under the Conditions ad

Of A045's checkout arrivals, against 46% for A010. A third of its clicks left within a second; stayers looped on shape and size.

In how we ran it
$0 to $4 a day A011's budget for its first four days
Two winners sharing one budget

What A011 got for its first four product-page days while A010 took the money. The second winner was never read on its own.

most arrivals, −$157 A045: most checkout arrivals of any ad, profit after ads
Ranking on checkout traffic

A045 led the test on checkout arrivals and lost money. Bare Minimum, cheapest per sale, was last on arrivals and got cut.

$16 a sale, paused Bare Minimum's cost per sale when it was switched off
Cutting Bare Minimum while it was winning

Switched off on 09-11 to fund two ads that were then raised five-fold and went to $64 and $65.

6 of 14 launch-week sales that can't be tied to an ad
Tracking not complete on day one

Launch-week sales that can never be tied to an ad. The ad name reached the cart on 09-01.

0 ads ads reduced after a raise went wrong
Never stepping back

Ads reduced after a raise went wrong: none. Several were raised on two days of data.

09

The Short winners, A010 and A011 (Short set, 08-27 → 09-14)

Simple version. Two ads made most of the money. Same words, same picture idea, different nail. A011 got less money and started later and still did as well as A010. Next: give each its own budget and see if they stay cheap.

A010 ad picture
A010 Garnet"This is the whole length." · lands on the Garnet page
Spend$571
Days with real money12
Sales36
Cost per sale$16
ROAS3.44x
Profit after ads+$602
Average cart$54
A011 ad picture
A011 Cobalt Tips"Short like you mean it." · lands on the Cobalt Tips page
Spend$329
Days with real money8 of 11
Sales22
Cost per sale$15
ROAS3.25x
Profit after ads+$305
Average cart$49

What happened well

What we did to improve it, and did it work

What we can do next

The numbers, side by side

A010 GarnetA011 Cobalt Tips
Spend$571 over 13 days$329 over 13 days
Days with real money ($10+)128
Visits2,206 at $0.26 each1,219 at $0.27 each
Reached the checkout79 (3.6% of visits)42 (3.4%)
Of those, paid (fair week, 09-03 to 09-09)24 of 65 = 37%12 of 19 = 63%
Sales3622
Revenue$1,961$1,068
Cost per sale$16 (fair week $18)$15 (fair week $9)
ROAS3.44x3.25x
Profit after ads+$602+$305
Margin after ads31%29%
Average cart / sets per cart$54 / 3.6$49 / 3.4
Bought the design in the picture13 of 36 (36%)4 of 22 (18%)

Where they ran and how the money was shared

DayShort set budgetA010 spend / salesA011 spend / sales
08-28≈$50$ 17 / 0 Shop All$ 26 / 0 Shop All
08-29≈$50$ 14 / 0 Shop All$ 9 / 0 Shop All
08-30≈$50$ 17 / 1 Shop All$ 8 / 0 Shop All
08-31$30$ 0 / 2$ 2 / 0 Shop All
09-01$30 → $50 (6:33 PM)$ 2 / 0$ 0 / 0
09-02$50$ 54 / 4$ 3 / 0
09-03$50 → $75 (12:07 PM)$ 61 / 1$ 4 / 0
09-04$75$ 82 / 3$ 0 / 0
09-05$75$ 52 / 2$ 1 / 0
09-06$75$ 64 / 3$ 14 / 1
09-07$75$ 38 / 1$ 23 / 2
09-08$75$ 38 / 1$ 34 / 7
09-09$75$ 37 / 7$ 35 / 2
09-10$75 → $100 (11:46 PM)$ 38 / 2$ 38 / 3
09-11$100$ 45 / 3$ 52 / 2
09-12$100$ 30 / 6$ 63 / 1
09-13$100$ 30 / 0$ 62 / 4
09-14paused 1:04 AM$ 0 / 1$ 0 / 0
TOTAL$573 / 36$329 / 22
10

The other two winners, A095 and A085 (iteration 2, 09-07 → 09-13)

Simple version. Two more ads cleared the bar, on smaller numbers. A095 shows a damaged nail growing back under a set over 14 days and sold 13 times at $23 each. A085 shows a nail next to a penny and sold 7 times at $23 each, with the biggest carts of any ad. Both are promising, not proven; both go into the next test with their own budget.

A095 ad picture
A095 Gold Leaf, day 0 / day 1 / day 14"It grows back under the set." · Conditions story · lands on the Gold Leaf page
Spend$299
Days with real money7
Sales13
Cost per sale$23
ROAS2.14x
Profit after ads+$88
Average cart$49
A085 ad picture
A085 Champagne Dots beside a penny"Short enough for short nail beds." · Short · lands on the Champagne Dots page
Spend$162
Days with real money7
Sales7
Cost per sale$23
ROAS2.48x
Profit after ads+$87
Average cart$57

What happened well

What we did to improve it, and did it work

What we can do next

The numbers, side by side

A095 Gold LeafA085 Champagne Dots
Spend$299 over 7 days$162 over 7 days
Visits1,091 at $0.27 each336 at $0.48 each
Reached the checkout45 (4.1% of visits)18 (5.4%)
Of those, paid13 of 45 = 29%7 of 18 = 39%
Sales137
Revenue$641$402
Cost per sale (before → after the change above)$23 ($14 → $33)$23 ($36 → $18)
ROAS2.14x2.48x
Profit after ads+$88+$87
Margin after ads14%22%
Average cart / sets per cart$49 / 2.8$57 / 3.6
Carts of 5 or more sets3 of 133 of 7
Bought the design in the picture3 of 13 (23%)3 of 7 (43%)
Shapes bought (sets)Coffin 21, Oval 11, Almond 2Almond 12, Coffin 7, Oval 5

Where they ran and how the money was shared

DayAS-13 budgetA095 spend / salesAS-9 budgetA085 spend / sales
09-07$30$38 / 1$30$20 / 0
09-08$30$27 / 0$30$13 / 1
09-09$30 → $50 (9:35 PM)$36 / 4$30$21 / 0
09-10$50$59 / 2$30, paused 3:54 PM$17 / 1
09-11$50$35 / 1back on 5:28 PM$13 / 0
09-12$50$53 / 0$30$47 / 4
09-13$50$51 / 3$30$32 / 1
09-14paused 1:04 AM$0 / 0paused 1:04 AM$0 / 0
TOTAL$299 / 13*$162 / 7
17

The next test (one week, about $2,500)

Simple version. Run the four proven ads again, each with its own money, and see whether they stay cheap. Beside them, a handful of small copies of the winning picture with one thing changed. Touch nothing for three days, kill the dead ones on day four, and count the winners at the end of the week. If the winners stay under $22 a sale, we have a business; if they get expensive, we turn them back down and grow the copy that holds instead.

The line-up, about $325 a day

Ad setAdBudget a dayWeekWhat it answers
1A010 Garnet, as it ran$50$350Does the best ad hold on its own money (it averaged $48 a day inside a shared set)
2A011 Cobalt Tips, as it ran$50$350First clean read of the second winner; $50 is double what it averaged
3A095 Gold Leaf, day 0 / day 1 / day 14$50$350Does the Conditions winner hold; it sits a dollar over the bar on 13 sales
4A085 Champagne Dots beside a penny$50$350Same question, on 7 sales
5Bare Minimum, the A010 picture as it ran$25$175The winner that was cut while winning
6Garnet pinch with "Short like you mean it."$25$175Is the line on the picture the difference between A010 and A011
7Garnet next to a penny$25$175A different proof of the same claim, on the winning design
8Garnet pinch with the comment-reply line ("Can y'all make nails for the girls with short nail beds 😭 / Done.")$25$175A013's idea, funded cleanly for the first time
9One new proof device of MJ's (the nail against something everyone knows the size of)$25$175A new way to show the length
9 ad sets, one ad each$325$2,275leaves about $225 of the $2,500 in hand

Rules for the week

What each result means

18

How we call an ad (the rules, any round)

Simple version. Count money, not days. $100 spent decides a kill, $150 decides a winner, and the bar an ad has to hold is $22 a sale. Double a proven winner once and step back if it drifts. Never kill a winner to pay for its variations. The written rulebook is Ads/_AD-TESTING-RULES.md.

The bar$22 a sale

The ad cost per customer, the CAC. The most you can pay in ads to get one person who presses Pay and still keep a 20% margin after ads, at the new price. Every call below is measured against it.

Average cart$51$7,829 across 154 sales
Profit before ads$32product, label, mailer, card fee taken out
Keep a 20% margin−$1020% of $51
Left for ads, the bar$22CAC

$25 = 2x ROAS, still a winner · $30 = break even, the keeper kill line at $300 · $44 = twice the bar, kill at $150

Remember 1$100 to kill, $150 to call

Count money, not days. 0 or 1 sale at $100: kill. 5 or more at $22 or less by $150: winner. 1 to 4 at $100: halve, count again in two days. No ad with 1 to 4 sales at $100 ever became a winner in the test.

Remember 2Only a proven winner takes a double

A010 and A011 held at $16 and $15 a sale when their set went from $50 to $100. A045, Ballet Tips and Espresso Velvet doubled their cost per sale when raised. Double once. Over $22 for three days: step back.

Remember 3Never kill a winner to fund variations

Bare Minimum was cut at 5 sales and $16 a sale to close the design test. A winner keeps its money as long as it holds $22. Variations get their own sets and their own money.

How to call each ad

The kill or keep table

Spent so farSalesDo
under $100anyNothing. Do not look yet.
$1000Kill.
$1001 to 4Halve the budget and count again two days later: 5 or more, restore it; 0 or 1, kill; 2 to 4, keep that budget and never raise it.
$1005 or more, at $22 or less eachWinner. Hold the same budget six days, then double it.
$150over $44 a saleKill.
$300over $30 a saleKill.
after a doubleover $22 a sale for three daysStep back to the last budget that held. Kill only if it stays over the bar there for six days.

The same thing as a picture

$22 a saleis the bar in every box below. 20% margin at the $16 price; $25 is 2x ROAS. Hold it and you are a winner. Lose it for three days after a raise and you step back.
Step 1 · the first read, at $100 spent
Ad is liveone ad per ad set · budget fixed on day oneHas it spent $100 yet?Not yet. Do not look.Check again tomorrow.noyes0 sales1 to 4 sales5 or more, at $22 or less eachKillHalve the budget.Wait two days, then count again.Winner. Hold six daysat the same budget. (step 2)0 or 12 to 45+ at $22 or lessKillKeep that budget.Never raise it. (step 3)Restore the budget.It is a winner. (step 2)
Step 2 · what happens to a winner (does it hold $22?)
A winner: hold six daysat the same budget.Still $22 or less a saleafter six days?noHold. Do not raise.yesDouble the budget.After the double, over $22a sale for three days?noHold there. Ready for thescaling campaign.yesStep back to the lastbudget that held.Over the bar therefor six days?noKeep it there and let it sell.yesKill.
Step 3 · what happens to a keeper (over $22, under $44)
A keeper (2 to 4 sales):keep that budget, never raise it.At $150 spent:over $44 a sale?yesKill.noAt $300 spent:over $30 a sale?yesKill.noKeep it there. It pays for itself;it is not a scaling ad.
killwinnerhold (a keeper)a questionMoney, not days. At $50 a day an ad reaches $100 on day 2 and is decided on day 4; at $25 a day, day 4 and day 6.

The CBO rulewhen a winner is big enough to leave the ABO

WhenOnly a winner that held its double

An ad that stayed at $22 or under at $100 a day in its own set for a week. Anything smaller keeps growing in the ABO. Conor moves an ad only when it can carry real money on its own (ep05, ep07).

How to moveDuplicate, switch on, switch the ABO copy off

Copy the ad into the CBO, turn it live there, pause the ABO ad set but keep it. Never run both copies at once: they bid for the same people and neither read is clean.

Inside the CBOOne ad per ad set, a floor under each

The campaign holds the budget and Meta moves it between the ads. Every ad set gets a minimum spend at the level the ad held in the ABO, so the favourite cannot starve the others (Conor, ep08).

JudgingSame as the ABO: $22 a sale

Spend share is Meta's opinion, not a verdict. An ad on $50 at $18 a sale is a winner; an ad on $250 at $30 is a keeper on a winner's money. Read each ad at $150 spent, and read the campaign's blended cost per sale too.

ScalingRaise the campaign a step at a time

Each raise no bigger than the last. Blended cost per sale over $22 for three days after a raise: step the campaign back. Leave a CBO winner running; turn it off only when it gets really bad (ep05).

If a moved winner does not holdFloor it, read it, move it back

Floor at its ABO budget, give it $150. Still over $22: un-pause the ABO set at the budget where it held and turn the CBO copy off. If it fails there too, it is the ad, not the campaign: step back to the last budget that held.

Left running too longby the rules above, ad by ad

Every ad replayed against the rules above. Total excess spend is the money spent past the point a rule said stop: past the $100 read for a loser, past $150 where the $44-a-sale rule applied, past the $300 keeper line for A045 on Tortoise, and the whole raise above the old daily level for the three ads raised on 09-10. Money is New Price.

AdThe rule that firedStart day & phaseRule dayStoppedDays pastTotal excess spendTotal spendSalesPer sale
A045 damage story, Tortoise pagekeeper$300 spent at $31 a sale; the keeper line is $3009-01Consolidation09-0609-104$286$58616$37
A082 Ballet Tips, A010 copykeeperraised $11 to $37 a day; next 3 days $135 a sale09-03Design test09-1209-142$148$2638$33
A080 Espresso Velvet, A010 copykeeperraised $12 to $38 a day; next 3 days $68 a sale09-03Design test09-1209-142$145$2647$38
A029 no-crusties gardenloser$100 with 0 sales08-28Launch08-3009-012$68$1682$84
A028 outdated stamp, product pageloser$100 with 1 sale09-01Consolidation09-0409-062$56$1561$156
A095 Day 0/1/14winner at 2x, raised earlyraised $36 to $59 a day; next 3 days $49 a sale09-07Iteration 209-1209-142$54$29913$23
A004 sticker QA, collection pageloser$100 with 0 sales08-28Launch08-3009-012$38$1380
A102 video, Diceloser$150 spent at $46 a sale09-10Iteration 2, video09-1309-141$36$1864$46
A103 video, Raspberry Velvetloser$100 with 0 sales09-11Iteration 2, video09-1309-141$35$1350
A045 damage story, collection pageloser$100 with 1 sale08-28Launch08-3109-011$24$1241$124
A058 stop-reveal macroloser$100 with 0 sales08-28Launch08-3109-011$15$1150
A094 pretty or healingloser$100 with 0 sales09-07Iteration 209-1009-100$11$1110
Totallosers $283 · keepers and the early raise $633$915$254452
What the column says$915 spent past the point the rules would have stopped it, 18% of the test.

$633 of it is keepers fed like winners, $283 is losers run past their read. Nothing ran a week too long. The leak was budget put on ads that had not earned it, and A045 on Tortoise alone is $286 of it. The $50-a-set launch that got four losers to $100 by day 3 is the part no rule can claw back; only the structure can.

Source of truth: Ads/_DEMAND-TEST-TIMELINE.md in the workspace. All times Pacific.