Conversion Rate Optimization

100 Days Until Christmas: What 6,500 Holiday Campaigns Taught Us About Starting in September

Muhammed Tüfekyapan By Muhammed Tüfekyapan
• • 13 min read
100 Days Until Christmas: What 6,500 Holiday Campaigns Taught Us About Starting in September

We pulled 6,500 holiday campaigns from Shopify stores and sorted them by the week they started. The strongest predictor of how a store's December revenue arrived was not its category, its ad budget, or how deep it discounted. It was the start date, because the start date quietly decided what kind of campaign the store could still run.

The debate over holiday campaign timing has exactly one sentence in it: start early. Every September the advice comes back, and every September merchants nod. Plenty of them do start early, then show up in late November holding the same percentage-off plan they would have had anyway. The industry's evidence story oversells itself. Once you index for store size, gross season totals across start cohorts land within points of each other. The real gap hides in a column most merchants never check: how the revenue was earned, not how much of it there was.

By the end of this you will know the two species these campaigns sorted into, the one diagnostic that tells you which species you ran last year, and the short list of what is still buildable at 100 days out, in the order it needs to happen.

Start with the finding that breaks the usual story, because the usual story is that starting early means selling more. It does not.

The September Cohort Did Not Sell Much More. It Sold Differently.

Indexed for store size, gross November-through-December revenue came in close across start cohorts. Early starters did better, but by points, not multiples. That is why the "start early, earn more" sentence has never settled anything: the number it points at barely moves. The composition gap was several times wider. The later a campaign started, the larger the share of its season orders that moved through a discount code. Later cohorts also leaned harder on first-time visitors, and the customers they brought in came back in January less often.

How the 6,500 Campaigns Were Sorted

Two holiday seasons of anonymized Shopify campaigns, across fashion, beauty, home goods, and DTC. Each campaign was dated by its first observable holiday activity: a seasonal sale going live, a holiday collection push, a seasonal offer appearing. Three cohorts emerged: campaigns that started on or before September 30, campaigns that started in October, and campaigns that started in November or later. Revenue was indexed per store, so a $40K-per-month store and a $400K-per-month store count equally, and the pattern was checked inside revenue bands so store size cannot explain it away. The indexed gross season totals: September cohort 100, October cohort 95, November cohort 89. A real gap, and an unimpressive one.

The Diagnostic: Code-Assisted Revenue Share

Export last year's orders from November 1 through December 25, count the orders that carried a discount code, and divide by total orders. That percentage is the single most honest summary of the season you ran, because it answers the question the revenue dashboard never asks: how much of this season needed a bribe to happen. Three steps, a few minutes:

  1. Export the orders: last year's November 1 through December 25, from your Shopify admin.
  2. Count the coded orders: every order that carried a discount code at checkout.
  3. Divide by total orders: that share, in one number, is the season you actually ran.

This is the same lesson as our Labor Day data: busy and profitable are not the same measurement, and a revenue total can hide the composition the whole season was made of. The observed medians across cohorts:

Cohort Indexed gross season revenue Median share of season orders carrying a discount code
Started on or before September 30 100 34%
Started in October 95 47%
Started in November or later 89 63%

The revenue gap between the first and last cohort is 11 points. The mechanism gap is 29. The start date predicted how revenue was earned far better than it predicted how much of it there was, and that is the finding the rest of this article unpacks.

Two stores can post identical December revenue and have run two different businesses to get it. The code column is where you find out which one you ran.

Start Dates Sorted the Campaigns Into Two Species

The campaigns did not differ only in results. They differed in anatomy, and anatomy tracked the start date. Early cohorts were several times more likely to include a structural mechanism like post-purchase upsells, cart thresholds, or bundles. The November cohort was overwhelmingly single-mechanism: a percentage off. The two anatomies deserve names.

The Build Campaign, as It Appears in the Data

A build campaign is not defined by when it starts but by what it is made of: an upsell path after checkout, a cart that asks for one more item in exchange for a threshold reward, bundles that turn gifting into multi-item baskets, an audience with behavioral history behind it. Every one of those components shares one trait: it needs live order flow to calibrate, so each carries a minimum runway. December is where the build campaign collects. September and October are where it gets assembled, and that assembly is what the early start was actually for.

The Bid Campaign Pays for the Same Customer Twice

Run the arithmetic on a representative bid campaign season. A store with $180,000 of November-through-December revenue, where 60% of orders carried codes at an average depth of 22%, sold $108,000 of code-assisted revenue. Against the list value of those baskets, roughly $138,500, the discount bill alone comes to about $30,500. That is before ad costs, and the same store bought its traffic during the most expensive auction weeks of the year, bidding against every other late store for the shoppers who are already moving before October. Payment one goes to the platform for the impression. Payment two goes to the customer for the order. Both payments buy the same order, and nothing about either one exists in January.

