Insights · Measurement & Attribution

Why your year-over-year sales look terrible the week before a holiday

Sam Gil·Sep 2026·7 min
Key takeaways
1A 364-day, same-weekday comparison lines up weekdays but lets holidays drift, so the days before a shifted holiday get compared to last year's pre-holiday build.
2In our simulation a brand running level with last year, and ~12% ahead over its last 5 days, read -18% week to date on the Friday before Labor Day with MER down and CAC up, which is what makes the false read convincing, while the same days lined up on Labor Day were +13%.
3Add a holiday offset to the comparison rule, compare sale windows as a block, and make any budget change near a holiday wait for the aligned read.

A brand that had been running level with last year through August, and had just pulled ~12% ahead over its last 5 days, opened its Friday-morning report on August 28 and saw week-to-date revenue down 18% against last year, with MER down 7% and CAC up 8%. Nothing was wrong with the business, and the number came from the comparison method most teams already consider the careful one, the same weekdays 364 days back.

Labor Day was September 1 in 2025 and September 7 in 2026, so lining up the same weekdays sets this year's ordinary Monday to Thursday against last year's Monday to Thursday of the pre-holiday build, when early-access emails and teaser promos were already lifting demand. We simulated a DTC brand through three years, and the first exhibit is what its Friday report showed, day by day, with last year plotted on the same weekdays.

Simulated DTC brand · the Friday-morning report, Aug 28
−18%
Revenue vs last year, week to date (Mon-Thu Aug 24-27)
−7%
MER vs last year (3.8 against 4.1)
+8%
CAC vs last year ($60 against $56)

What the Friday report showed

Daily net revenue, this year against last year on the same weekdays, 364 days back, which is how most weekly reports line up the weeks.

20262025, same weekday (364 days back)
$0$100k$200k$300k
week to date −18% vs same weekdays last year
last year's pre-holiday build
Aug 3Aug 10Aug 17Aug 24Aug 27
2026 dates, with 2025 plotted 364 days back so weekdays match
Week of Aug 30%
Week of Aug 10+1%
Week of Aug 17+4%
Week of Aug 24, Mon-Thu−18%
Simulated brand, ~$100k/day net revenue in 2025, growth cooling from ~6% in May to roughly flat in August, then ~12% ahead from 15 days before Labor Day, paid spend flat, and holiday demand that builds over the ~8 days into Labor Day (~1.05x to ~1.6x a normal day) with the Fri-Mon sale as the top of the ramp. Week deltas are Mon-Sun revenue vs the same weekdays 364 days back; the last is Mon-Thu to date. The seeded run closest to the 200-seed median; across those seeds the week-to-date read was −15% to −22% (90% of runs). MER = net revenue / paid spend.

Why the careful comparison breaks here

The 364-day comparison lines up weekdays, but around a holiday demand runs on days-to-the-holiday, and a moving holiday drifts against it. Most teams moved off calendar-date comparisons years ago, because comparing a Saturday to a Friday adds noise every week, and 364 days back is exactly 52 weeks so every weekday matches. A holiday that falls on "the first Monday of September" lands either on the same aligned date or exactly one week later.

In 2026 it landed a week later, so under 364-day alignment Labor Day Monday, September 7, is compared against Monday, September 8 2025, an ordinary day. Demand into a holiday builds over the week or so before it, so the 2025 days sitting under this year's August 24-27 were 7 to 4 days before Labor Day and already climbing, and in the simulation the daily gap widens from ~-4% on Monday to ~-28% by Thursday. That reads as falling behind last year's build rather than as a calendar problem, and the week-to-date read lands at -18%. The full-week read the following Monday is worse at -34%, because it takes in last year's sale weekend, and the two Mondays after that swing to +67% and +28% once this year's build, sale and Labor Day are compared to ordinary days. The calendar-date read is no better (-9% week to date). Monthly views inherit the same problem one level up: most of last year's build and sale fell in August and this year's fell in September, so the simulated brand's August reads -9% and its September reads +30%, and neither is the growth rate.

The efficiency metrics carry the same error, because MER and CAC are ratios over the same wrong window, and that is what makes the false read convincing, because when revenue drops, MER slips 7% and CAC rises 8% in the same report, the room reads it as confirmation rather than one calendar artifact showing up three times.

The cost lands on the worst possible days. The -18% arrives on the Friday morning before the holiday weekend, in a week when the brand was actually pulling ahead, which is exactly when budgets get pulled, before anyone has worked out what happened. The Friday-to-Monday sale window a cut would hit carried ~33% of the three weeks around Labor Day in the simulation, at the best MER of the quarter (~5.3 against ~4.7 last year). A team that trims there is making its biggest budget call of the season on the wrong comparison.

Every weekday lined up, and this year's ordinary week still got compared against last year's pre-holiday build.

What the right answer looks like on that Friday

