Blog / BFCM Checklist

BFCM Checklist for Shopify Ads: The Last Four Weeks, Day by Day

BFCM checklist for Shopify ads: the last four weeks, day by day

TL;DR

  • Black Friday is Friday 27 November. If you're reading this in early November, you have about three and a half weeks, and that's enough.
  • Set the discount before the budget. At 20% off, a 50%-margin product needs 2.7x ROAS just to break even, up from 2.0x at full price.
  • Two weeks out, run five checks: budget on after-discount margin, enough creative, the offer tested on a phone, purchases firing on both platforms, and stock next to spend.
  • On sale days, check the site every hour and the money once a day. Never check intraday ROAS. A 4x at 11am can read 2.6x by midnight.
  • Make one change a day, or none. If you stack two edits, you can't read either.
  • After the sale, hold, and write down when you'll stop holding. The Monday ROAS drop is usually demand coming down, not a broken account.
  • 12 copy-paste prompts at the bottom, for Claude, ChatGPT or Drew.

What's on the BFCM checklist?

Here is the whole thing on one screen. Each row links to the section below.

When The job The number that decides it
4 weeks outRead last year's sale. Choose discount depth per productRepeat rate of sale buyers vs full-price buyers. Break-even ROAS at your discount
2 weeks outFive readiness checksDays of stock cover on every advertised product
1 week outPre-schedule budget steps. Write down your tracking gapThe normal gap between platform purchases and Shopify orders
Sale daysHourly: the site. Daily: the moneyContribution pace on your margin
The 2 weeks afterHold, with an exit conditionConversion rate back to its pre-sale level

Most BFCM checklists start 60 days out. Most brands start planning in November. This one starts at four weeks, because that's where most of you are.

BFCM checklist: the last four weeks on one line Hand-drawn schematic timeline with five stations and the one number that decides each. No store data. The last four weeks, on one line Black Friday = Fri 27 Nov · each stop has one number that decides it 4 WEEKS OUT Read last year's saleSet discount per product repeat rate + break-even ROAS 2 WEEKS OUT Five readiness checksbudget · creative · offertracking · stock days of stock cover 1 WEEK OUT Pre-schedule budget stepsWrite the 'broken' ruleOpen the edit log normal tracking gap SALE DAYS Hourly: the siteDaily: the moneyNever: intraday ROAS contribution pace AFTER Hold, with an exitcondition written downCohort read at day 90 CVR back to pre-sale Fri 27 Nov one change a day,or none. the number under each stop decides it
The whole checklist on one line. Each stop has one job and one number that decides it: repeat rate and break-even ROAS four weeks out, stock cover two weeks out, your normal tracking gap one week out, contribution pace on sale days, and conversion rate back at its pre-sale level afterwards. Schematic, no store data.

Four weeks out: did last year's sale buy customers who came back?

Answer this before you choose this year's discount.

Take first orders from last year's sale week. Compare them with first orders placed at full price in the month before. Look at how many came back within 90 days, split by the product they bought first. You only need Shopify order data for this, no attribution.

One brand ran this. Sale-week first buyers came back at about half the rate of full-price buyers. Nearly all of that gap came from one bucket: clearance. Its hero product brought in customers who came back at a normal rate, even at a discount.

So this year it discounts the hero lightly and clears the tail deeply. It no longer runs one sitewide number.

Then set the depth per product. The discount changes the ROAS you need to break even. At 40% margin and 30% off, you need 7x just to break even. The full table and the worksheet are in our discount strategy guide.

The rule: set the sale budget on what each order leaves you after the discount, not on last year's revenue times a multiplier.

Two weeks out: the five readiness checks

Sumit covers each of these in depth in Running a BFCM sale on Meta and Google. Here is the short version.

  • Budget on after-discount margin. Use the number from the step above.
  • Enough creative to last the week. Sale ads fatigue fast. One brand's best sale ad was already wearing out by day 5 of a 7-day sale: click-through rate down about 40% from its peak, frequency near 4. Launch sale creative before the sale, and keep one evergreen winner live. It may beat the sale ads.
  • The offer tested where customers redeem it. Click an ad on your phone, add to cart, and apply the code in the cart drawer, at checkout and on the live theme. One brand lost weeks of spend to a code that worked at checkout and failed in the drawer. Every number in Ads Manager looked fine.
  • Purchases firing on Meta and Google. Write down the normal gap between platform purchases and Shopify orders on an ordinary day. You'll need it on sale days.
  • Stock next to spend. List every product your ads point at, with days of stock cover at sale-week sell rate. A hero with 9 days of cover can't carry a 14-day campaign. In one 30-day audit, about 9% of a brand's ad spend went to variants at zero stock. More on this in ad spend on out-of-stock products.

