Marketing

BFCM Email Calendar: 14 Days, 7 Sends, Zero List Fatigue

BFCM Email Calendar: 14 Days, 7 Sends, Zero List Fatigue
Contents

Every BFCM playbook I open tells me to send 14, 18, sometimes 24 emails in a fortnight. The reasoning is simple: more touches, more revenue. The data from my last two BFCMs says the opposite. In 2023, a brand I worked with shipped 22 emails to a 180K list over 14 days. Open rate on Black Friday itself was 31%. By Cyber Monday afternoon it was 14%. By the recovery send on day 14, the unsubscribe rate was 3x normal and Gmail was throttling us. We made money, but we also lost around 8% of the list and 6 months of sender reputation repair.

The 7-send calendar below is what I shipped last year instead. 14 days, 7 emails, one email per segment per day, and a suppression list that prevents any one person from getting more than 3 emails in the whole window. It cut our BFCM volume by two-thirds, kept open rates flat at 38–42% across the full two weeks, and ended with an unsubscribe rate below baseline.

The principle: segments, not cadence

Most BFCM calendars optimize for "how many emails can we send before it feels spammy." That's the wrong question. The right question is: who needs to hear from us today, and how few other people need to hear the same thing?

Once you reframe it that way, a 7-send calendar stops looking minimal. It looks generous. There are still 7 distinct jobs to do, 7 distinct messages to write, and 7 distinct reasons for someone to open.

The other reframe: BFCM is 14 days long, not 4. Most calendars squeeze everything into Thanksgiving-to-Cyber-Monday. That guarantees inbox collision with every other brand doing the same thing. Spreading sends from early November through the first week of December is the single biggest deliverability lever most brands ignore.

The 14-day calendar

Day numbering is relative — anchor Day 0 to your own BFCM launch date, then count outward.

Day Theme Segment Subject line (test) Suppressed from this send
-10 Warm-up: opt-in for early access Engaged 90d (no purchase 180d) "Early access list — opens Friday" Anyone who bought in last 30d
-7 VIP tease Top 10% LTV (lifetime value) "{{first_name}}, the doors open early for you" Engaged non-buyers get the -10 send later, not this one
-3 Public teaser (countdown) All non-suppressed "3 days. Here's the map." Subscribers in sunset flow; unengaged 180d+
0 Black Friday launch All non-suppressed "Doors open. Site's live." Sunset flow; unsubscribed
+1 Lapsed win-back 90d–365d lapsed buyers "Last year you bought {{last_product}}. This year is different." Anyone who bought in last 7d
+3 Cyber Monday last call Engaged 30d non-buyers "8 hours. Then it's gone." Buyers since Day -7; sunset flow
+10 Recovery / second wave All non-buyers since Day 0 "We kept one thing off the table. Today it's on it." Anyone who bought in last 14d

Seven sends. Fourteen days. Each send goes to a different primary segment, and the suppression columns are where the fatigue gets killed.

Segment definitions that actually load in Klaviyo

The calendar is a wish list until the segments resolve. Here are the four that do the heavy lifting, in Klaviyo's segment-builder syntax:

  • Engaged 90d (no purchase 180d)Opened or clicked email in last 90 days AND has not placed order in last 180 days. This is your "still listening, hasn't bought" bucket.
  • Top 10% LTVHistoric customer lifetime value is greater than your actual 90th-percentile number. Don't hardcode a round figure; Klaviyo's Define with AI feature will compute the cutoff against your real data if you prompt it correctly.
  • 90d–365d lapsed buyersPlaced order between 90 and 365 days ago AND has not placed order in last 90 days. This is the bucket most brands confuse with "dead" and accidentally send the winback to people who just bought.
  • All non-suppressedEmail consent is true AND is not in sunset flow AND has opened or clicked in last 180 days. The third filter is the one that keeps deliverability safe.

The suppression rules that keep the calendar from collapsing

A segment-based calendar only works if you enforce who cannot receive a given send. The three rules I won't ship without:

1. Sunset suppression is global. Anyone in a sunset flow (a planned unengaged-subscriber removal sequence) gets removed from every BFCM send for that year, full stop. Sunset means sunset. If you keep mailing them during BFCM, you reset their unengaged status and break the flow.

2. Recent buyers are off-limits for 14 days. Anyone who placed an order in the last 14 days is excluded from every promotional send, including teasers. Last thing you want is a "Site's live" email going to someone who just checked out 20 minutes ago.

3. Cap at 3 BFCM emails per person. If a subscriber fits two segments, they should still get no more than 3 sends across the 14-day window. In Klaviyo this is a Max emails sent property updated by a flow webhook, or a Frequency cap set at the campaign level. The cap is what protects your engaged-but-bought-lately subscribers from being ambushed by your own segmentation.

One quick implementation note

Build the calendar in a single Klaviyo flow, not seven separate campaigns. A flow triggered by an internal "BFCM 2025 eligible" segment property lets each email branch on the Suppressed from this send filter from the table above. That way, when a subscriber buys on Day 0, the flow automatically skips them on Day +3, +10, and any future send, without you editing campaign logic on the fly.

Also: schedule the post-BFCM recovery (Day +10) for Tuesday morning, not Saturday. BFCM-weekend opens are dominated by deal hunters; the recovery email converts better when it lands midweek, when inbox volume drops and purchase intent from "I missed it" shoppers peaks.

The 7-send calendar is a feature, not a compromise

There's a temptation, when revenue is on the line, to add an eighth email. Or a ninth. The whole point of this calendar is that restraint is the strategy. The brands that destroy their lists in Q4 are the ones that turn the calendar into a campaign. The brands that come out of BFCM with a healthier list than they went in are the ones who held the line at 7.

If you ship this as designed, you'll send fewer emails than 90% of your competitors. Your open rate will look weirdly high. Your unsubscribe rate will look weirdly low. Your list on December 1 will be the same size — or larger — than it was on November 1. That's the goal.