The Build Campaign The Bid Campaign
Primary mechanism Structure: upsells, thresholds, bundles, an audience with history Price: a percentage off, amplified with ads
What the 100 days are spent on Assembling and calibrating the mechanisms December will use Waiting for the calendar, then buying demand
Share of season orders carrying a code (observed medians) About a third About two thirds
AOV across the season Rises into December Flat or falling, worst at peak
What exists in January A calibrated structure and a repeat-prone customer base A list trained to wait for the next code
Minimum assembly time Weeks, per mechanism An afternoon

If you want the build campaign's side of this table done well, start with raising order value without touching the price. That is the muscle every mechanism here depends on.

A bid campaign pays for the same customer twice: once to the platform for the impression, and once to the customer for the order.

Early Starters Who Led With a Discount Became Late Starters in Every Way That Matters

Here is the finding that breaks the countdown lecture. Inside the September cohort there were two sub-species, and the one that opened the season with a broad discount finished looking statistically like the November cohort: code-assisted share near 60%, flat AOV, quiet January. Once you control for species, the start date stops predicting outcomes on itself. The calendar advantage was entirely spent on what the early weeks were spent learning.

The Two Sub-Species Inside the September Cohort

September starters who led with structure and held their price finished with median code-assisted shares in the low 30s. September starters who opened the season with a broad 25%-off-style event finished with a median share near 58%, within noise of the November cohort's 63%. Their holiday-acquired customers repeated in January at rates closer to the late cohort's pattern than to their own cohort's. The data cannot tell the difference between a store that started in November and a store that started in September and spent it discounting. The calendar gave the second group ten extra weeks, and they used none of them.

What the Strongest November Starters Refused to Do

The mirror image held too. The best-performing slice of the late cohort shared one refusal: no sitewide code. These stores accepted a smaller season on gross revenue, ran one or two mechanisms that fit the runway they had left, typically a single upsell path and one cart threshold, and finished with code-assisted shares near 30% and the late cohort's best January repeat numbers. Their seasons were smaller and substantially more profitable per order, and they entered the following year owning a structure instead of a habit. The species explains the outcome. The start date only explains which species was still on the shelf.

The stores that wasted September were not the ones that started late. They were the ones that spent September running November's campaign.

What Is Still Buildable at 100 Days Out

Good news first: at 100 days before Christmas, every mechanism on the build list still fits its observed minimum runway. The foreclosure happens piece by piece through October, not all at once. The post-purchase upsell funnel needs your September and October orders to learn which add-ons customers accept. The cart threshold needs calibration against real baskets. The bid campaign, meanwhile, is always available, which is exactly why it becomes the default.

The Funnel Needs Your September and October Orders

In the data, funnels with eight or more weeks of order history behind their product picks saw one-click acceptance rates roughly double those of funnels switched on during peak week. This is the funnel that has to exist before December arrives: it needs ordinary traffic to learn what your customers accept together, and the next ten weeks are exactly that.

Growth Suite's post-purchase upsell funnels place one-click add-ons on an intermediate screen before the thank-you page, with funnel rules prioritized by product, order value, or item count, and product picks set manually or left to the algorithm. Switched on now, the funnel has ten weeks of ordinary orders to learn which pairings your customers actually accept. Switched on in the third week of November, it runs untested pairings on the biggest traffic days of your year.

The Threshold Needs Calibration, Not a Guess

Thresholds arrived at through a few weeks of basket history tended to land a deliberate distance above the store's median basket, which is the zone where AOV rises without a conversion sag. Thresholds set at peak week clustered at or below the existing median basket, which is a discount dressed as an incentive: the store pays the reward for behavior it already had.

Growth Suite's Advanced Cart Drawer turns the threshold into something measurable: a progress-based incentive that shows shoppers exactly how far they are from free shipping or a conditional gift, with AI-suggested products to close the gap and analytics on every interaction. A few weeks of September and October baskets tell you where the threshold belongs. That read is precisely what a November install cannot bring with it.

Build mechanism Why it needs runway What peak-week launches showed in the data
Post-purchase upsell funnel Pairing acceptance only reveals itself across real orders Untested pairings, acceptance rates roughly half of seasoned funnels
Cart threshold incentive The effective threshold sits above the current median basket, and only basket history shows where Thresholds set at or below the median, buying no AOV at all
Gift and bundle structure Multi-item combinations need evidence of what customers accept together Six untested bundles live on the highest-traffic days of the year

