River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Seasonal Promotion Calendar Template

Two documents and four sheets that turn last year's own sales into an ordering deadline for every SKU this season plans to feature.

Free download  ·  No account needed

Stock Requirement

[Company] — [n] SKUs, [season] window, computed [date]

A promotion calendar tracks dates. A reorder point assumes another order is always possible. Neither one checks whether today is already too late for a season that will not restock partway through.

SKURequired StockOn HandIncomingGap to OrderLast Order DateStatus

The deadline, walked backward from the date that will not move

Season startThe fixed date the promotion calendar already commits to, set long before stock gets checked against it
Supplier lead timeProduction plus transit, in days, for this specific SKU and supplier, not a catalogue average
Last order dateSeason start minus lead time. Past this date, the season starts short by construction

Required stock adds a one-shot buffer on top of projected demand, because a season that sells out in week four gets no restock in week five.

Promotion calendar templates track dates, channels and discount depth. Reorder-point templates compute a trigger for steady-state demand. Neither one asks the one question that decides whether a fixed-date season works. Given what a business's own prior seasons say demand will do, and given a supplier's real lead time, is today already too late for a date that will not move? Holiday sales in November and December alone have averaged about 19 percent of total retail sales over the last five years, and for some sellers the share runs far higher.

Juniper Lane Co, an invented holiday home-decor brand, plans its Nov 1 to Dec 20 Holiday Peak window from today, September 8. A seasonal index, last year's holiday week against its off-season baseline, ranges from 4.91x on a slower-moving wreath to 11.17x on its best-selling string lights. Applied to this year's current rate and walked backward from November 1 by each SKU's supplier lead time, three of five SKUs already have a deadline in the past. Two of those three still have an open gap: 2,153 units on the string lights, 1,102 on the stockings.

A reorder point assumes another order is always possible once stock runs low. A season that allows no restock mid-window breaks that assumption, so Stock Requirement sizes its buffer once, for the whole window, instead of continuously. The gap it finds is what a true-cost comparison needs before paying for an expedited shipment, and the ordinary reorder point resumes once the season ends and steady-state demand returns.

Five SKUs, one holiday window, three ordering deadlines already in the past

The Seasonal Demand, Stock Requirement, Promotion Calendar and Margin Impact sheets from the pack.

Seasonal Demand by SKU

Juniper Lane Co, an invented holiday home-decor brand. Five SKUs, Holiday Peak window Nov 1–Dec 20, computed as of September 8.

SKUCurrent wkLY baseline wkLY holiday wkSeasonal indexYoY growthProjected wkProjected season
100-ct Warm White String Lights423640211.17x10%515.93611
7ft Pre-Lit Artificial Tree98718.88x8%86.3604
Set of 4 Knit Stockings21191588.32x9%190.31332
24-in Pre-Lit Wreath1111544.91x5%56.7397
Box of 36 Shatterproof Ornaments28241767.33x11%227.91595

The index is last year's holiday week against last year's own off-season baseline, so it isolates the season's multiplier before this year's growth is applied on top. String lights, at 11.17x, carry the largest swing between what the shelf holds in July and what it needs to hold in November.

Stock Requirement

Required stock adds a 15 percent one-shot buffer, since nothing sold short in week four of a seven-week season gets restocked in week five.

SKURequiredOn handIncomingGapSupplier leadLast order dateStatus
100-ct Warm White String Lights41531100900215365d2026-08-28Deadline passed - expedite or accept shortfall
7ft Pre-Lit Artificial Tree694520380080d2026-08-13Covered - no order needed
Set of 4 Knit Stockings1532280150110260d2026-09-02Deadline passed - expedite or accept shortfall
24-in Pre-Lit Wreath4562109015670d2026-08-23Deadline passed - small gap, standard reorder
Box of 36 Shatterproof Ornaments18353400149518d2026-10-14On track - place order now

Three of five last-order dates have already passed. The 7ft tree does not care, since an early pre-book already covers its projected demand. String lights and the knit stockings are not so fortunate: 2,153 and 1,102 units still short, with the standard-terms ordering window already closed on both.

Promotion Calendar

Three events across the window, each checked against the stock plan on the previous tab before its date went public.

EventDatesChannelsDiscount depthFeatured SKUs
Early Access Sale2026-11-01 – 2026-11-07Email + SMS list15% storewideAll five SKUs
Black Friday / Cyber Monday2026-11-27 – 2026-11-30Site + Amazon + EmailPer-SKU, see Margin ImpactString Lights, Tree, Stockings
12 Days of Holiday Deals2026-12-10 – 2026-12-21Site + EmailRotating 20-30% by SKUWreaths, Ornaments, remaining Stockings

