The previous chapter covered how to brief for BFCM - modular hooks, bodies, and CTAs. This chapter gets a little more technical, and answers the question underneath that: how much of it do you actually need to produce?
Most teams answer this on gut feel (and that often ends up as "let's do more than last year") which either leaves spend on the table because the account is creative-starved, or burns budget and production time on volume the account was never going to absorb.
During BFCM, both mistakes are expensive.
This chapter walks through a repeatable model that replaces the guesswork.
By the end, you'll have a number: input your account's real data, output the creative volume required to sustain or grow your spend through peak season.
Launches Needed = (Replacement Demand + Growth Demand) / Win Rate × Buffer
Where:
Replacement Demand = Winner Pool Size × Monthly Churn Rate
Growth Demand = max(0, Target Winners - Current Winners)
Expanded:
Launches Needed = ((Winners × Churn) + Growth Deficit) / Win Rate × 1.2
That's the whole model. Everything below explains how to measure each input from real data.
You need 4 windows of ad-level data from Meta Ads Manager (or API):
| Window | Date Range | Purpose |
|---|---|---|
| Month 1 | 61–90 days ago | Oldest cohort — baseline for survival tracking |
| Month 2 | 31–60 days ago | Middle cohort — tracks who survived from Month 1 |
| Month 3 | Last 30 days | Current state — your active winner pool |
| 7-Day Alive Check | Last 7 days | Confirms which ads are still actually delivering |
For each ad in each window, you need: Ad ID, Ad Name, Spend, Purchase ROAS (or your primary conversion metric).
The 7-day live check filters out ads that technically have 30-day spend but stopped delivering 3 weeks ago — they're dead, not active.
Every ad gets classified into one of three tiers based on two thresholds you define.