The useful answer on August 28 lines the years up on days before Labor Day instead of on calendar weeks, and says which comparison it used. Lined up that way, the four weeks ending 11 days out are roughly level with 2025 (+3%, MER 3.4 against 3.3), the last 5 of those days are +12% with MER 3.8 against 3.4, and last year's build and sale sit in the final 11 days, which this year hasn't reached yet, so the same Monday to Thursday that read -18% in the Friday report reads +13% on this basis.

Rendered example · governed AI answer on the brand's own data
Analytics assistantFri Aug 28, 9:05 AM
How are we tracking vs last Labor Day?

Level with last year through most of August, and pulling ahead over the last 5 days. The four weeks ending 11 days before Labor Day are +3% on 2025, at MER 3.4 against 3.3, and the last 5 of those days are +12%, with MER up to 3.8 against 3.4. The −18% in this morning's report sets Mon-Thu Aug 24-27 against Aug 25-28 last year, which were already 7 to 4 days before Labor Day and into last year's pre-holiday build.

Monthly YoY, an orderly cool-down
Month (vs 2025)YoY
May+6%
Jun+4%
Jul+2%
Aug (thru Aug 27)0%
Same ramp point, lined up on Labor Day
2026 vs 2025Revenuevs LYMER
4 wks to 11 days outJul 31-Aug 27 vs Jul 25-Aug 21$3.01M+3%3.4 vs 3.3
Last 5 of those daysAug 23-27 vs Aug 17-21$600k+12%3.8 vs 3.4

Why the week looks soft: daily revenue lined up on days before Labor Day. 2026 sits on last year's line for most of the run-up, lifts over the last 5 days, and stops 11 days out, and in 2024 and 2025 the final 11 days carried ~33% of the 46-day run-up, including the whole pre-holiday build and all four sale days, so last year's build is sitting in days this year hasn't reached. This year's sale starts Friday, Sep 4; last year's Fri-Mon did $935k at MER 4.7.

202620252024
$0$100k$200k$300k
peak still ahead
2026 to date
week to date +13% vs same days before Labor Day
4535282111LD
days before Labor Day →
Governed
Revenue
net_revenue: order revenue after discounts and refunds, excluding tax and shipping, by order date (store time zone)
MER
net_revenue / total paid media spend, same dates
Comparison
yoy_basis = holiday_aligned: windows near a shifted holiday are lined up on days before it (Labor Day 2026 vs 2025: 371 days, weekdays still match); otherwise 364 days
Figures from the same simulated brand, as they would have read on the morning of Friday, Aug 28 with data through Thursday, Aug 27. A third year (2024, ~8% below 2025, spend ~1% below) extends the same simulation. On phones the 2024 line is hidden, since the comparison that matters is against 2025.

Nothing in that answer needs a smarter analyst. It needs the comparison rule written into the metric definition, so every surface that reports year over year uses the holiday offset near a shifted holiday and says so. That rule is one of the things a governed data layer holds, and it only works on data you can slice by day and channel yourself, which is why we push brands toward first-party tracking over GA4.

Which holidays move in 2026 and 2027

Thanksgiving and BFCM line up in both 2026 and 2027, and besides Labor Day the moments that move are Easter, Father's Day, Prime Day and Memorial Day 2027. We computed each US retail moment's shift against 364-day alignment. A shift of 0 means the aligned week already contains the holiday, +7 means it lands a week later than the aligned date, and fixed-date holidays move one weekday per year.

Computed · US retail calendar

Where a 364-day comparison puts each holiday

Moment2025202620272026 vs 20252027 vs 2026
EasterSun Apr 20Sun Apr 5Sun Mar 282 weeks earlier1 week earlier
Mother's DaySun May 11Sun May 10Sun May 9AlignedAligned
Memorial DayMon May 26Mon May 25Mon May 31Aligned1 week later
Father's DaySun Jun 15Sun Jun 21Sun Jun 201 week laterAligned
July 4Fri Jul 4Sat Jul 4Sun Jul 41 weekday later1 weekday later
Labor Day · this postMon Sep 1Mon Sep 7Mon Sep 61 week laterAligned
Thanksgiving / BFCMThu Nov 27Thu Nov 26Thu Nov 25AlignedAligned
Christmas DayThu Dec 25Fri Dec 25Sat Dec 251 weekday later1 weekday later
Prime Day (start)Tue Jul 8Tue Jun 23not announced2 weeks earlier..
Shift = this year's date minus (last year's date + 364 days). "Aligned" means the same-weekday comparison already lines the moment up with itself; "1 week later" means the aligned week last year was a normal week. Fixed-date holidays drift one weekday a year. Prime Day uses Amazon's announced start dates (Jul 8, 2025; Jun 23, 2026), so it also moved from July into June, which distorts both months. All other dates calculated by rule (Easter by the Western computus).

So a same-weekday November comparison is sound this fall. Easter sits two weeks off the aligned week in 2026 and one week off in 2027, and Father's Day and Prime Day both moved this past June (Prime Day from July into late June).

