The two most expensive mistakes a paid media operator makes are killing ad sets too early and keeping them on life support too long. Both come from the same root cause: no clear rule about how long is enough to know.
The 14-day rule is the framework most experienced operators converge on, with adjustments. Here is how it works, and why it tends to outperform gut-feel cuts.
The three windows
Different decisions need different evaluation windows. The mistake is using one window for every decision.
14 days: full evaluation
The default window for "should this ad set continue to exist". Covers two full weekly cycles, smooths weekday and weekend variance, and is long enough to clear the 7-day click attribution window plus buffer. For most Shopify merchants spending US$50 to US$300 per day per ad set, 14 days gives enough conversion volume to make a reasoned call.
7 days: trend signal
A directional check, not a kill decision. Useful for "is this getting worse" or "is this recovering after a budget change". Most operators check the 7-day trend daily as a heartbeat. Single bad days inside a 7-day window are not actionable on their own.
3 days: emergency cuts only
Reserved for structural problems that have nothing to do with creative or audience performance. Examples: product went out of stock, conversion pixel broke, brand-safety placement issue, payment processor outage. If the ad set itself is delivering as designed but the funnel cannot convert, kill it within three days, not 14.
Why 14 specifically
Two weeks is the smallest window that does three things at once.
- Covers attribution drift. Meta's default attribution is 7-day click. A purchase on day 8 from a click on day 1 should still credit the ad set. A 14-day evaluation window catches the tail.
- Smooths variance. Two full weekend cycles. A single bad Sunday does not dominate the calculation.
- Generates stat-sig at small budgets. At US$100 per day with a 2 percent CVR and US$80 AOV, 14 days yields roughly 35 conversions. Enough to distinguish a 2.0 ROAS from a 3.0 ROAS with reasonable confidence.
Three days fails on all three. 30 days passes all three but burns money on dying ad sets for an extra two weeks.
The decision framework
Once you have 14 days of data, apply this:
- 14-day ROAS below target by more than 30 percent: kill. Redeploy budget to top-quartile ad set.
- 14-day ROAS within plus or minus 15 percent of target, 14-day trend down vs prior 14 days: warning. Cut budget 25 percent. Re-evaluate at next 14-day window.
- 14-day ROAS at or above target, single bad day in the 7-day window: ignore. Do not optimise on noise.
- 14-day ROAS at or above target, 7-day trend down: watch. No action this cycle.
- 14-day ROAS above target by more than 30 percent: scale candidate. Increase budget 15 to 20 percent, do not increase by more or you will reset the learning phase.
A worked example
Meta ad set running US$200 a day for 21 days. Targets: ROAS 2.5, CAC US$45.
- Days 1 to 14: ROAS 1.8, CAC US$58. Below ROAS target by 28 percent. CAC above target by 29 percent.
- Trend check (7-day vs prior 7-day): ROAS 1.7 vs 1.9. Declining.
- Decision under the 14-day rule: kill on day 14. Redeploy the US$200 a day to the top-ROAS ad set in the account.
- Outcome over the next 14 days: blended account ROAS lifted from 2.1 to 2.4, a 14 percent improvement on the same total spend.
The hard part is not the math. The hard part is sitting on day 7, watching ROAS at 1.6, and not cutting yet. The operator who cuts on day 7 saves seven days of spend on the losing ad set. The operator who cuts on day 14 saves the same money plus avoids the false positives that gut-feel cutters generate when ad sets recover on day 11 or 12. Over a year, the 14-day disciplined operator outperforms the 7-day reactive operator by 10 to 20 percent on blended ROAS.
The trap
The most common failure is mixing windows. Operators check the 7-day trend daily, see noise, and cut on noise. Or they check the 14-day window and see a number close to target, then cut anyway because "it feels weak". Both behaviours generate churn that hurts the platform's learning phase, which costs more than just leaving a marginal ad set alone for one more cycle.
The other trap is anchoring on the launch ROAS. A new ad set that hit 5.0 in week one and is now sitting at 2.4 looks like a failure on the dashboard. If the target is 2.5, it is a passing grade with a normal regression to the mean. Compare to the target, not to the peak.
What oddly does about this
oddly's reallocation algorithm uses the 14-day window with these exact thresholds. The decision card shows you the ROAS delta and CAC delta against your target, the 14-day trend, and the recommended action: kill, scale, or watch. Steer tier proposes the move and waits for one tap. The platform never increases your ad spend without you. The 14-day discipline becomes ambient, not a calendar reminder.