Holiday Inventory Planning for Shopify: Complete Guide
Holiday planning is a calendar problem before it is a forecasting one. Working backwards from peak to the date your purchase order actually has to leave.
The January post-mortem usually blames the forecast. Open the purchase order history and it is almost never the forecast. The number was roughly right; the order left two weeks after the last date it could have left and still landed in time, so the store spent its best six weeks selling whatever was already on the shelf.
Holiday planning is a calendar problem before it is a maths problem. This guide covers the calendar, the cash, and the commitment: how far back from peak the purchase order has to go, how much to commit against a window rather than a peak day, and what to do with what is left. It does not rebuild the forecast itself. Deriving a seasonal index from your own history is a separate job, covered in how to forecast seasonal inventory, and this post takes its output as an input. For the compressed four-day version of the same problem, see Black Friday inventory planning.
What holiday planning actually is
Three jobs, and the order matters, because each one constrains the next.
The calendar comes first. It sets the last date a purchase order can leave and still be sellable stock, and it is fixed by your supplier rather than by you. The cash comes second: the holiday buy is usually the largest single commitment of the year, and it goes out weeks before the revenue comes back. The buy quantity comes last, because it is the only one of the three you can adjust freely, and adjusting it is pointless if the date has already passed.
Most planning content runs this in reverse and starts with the quantity. That is how a store ends up with a well-argued number it cannot act on.
A forecast you cannot order against is a description of a season you are going to miss.
One thing has to be established before any of it: your peak week. Not the calendar's peak week, yours. A gift-oriented SKU and a cold-weather SKU that both sell heavily in Q4 can peak a month apart, and a store carrying both has two calendars, not one. That date comes out of your own order history, per SKU or per category, and it is the anchor for everything below.
Working backwards from peak
The last useful order date is peak minus supplier lead time minus a buffer for the variance in that lead time, minus the time it takes you to receive stock, minus however early the selling window opens. Miss it and the size of the buy stops mattering.
Worked on the site's house SKU. Cedar & Fig, 250g sells 5 units a day at baseline, costs $7 and retails at $18, and its supplier runs a 12-day lead time with a standard deviation of about 2 days across the last eight orders. Its peak is the last week of its season, and its own history shows the lift starting about four weeks earlier.
Counting backwards from the first day of peak week:
- 28 days before peak, the selling window opens. Stock has to be live and sellable then, not at peak.
- + 5 days to receive: unpack, count against the purchase order, resolve a short delivery, put away, publish. Received is not the same as available to sell.
- + 4 days of lead-time variance buffer. At a 95% service level that is 1.65 × 2 days = 3.3, rounded up. The Z value and where it comes from are covered in how supplier lead times affect your forecast.
- + 12 days of supplier lead time, measured from your own purchase orders rather than the supplier's quote.
- + 7 days to decide: pull the numbers, get the quote confirmed, approve the spend.
28 + 5 + 4 + 12 + 7 = 56 days. Eight weeks. The purchase order itself has to leave at day 49, seven weeks before peak, and the planning work starts a week before that.
Seven weeks is a comfortable calendar. Swap the supplier for one running a 60-day lead time and the same arithmetic gives 28 + 5 + 4 + 60 = 97 days, about 14 weeks before peak, with no allowance for deciding. A store sourcing overseas is committing to its holiday numbers roughly a quarter before the season, on a forecast with no recent signal in it. That is not a discipline problem. It is the structure of the decision, and the honest response is a wider buffer and an earlier start, not a better guess.
Measure that lead time from your own purchase orders, placement to available-to-sell, not from the supplier's quote, which usually covers production only. And check whether it stretches in Q4: yours is not the only order in their queue.
Sizing the holiday buy
The forecast is an input here, not an output. Cedar & Fig runs 150 units a month outside its season and carries a peak-month index of 2.5, which puts the peak month at 375 units. That derivation lives in the seasonal forecasting guide; this post starts from the number.
The mistake worth naming is sizing the buy against the peak-day rate. 375 units across a 30-day peak month is 12.5 units a day. Apply that rate to the whole 58-day season and you get 725 units, when the season actually needs the 375 peak-month units plus the ramp. Suppose the ramp month indexes at 1.5 on the same method: 150 × 1.5 = 225 units, so the season needs 600, not 725. The extra 125 units are $875 of cost that will still be sitting there in January.
units the 58-day season needs
units the peak-day rate suggests
cost of the difference
Then subtract what will still be there. At the purchase order date, day 49, Cedar & Fig has 120 units on hand. Between day 49 and day 28, when the window opens, it sells at baseline: 21 days × 5 units = 105 units. That leaves 15 units when the season starts, so the order is 600 − 15 = 585 units, rounded up to whatever the supplier's case pack forces. Rounding an order up to a minimum is its own decision, covered in how much to order. Call it 600 units at $7, which is $4,200 committed against $10,800 of retail value.
Size against what you can sell through, not against the highest rate you will ever hit. The metric that actually grades a seasonal buy is sell-through measured week by week against the plan, not turnover measured over the year; see how to calculate sell-through rate for that calculation.
One boundary. If part of the lift is a discount you are choosing to run rather than seasonal demand that would arrive anyway, that is a different estimate with a different method, and folding it into the seasonal index will corrupt the one you build next time. How promotions affect inventory forecasting covers separating the two.
Cash and supplier terms
$4,200 leaves the business seven weeks before peak and comes back over the following two months, some of it at full price and some of it at whatever the exit price turns out to be. On one SKU that is a purchase. Across a catalogue it is the largest working-capital decision of the year, and it lands at the point in the calendar where the least is known.
Three things change the shape of that commitment, and none of them changes the stock dates.
Payment terms move the cash date, not the order date. A deposit-and-balance arrangement splits the outlay across the lead time; net terms push it past the delivery. Both help the cash flow and neither buys you a single extra day on the calendar above. Negotiating terms is worth doing, but it is not a substitute for placing the order earlier.
Splitting the delivery buys optionality. Two deliveries against one purchase order, one landing before the window opens and one mid-season, converts part of a fixed commitment into a decision you make with three weeks of real sales data behind it. It costs freight and it needs a supplier who will do it, but on a high-uncertainty SKU it is usually the cheapest insurance available.
Several suppliers means several calendars. Every supplier has its own lead time, so every supplier has its own last order date, and they do not line up. The practical version is one list, sorted by last order date ascending, with the earliest one at the top. The SKU that seems least urgent by revenue is often the one whose date falls first.
Receiving capacity is the constraint nobody plans for. Five days of receiving is fine for one delivery. Three suppliers landing in the same week against a person who also has to pack orders is how stock sits in a box behind the desk during the first week of the window, physically present and not for sale.
Christmas and late-season dates
For a gift SKU the selling window does not end on Christmas Day. It ends on the last date a customer can order and still receive it in time, which is a carrier dispatch date, not a holiday date. Carriers publish those cutoffs for each service level, they move every year, and they are earlier than most merchants assume. Look up the current year's published dates for the services you actually use, and treat the earliest one you rely on as the real end of the window.
That has a hard consequence for reordering. Once the days remaining in your window are fewer than lead time plus variance buffer plus receiving, no order placed will arrive in time to be sold. For Cedar & Fig that is 12 + 4 + 5 = 21 days, three weeks. Inside that zone the shelf you have is the shelf you get, and every remaining lever is a merchandising lever rather than a buying one.
After the dispatch cutoff, demand changes shape rather than stopping. Local pickup and local delivery keep selling past the shipping deadline if you offer them, and gift cards keep converting the traffic. Whether your store sees a post-holiday tail is a question about your own order history rather than a general rule, and a real one changes how hard you discount in the final week.
Mid-season corrections
Three weeks into the window, compare cumulative units sold against the cumulative plan for the same days, not against the season total. The season total will always look under-sold in week three, which tells you nothing.
Running hot is the easier problem, and it is easier only if the calendar still allows an order. Check the remaining days in the window against the 21-day dead zone above before you do anything else. If an order can land, size it against the days it will actually be sellable rather than against the rate it has been selling at, because a reorder that arrives with ten days left in the window is a ten-day order. If an order cannot land, protect the sell-out: pull the SKU from paid traffic before it goes to zero, so you are not paying for clicks on a sold-out page, and move the promotion onto something you do have.
Running cold is the harder problem, because the instinct is to wait. The stock is not going to improve, and the price it will fetch will only fall as the season ages. If cumulative sell-through is well behind plan at the three-week mark and the pattern held across two checkpoints rather than one, act while the season is still doing the work for you. A modest discount inside the window recovers more than a deep one in January.
Doing this properly means recalculating a seasonal index per SKU, rebasing it against current velocity, and translating it into a last order date for each supplier, then keeping all of it current while the season runs. Past a handful of seasonal lines it stops happening. StockCue derives the seasonal index from your store's own order history on every plan including Free, and it damps and caps the result deliberately, so one unusually strong month does not triple the next suggested order. Purchase orders and receiving start at Starter, which is where the calendar side of this becomes something the app can hold rather than a spreadsheet.
Planning the exit
The position you will be in on the first working day of January is decided when you place the order, not discovered afterwards. Write down which of three positions you are aiming for before the season starts.
Sell through to near zero. Buy for the window and accept a thin last week. This is the right default for anything with dated packaging or a genuinely narrow season, and it means tolerating some lost sales at the tail rather than treating a stockout in the final days as a planning failure.
Carry it forward. Viable when the packaging is not dated, the product does not degrade, and you have shelf space you were not going to use. It is not free: that stock is cash sitting still for roughly eleven months, and it has to earn its place against everything else you could have bought with it.
Mark it down. Set the trigger before the season, as a date plus a sell-through threshold, because the decision is much harder to make in the moment. Willingness to pay for a seasonal item falls once the season ends, so the discount that clears it in early January is shallower than the one that clears it in March. Ten ways to sell excess inventory without losing margin covers the tactics; the decision to use them belongs here.
What you are avoiding is the fourth position, which is not a decision at all: holding the stock because nobody chose, until it stops being seasonal overstock and becomes dead stock. The habits that produce that outcome year after year are covered in how to prevent overstocking.
One last thing worth doing while it is still fresh: record what actually happened. Units sold per week against plan, the date the order was placed, the date the stock became sellable, and the gap between the two. Next season's calendar is built out of this season's dates, and nobody remembers them in September.
STOCKCUE
StockCue builds a seasonal index from your own Shopify order history and applies it to the month you are buying for, damped and capped so one big month does not distort the next order. Forecasting is on every plan including Free; purchase orders and receiving start at Starter.
Install StockCue on Shopify →Frequently Asked Questions
When should I place holiday purchase orders?
Work backwards from your own peak week rather than from a calendar date. Add up the days you need on the shelf before the selling window opens, your receiving time, a buffer for your supplier's lead-time variability, and the supplier's lead time itself. That total, subtracted from peak, is the last date the purchase order can leave. For a twelve-day lead time it lands around seven weeks before peak; for a sixty-day lead time it is closer to fourteen.
How much extra stock should I order for the holidays?
There is no multiplier that transfers between stores, so the number has to come from your own seasonal history rather than a rule of thumb. Forecast the whole selling window, not the peak day, then subtract what you will still have on hand when the window opens. Sizing the order off the peak-day rate is the single most common way a holiday buy turns into January carryover, because the peak rate only applies for a fraction of the season.
What should I do if a holiday product sells out in early December?
First check whether a reorder can still land. If the days left in your selling window are fewer than your lead time plus receiving plus a variance buffer, no order placed now will arrive while it can still be sold, and the decision is about what you do with the traffic instead: substitute a similar SKU, take backorders with a stated ship date, or let it go and protect the customer experience. If a reorder can land, size it against the days remaining in the window, not against the rate it sold at.
What should I do with leftover seasonal stock in January?
Decide this before the season starts rather than in January. The three positions are selling through to near zero and accepting a thin tail, carrying the stock to the next season if the packaging is not dated and you can afford the shelf, or marking it down. Set the markdown trigger as a date and a sell-through threshold in advance, because the willingness to pay for a seasonal item collapses once the season is over.