What to do about it

  1. Keep 364 days as the default and add a holiday offset table. For any week within two weeks of a shifted moment, compare against the week at the same distance from last year's holiday. For Monday holidays that is a 371-day offset, which keeps weekdays aligned.

  2. Compare sale windows as one block. Report Fri-Mon against Fri-Mon, and put the week before and the week after in the same view, since pulled-forward demand and the post-sale dip net out across the block and not inside any single week.

  3. Treat fixed-date holidays by distance. July 4 and Christmas move a weekday each year, so compare days-to-holiday and, for Christmas, days-to-shipping-cutoff, rather than calendar weeks.

  4. Make budget changes near a holiday wait for the aligned read. I would suggest a simple rule: no spend change inside two weeks of a holiday unless revenue, MER and CAC all hold on the holiday-aligned comparison.

  5. Put the rule in the definition, not in someone's head. If the dashboard, the Monday email and the AI answer each compare differently, the loudest number wins the meeting.

If you want to check your own calendar before Easter and Memorial Day, the holiday table above is the list to start from, and I'm happy to walk through how we'd set up the comparison rule for your setup.

Common questions

How do I compare year over year sales when a holiday moves?

Keep the 364-day, same-weekday comparison as the default, and for any week within two weeks of a shifted holiday compare against the week at the same distance from last year's holiday. For a Monday holiday like Labor Day that is a 371-day offset, which keeps weekdays aligned. In our simulation the holiday-aligned read for Monday to Thursday, August 24-27, 2026 was +13%, with the last 5 days ~12% ahead of the same days before Labor Day last year, where the 364-day read showed -18%.

Why are my year over year sales down the week before Labor Day?

Labor Day fell on September 1 in 2025 and September 7 in 2026, so a 364-day comparison lines up this year's ordinary pre-holiday days with last year's pre-holiday build and sale weekend. In our simulation a brand running level with last year, and pulling ahead in its last 5 days, read -18% week to date on the Friday before Labor Day and -34% for the full week, then +67% and +28% in the two weeks after, with MER and CAC swinging the same way. Nothing changed in the business, and the swing comes from which days each week is compared against.

Is a 364-day comparison better than comparing the same calendar dates?

For ordinary weeks it is, because 364 days is exactly 52 weeks, so every weekday matches and you stop comparing a Saturday to a Friday. Around a holiday that moves, both methods break. In our simulation Monday to Thursday, August 24-27, 2026 read -18% on a 364-day basis and -9% on calendar dates, for a brand actually running ~12% ahead of the same days before Labor Day last year.

Why do MER and CAC look worse right before a holiday sale?

MER and CAC are ratios over the same comparison window as revenue, so when that window sets ordinary days against last year's pre-holiday build, they inherit the same error. In our simulation MER slipped 7% and CAC rose 8% alongside the -18% revenue read, which made one calendar artifact look like three confirming signals. Trimming spend in response would have hit the Friday-to-Monday sale window, which carried ~33% of the three weeks' revenue.

Do Thanksgiving and Black Friday shift in a 2026 year over year comparison?

No, Thanksgiving and BFCM line up under a 364-day comparison in both 2026 and 2027, so a same-weekday November comparison is sound. The moments that do shift are Labor Day 2026, Easter (two weeks off the aligned week in 2026 and one week off in 2027), Father's Day and Prime Day in June 2026, and Memorial Day 2027.

We build the governed metric layer that bakes the comparison rule into the definition, so the weekly report, the dashboard and the AI answer all compare against the right week.

See how it works →
Technical notes

Illustrative brand, simulated to look like a ~$37M DTC business with a Labor Day sale; the read shown is the median of 200 runs, and the Friday panic landed between -15% and -22% in 90% of them. Holiday dates computed by rule; Prime Day uses Amazon's announced dates.

SG
Sam Gil
Principal, Growth & Analytics · Meridian Growth
About the team →

Keep reading

Measurement & AttributionSep 2026 · 7 min
Why your year-over-year sales look terrible the week before a holiday
Read →
ExperimentationSep 2026 · 6 min
How long to run an ecom A/B test
Read →
ExperimentationSep 2025 · 6 min
Why Most Startup Experiments Fail (and What to Do Instead)
Read →
Retention & LifecycleSep 2025 · 5 min
Retention in Marketplaces: Why Liquidity Beats Variety Alone
Read →
Acquisition & CreativeSep 2025 · 5 min
Why First-Party Pixels Beat GA4 for User Journeys
Read →
Data FoundationsSep 2025 · 5 min
Why creative tagging fails, and what a working ontology looks like
Read →

Get in touch.

Tell us what you are trying to figure out. If we can help, we will say how. If we are not the right fit, we will say that too, and point you somewhere better.

01
Free work first
We start by doing a real piece of work on your data, free, so the first thing you judge is output, not a pitch.
02
First build, fixed scope
A trusted core metric layer in weeks, not quarters, at a fixed price. Small enough to be safe, real enough to matter.
03
Scale when it earns it
Month to month from there, from a few thousand a month. You own every model, dashboard and definition.