Early Access opens while string lights and stockings are still inside a fixable window, so it doubles as the first real read on whether this year's index is tracking. Black Friday prices its discount per SKU against the Margin Impact tab rather than one storewide number.

Margin Impact

Regular and promo margin per unit, priced across the projected season volume from the Seasonal Demand tab.

SKURegular pricePromo priceReg margin/uPromo margin/uSeason marginGiven up to discount
100-ct Warm White String Lights$12.99$9.09$8.89$4.99$18,031$14,073
7ft Pre-Lit Artificial Tree$129.00$103.20$90.50$64.70$39,069$15,579
Set of 4 Knit Stockings$24.99$18.74$18.19$11.94$15,913$8,324
24-in Pre-Lit Wreath$34.99$27.99$25.79$18.79$7,459$2,778
Box of 36 Shatterproof Ornaments$19.99$14.99$14.39$9.39$14,985$7,973

Across five SKUs, the season is projected to give up $48,727 of margin to discount depth against the same volume at regular price, concentrated in the two SKUs the calendar tab discounts the deepest rather than spread evenly across the catalogue.

What's in the pack

01

Seasonal Demand by SKU sheet

This year's projected demand for the window, built from last year's own weekly sales rather than a generic uplift percentage.

02

Stock Requirement sheet

Required stock, on hand, incoming and the gap per SKU, each with its own ordering deadline counted against today's date.

03

Promotion Calendar sheet

Every event's dates, channels and featured SKUs, checked against the season's stock plan before a date goes public.

04

Margin Impact sheet

Regular and promo margin per unit, and the full margin given up to discount depth once volume is priced in.

05

Promotion Plan

The season's structure explained: why early-access, peak-event and closing-stretch discounts each serve a different goal.

06

Inventory Commitment Note

Why this window's buffer is sized once rather than continuously, and what a passed deadline on an open gap actually forces.

07

Three Prompts

Build the forecast, check every deadline against today, or log a new promotion event and its margin impact.

How it works

  1. 1

    Open it or download it

    Open the pack in River with the agent ready to build the forecast, or take the blank documents and sheets away for free with no account.

  2. 2

    Send last year's sales and this year's stock

    Send last year's sales for the same weeks, this year's current stock and incoming orders, and the promotion dates you are planning.

  3. 3

    Read the forecast and every deadline

    Get each SKU's projected demand, required stock, and ordering deadline compared against today, with any already-passed deadline named plainly.

  4. 4

    Decide, before the season decides for you

    Get the real choices on any at-risk SKU: expedite the order, shrink it to fit a faster method, or accept a stockout during a named part of the season.

Frequently asked questions

Is this template free?

Yes. Two documents, four sheets and three prompts with no signup and no card, and they are the same files the agent works in. Editing with AI is the optional path, where your own sales history and stock become the forecast.

What format are the downloaded files?

CSV for Seasonal Demand by SKU, Stock Requirement, Promotion Calendar and Margin Impact, and Word for the Promotion Plan and Inventory Commitment Note, zipped together. Excel, Numbers, Sheets, Word, Pages and Google Docs all open them directly.

Why isn't a reorder point enough for this?

A reorder point assumes another order is always possible once stock runs low, which is true for steady-state demand and false for a fixed-date season with no restock window left inside it. This pack sizes a one-shot buffer instead and checks it against a real deadline.

What if I don't have two years of sales history?

One full season last year is enough to build a seasonal index; the pack just says plainly which SKUs have no index yet rather than inventing one from a similar-sounding product. A first season with no history at all still gets a Stock Requirement sheet, minus the index column.

What happens if I miss the deadline and sell out mid-season?

That is an in-season stockout on a live promotion, and if a promised ship date can no longer be met, FTC rules require a reasonable basis for the promise or a revised date and a prompt refund instead. Naming the risk early is what this pack is for.

How is the seasonal index different from comparing to last year directly?

Comparing raw totals bakes in whatever growth or decline the business already had outside the season. The index isolates the season's own multiplier over an off-season baseline first, then applies that multiplier to this year's current rate, so growth gets counted once rather than twice.

Find out which of your SKUs already missed this season's ordering deadline

Download the blank pack as Word and CSV files, or open it in River, send last year's sales and this year's stock, and get every SKU's deadline checked against today.

Edit with AI