Skip to content

US retail seasonal demand index (annual)

Commercial use OKFresh
Query in workbench

Follow this dataset

Get a notice in your feed when a new snapshot is published. Optionally, we also POST it to your webhook.

Must be a public https address. We never follow redirects.

The full snapshot isn't published yet — check back after the next refresh.Download sample CSVDownload sample JSONSample rows only (up to 20) — not the complete dataset.

Who joins this: an online shop joins monthly revenue on (category_code, calendar_month) and divides out seasonal_index to separate real performance from calendar seasonality; a sales team joins pipeline value on calendar_month for the same deseasonalizing. Method: the 12 Census Monthly Retail Trade Survey kind-of-business series (NAICS 441, 442, 443, 444, 445, 446, 447, 448, 451, 452, 453, 454) in NOT-seasonally-adjusted form via FRED's keyless fredgraph.csv (MRTSSM*USN, millions of dollars, 1992-01 ->). Classical multiplicative decomposition: centered 12-month moving average -> trend; seasonal-irregular ratio = value / trend; seasonal_index for each calendar month = median of that month's ratios across all complete years (median so one anomalous year cannot drag the profile), normalized so the 12 indices average exactly 1.0. si_stability_iqr is the interquartile range of the yearly ratios behind each point — the honest uncertainty. Category context: peak/trough month, seasonal amplitude, December lift, and median Q4 share of annual sales. 144 rows (12 categories x 12 months), refreshed annually once a new complete year lands. Caveats: the profile is a long-run national average per kind of business — structural shifts move it slowly; pandemic-2020 months are in the medians but outvoted by 30+ normal years; the trailing partial year is never used.

Rows
144
Columns
17
Source cadence
Yearly
Last refreshed
Sep 30, 2026
Theme
economics

Use your own AI key

Once today's free allowance is used up, AI features can run on your own provider account.

Kept in this browser tab only (cleared when you close it) and sent with each AI request. Our servers use it for that request and never store or log it.