Watch for "winners" that aren't winners yet. In two ad accounts we graded this autumn, 44 of 50 and 47 of 50 ads didn't have enough purchases or delivery days to call. Don't build your sale on an ad with eight purchases.

One week out: schedule it, then stop touching it

  • Pre-schedule your budget steps in Ads Manager and Google Ads, on the dates you've already chosen. Pulling sliders live on day one is how sale weeks lose money.
  • Google: apply a seasonality adjustment for the sale window, so Smart Bidding doesn't learn sale-week conversion rates as normal. Put the removal date in your calendar now.
  • Meta: decide on bid caps now. If a cost cap holds spend under budget in a normal week, decide today whether to loosen it. Don't change bid strategy mid-sale.
  • Write the "broken" rule down. For example: "A product with a broken size run gets de-pinned and its spend stops." Decide it now, so nobody argues about it at 2pm on Friday.
  • Open an edit log with date, time, what changed, why, and which number you expect to move. On day one it should be empty.

Sale days: the rhythm that did 10x

A $7M Shopify brand did 10 to 12 times a normal day on its first Black Friday. It didn't have a bigger budget than its peers. It had a rhythm.

For two days the team ran on an hourly report. Here's how their head of growth put it:

"In the traditional method you allocate this much spend for the sale period and you don't really know the potential. If every three hours you know exactly what is working and what is selling, you can do a crazy number."

What they did:

  • Every hour, what's selling. Products moving well got more ad spend and were pinned to the top of the collection page.
  • Every hour, what's broken. A style with a broken size run got de-pinned and its spend stopped. The rule was written before the sale.
  • Every three hours, stock. Days on hand at product level, from the warehouse system, because it runs ahead of the storefront. They still run this check every day.

What do you check hourly, daily and never?

How often What to check Where
Every hour (the site)Is checkout converting? Is the code applying? Is the hero in stock? Is spend delivering? Are purchases firing on both platforms?Shopify, your phone, the delivery column in Ads Manager
Every 3 hoursStock cover on every advertised product at today's sell rateInventory or warehouse system
Once a day (the money)Contribution pace vs plan; blended ROAS against Shopify orders net of refunds; frequency on sale creativeShopify plus both ad platforms, joined
NeverIntraday ROAS and CPAMornings flatter it, because your email list and repeat buyers convert first, and late conversions haven't landed yet. A 4x at 11am can settle at 2.6x by midnight
Why you never scale on intraday ROAS Hand-drawn schematic, illustrative numbers only. No store data. Why you never scale on intraday ROAS one sale day · ROAS 'so far today' · illustrative, not a real store 6am 9am noon 3pm 6pm 9pm midnight 2x 3x 4x 11am: reads 4x.Budget raised here. settles near 2.6x mornings: email list + repeat buyers afternoon: colder traffic arrives conversions land 1–3 days late.read yesterday, once a day.
One sale day, illustrative. ROAS 'so far today' looks best in the morning, when your email list and repeat buyers convert first, then drifts down as colder traffic arrives. Late conversions keep landing for one to three days after that. A budget raised at 11am on a 4x reading is raised on a number that won't hold. Check the site hourly and the money once a day.

Revenue is up 3x. Should I scale?

Not on revenue alone. The discount may already have eaten the margin. Scale only when all three of these hold:

  1. Contribution pace is above plan, on your real margins.
  2. The products getting the spend have stock to cover it.
  3. Spend isn't piling into one ad set.

If all three hold, take your next pre-scheduled step. If one fails, hold.

One change a day, or none

Changes that reset platform learning include a budget jump of more than about 20–25% in one step, a bid-strategy change, a targeting change, or a creative swap inside a winning ad set. Pausing ads for a sold-out product, fixing a code, or taking a pre-scheduled budget step don't reset learning.

If you make two changes in one day, you won't know which one moved the number. Sale week is the most expensive week to learn nothing in.

ROAS dropped mid-sale. Is it the ads or the site?

Three different problems look the same in the ROAS column: demand coming down, a site problem, and a tracking break. Work out which one it is before you touch anything. The full rule is in Sumit's sale guide. The quickest test is to compare today with yesterday, hour by hour.

Three brands asked Drew "is it the ads or the site?" in the same two weeks this September. All three answers were the site. One saw checkout completion fall from 34% to 25% while CPM got cheaper and CTR stayed flat. In each case the right ads change was none. More in add to cart but not checking out.

The two weeks after: a hold is a decision