The build list is short, and so is the calendar. Map the remaining runway to real shipping dates and the order of operations writes itself.

The build list is short and it shrinks one item at a time. Every week of waiting moves something from the build column to the bid column.

Which Species Are You Running?

Across 6,500 campaigns, the start date predicted the mechanism mix far better than the revenue total. Campaigns sort into two species: the Build Campaign, assembled across the 100 days, and the Bid Campaign, rented during them. Species beats date. September starters who led with a discount finished indistinguishable from November starters, and the strongest late starters were the ones who refused the sitewide code. Today, every build mechanism still fits its runway. That stops being true one mechanism at a time.

This week, before any holiday planning meeting, pull last year's November and December orders and count how many carried a discount code. If the answer is more than half, you ran a bid campaign. The next 100 days are your chance to run the other species.

Growth Suite is built for the build side of this split: post-purchase upsell funnels that learn your pairings from current orders, a cart drawer that finds your threshold from real baskets, and one genuine, expiring offer kept for visitors whose behavior says they will leave without buying. It installs free from the Shopify App Store, and the 14-day trial is long enough to watch the first funnel learn something.

Frequently Asked Questions

When should I start my Shopify holiday campaign?

September, but the date is only half the answer. In the 6,500-campaign dataset, September starters who led with structure outperformed, while September starters who led with a discount ended up statistically indistinguishable from November starters. Start in September, and spend the month building mechanisms rather than announcing markdowns.

Is September too early to start Christmas promotions?

It is too early to start Christmas discounting, and exactly early enough to start Christmas building. September shoppers are mostly browsing, and a sitewide code mostly trains your existing list to expect one. The mechanisms that carry December, like upsell funnels and cart thresholds, need these exact weeks of ordinary traffic to calibrate.

Do holiday campaigns that start earlier actually make more money?

Slightly, on gross revenue, and that gap is the least interesting finding in the data. Indexed season revenue came in within roughly ten points across start cohorts. The dramatic gaps were in composition: the share of orders carrying a discount code ran from a median of about a third for September starters to about two thirds for November starters.

What can I still set up 100 days before Christmas?

Everything on the build list, if you start now. A post-purchase upsell funnel needs eight to ten weeks of order flow to learn which pairings customers accept, and a cart threshold needs a few weeks of basket data to sit above your current median order. Both fit the remaining runway comfortably. Neither survives being launched in peak week.

How much of my holiday revenue should come from discounted orders?

There is no universal line, but the observed medians are instructive: campaigns that started in September carried codes on about a third of season orders, while November starters carried them on about two thirds. Run the same calculation on last year's orders. Your trend across the years matters more than any single season's number.

Ready to Implement These Strategies?

Start applying these insights to your Shopify store with Growth Suite. It takes less than 60 seconds to launch your first campaign.

Muhammed Tüfekyapan

Muhammed Tüfekyapan

Founder of Growth Suite

Muhammed Tüfekyapan is a growth marketing expert and the founder of Growth Suite, an AI-powered Shopify app trusted by over 300 stores across 40+ countries. With a career in data-driven e-commerce optimization that began in 2012, he has established himself as a leading authority in the field.

In 2015, Muhammed authored the influential book, "Introduction to Growth Hacking," distilling his early insights into actionable strategies for business growth. His hands-on experience includes consulting for over 100 companies across more than 10 sectors, where he consistently helped brands achieve significant improvements in conversion rates and revenue. This deep understanding of the challenges facing Shopify merchants inspired him to found Growth Suite, a solution dedicated to converting hesitant browsers into buyers through personalized, smart offers. Muhammed's work is driven by a passion for empowering entrepreneurs with the data and tools needed to thrive in the competitive world of e-commerce.

More Insights from Our Blog

Continue reading for more expert tips and strategies to grow your Shopify store

Explore more

Resources

All resources
Shopify Upselling & Cross-Selling - Growth Suite

Topic ·9 min read

Shopify Upselling & Cross-Selling

Most Shopify stores leave 10-30% of revenue on the table because they do not upsell or cross-sell effectively. This...

Shopify Countdown Timer - Growth Suite

Topic ·4 min read

Shopify Countdown Timer

Adding a timer takes 5 minutes. Making it convert without destroying trust? That's strategy. The complete guide to...

Shopify Cart Abandonment - Growth Suite

Topic ·3 min read

Shopify Cart Abandonment

70% of Shopify carts are abandoned. Learn why customers leave, how to prevent abandonment in real-time, and recover...

Shopify Discount - Growth Suite

Topic ·3 min read

Shopify Discount

Master Shopify discounts without sacrificing your profit margins. Learn strategic discount techniques, timing...

Free Conversion Audit

Request Free Audit