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.

The Demand Equation

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.

Step 1: Pull the 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.

Step 2: Classify Every Ad

Every ad gets classified into one of three tiers based on two thresholds you define.