The Monday after, ROAS is down by maybe 40%, and the account looks broken. Usually it isn't. Demand is coming down, and both platforms have just spent a week learning a conversion rate that no longer exists.

  • Remove the Google seasonality adjustment. Add a data exclusion for any day tracking broke.
  • Hold, and write down when you'll stop. For example: one full conversion window at the pre-sale conversion rate, and blended ROAS back inside its normal band.
  • Pull the sale creative. Let evergreen winners recover. Note which sale ads wore out on which day. That's next year's creative plan.
  • Put the 90-day cohort read in your calendar. Compare sale-week first buyers with full-price first buyers. That's next year's four-weeks-out step.

More on knowing when to act in signal or noise.

12 prompts to run your BFCM checks with AI

Paste these into Claude or ChatGPT with your store data connected, or ask Drew inside Datadrew. Drew reads your Shopify, Meta and Google data once a day, so these work best for daily checks, not hourly ones.

Four weeks out

  1. "For each product I plan to discount by 20–30% this BFCM, what is the contribution margin after the discount, and the break-even ROAS, using my Shopify unit costs?"
  2. "Compare 90-day repeat rate for customers whose first order was in last year's BFCM week vs customers whose first order was in the four weeks before, split by first product bought."
  3. "For the last three months, show new vs repeat revenue share by product bucket."

Two weeks out

  1. "Which of my current ads have enough purchases and delivery days to be graded, and which of those are fatiguing (CTR drop from peak, frequency)?"
  2. "Which products taking Meta or Google spend have under 14 days of stock cover at their last-7-day sales rate?"
  3. "Show platform-reported purchases vs Shopify orders, daily, for the last 14 days. What's the normal gap?"
  4. "Which campaigns and ad sets are below my break-even ROAS? Rank them by spend."
  5. "How much did I spend on products at zero or negative stock in the last 30 days?"

Sale days

  1. "Compare today with yesterday, like for like, by hour: sessions, add-to-cart, checkout completion, purchases, CPM, CTR and frequency. Is this an ads problem or a site problem?"
  2. "Where did the extra Performance Max spend go during the sale: brand vs non-brand, new vs returning?"

After

  1. "Since the sale ended, is my blended ROAS drop explained by traffic coming down, by conversion rate, or by a tracking gap? Compare it to the four weeks before the sale."
  2. "What was my cost per new customer in the sale week vs the four weeks before, using Shopify first orders?"

The printable BFCM checklist

Four weeks out

  • Last year's sale cohort read: repeat rate of sale buyers vs full-price buyers, by product
  • Discount depth chosen per product, from break-even ROAS on your margins
  • Sale budget set on after-discount margin

Two weeks out

  • Sale creative launched; one evergreen winner kept live
  • Offer tested from an ad click, on a phone: drawer, checkout, live theme
  • Purchases firing on Meta and Google; normal gap to Shopify orders written down
  • Every advertised product listed with sale-rate stock cover; spend moved off anything that sells out early

One week out

  • Budget steps pre-scheduled on both platforms
  • Google seasonality adjustment applied, removal date in the calendar
  • "Broken" rule written down; edit log open and empty

Sale days

  • Hourly: the site. Every 3 hours: stock. Daily: the money. Never: intraday ROAS
  • One change a day, or none
  • Scale only when margin pace, stock cover and delivery spread all hold
  • On any ROAS drop, name the problem before touching anything

After

  • Seasonality adjustment removed; data exclusion for any tracking break
  • Hold, with the exit condition written down
  • 90-day cohort read in the calendar

Frequently asked questions

When is Black Friday 2026? Friday 27 November 2026. Cyber Monday is 30 November.

How much should I raise my ad budget for Black Friday? Base it on what an order leaves after the discount, not on a multiplier of last year's spend. Find your break-even ROAS at your discount first, then set the budget steps you can afford above it.

Should I launch new creative during Black Friday week? Launch it before the week. A new ad launched mid-sale has no time to exit learning, and it pulls spend away from the ads that are working.

Why did my ROAS drop the Monday after Black Friday? Usually because demand is coming down and the platforms are still bidding on sale-week conversion rates. Hold until your conversion rate is back to its pre-sale level, then read the account again.

How often should I check ROAS on Black Friday? Once a day. Intraday ROAS sits inside a conversion lag and reads high or low until the day closes. Check the site every hour instead.

Datadrew is an AI ads agent for Shopify. It joins Shopify, Meta and Google once a day, and you can ask Drew every question on this checklist about your own store. Run the checks on your store →

DD
John Abhishek Head of Growth @ Datadrew.

Take CONTROL of your Shopify growth today