SKU detail

MONTHLY HISTORY & FORECAST — shaded band is measured backtest error, not a confidence interval
FITTED SEASONAL PROFILE
DECOMPOSITION BY FORWARD MONTH
FORWARD MONTHS
Every month below can explain itself. Click Why? on any row to see the calculation, the months the base came from, what is driving the number up or down, and an independent cross-check against last year at this year’s run-rate. A REVIEW badge means that cross-check disagrees with the model.
MonthhForecast Band lowBand high BaseSeasonal TrendEvents Index src
FORECAST VS ACTUAL (this run)
MODEL REVIEW
Google Sheets Data
No Google Sheets data synced yet. Click "📊 Sync Sheets" to pull data.
Wholesale Forecast
Jake's periodic wholesale demand forecast — synced from Google Drive or uploaded manually, compared release-over-release for drops, increases, and drift.
Loading Wholesale Variance report…

Upload Wholesale Forecast Files

Upload one or more .xlsx "Event & Demand Forecast" files directly — the same parser used for the Google Drive sync runs here too, so results are identical either way. Each file is validated automatically when you click Import; nothing is written if any file fails validation.

📊
Drop .xlsx files here or click to browse (multiple allowed)
Inventory Flow
Stock, orders and coverage. Its forecast columns are Approach 1 — Seasonal Baseline, the engine running today.
SKU SALES & STOCK 2.0  M-2 → M+6 ATTRIBUTES RUNRATES INVENTORY OPEN ORDERS FORECAST MOS & SAFETY ACTION NOTES
Style Description 2 Months Back Previous Month Current MTD Projected M+1 M+2 M+3 M+4 M+5 M+6 Run Rate /mo On Hand Net Inv MOS MOS (fc) WOS (fc) PO rec (fc) ABC Long LT Leadtime (mo) Avg Cons /mo Total Inv Committed NET Inv Open PO Next Wk Fcst Next 4wk Fcst MOS OH MOS Inv+PO Below Safety Recommended Order Comments
Loading inventory flow...
Approach 2 — AI-Tuned Growth
The existing engine (Approach 1), with one dial — how much growth it may assume — set per product by a panel of four AI agents. Tested against real history.
6 SKUs · 3 test dates · 108 months checked · 6.76M units
What the AI actually decides here: one number per product — how much growth the forecast is allowed to assume. It never writes a sales figure; the existing engine still does that. The engine’s default is to assume no growth for any product selling 18 months or more, which is safe on average but badly wrong for a product genuinely taking off. Read the caveats before quoting the headline: the AI beats a simple no-AI rule by 0.16 percentage points over 108 checked months, almost all of it from one product (60145), and repeated identical runs have returned different answers. The forward forecast below has not been checked against anything, because those months have not happened.
How accurate is it? — tested on real history
We froze the data at three past dates, forecast six months forward, and compared against what actually sold. Average error is how far off it was, as a percentage — lower is better. Runs low / high is the direction it tends to miss: a negative number means it under-predicts, which causes stockouts.
MethodAverage errorRuns low / high Months within 20%Better than basic 
Simple average of recent months 36.6% +7.0% 39% — the basic control
The engine as it runs today 32.9% -11.1% 33% +10.2% assumes no product grows
Allow every product 30% growth 32.8% -5.0% 35% +10.6% one setting for everything
A simple rule, no AI 31.4% -8.6% 33% +14.4% the bar the agents have to beat
The AI agents 31.2% -5.7% 36% +14.9% a growth setting chosen per product
Best possible, with hindsight 30.2% -5.5% — +17.7% picking the right dial after the fact — not achievable
Which products did the AI actually help?
Almost all of the gain is 60145, where the AI correctly spotted real growth the engine refuses to assume. Elsewhere it is close to neutral. That argues for running it only on products that look like they are growing, rather than on everything. Growth allowed is the dial it chose at each of the three test dates — 1.0 means “assume no growth”.
SKUProductError — simple ruleError — AI agents AI runs low / highGrowth allowed
(Dec 24 / Jun 25 / Dec 25)
60145Zigzag Headbands 2pc 43.3% 38.5% -32.7% 1.5 / 1.3 / 1.8
7490Stainless Steel Gua Sha 31.6% 32.9% -11.8% 1.3 / 1.2 / 1.4
5540Dermaplaners 12pc Terracotta 29.3% 30.7% +1.8% 1.1 / 1.0 / 1.0
6622Med Hair Elastics 12pc 43.6% 44.2% -7.2% 1.4 / 1.2 / 1.3
6745Rice Water Shampoo Bar 17.7% 18.2% +6.1% 1.0 / 1.0 / 1.0
7568Satin Heatless Curling Set 22.1% 22.1% +6.1% 1.0 / 1.0 / 1.0
What we expect to sell — next six months (Sep 2026 – Feb 2027)
Units per month, built from sales history up to Aug 2026 (the last complete month). With AI uses the growth setting the agents chose; Engine today is what the system produces without them. Committed wholesale orders are added on top and shown separately. September is still in progress, so its figure is a whole-month estimate against a part-month actual.
The AI raises the six-month total to 3,087,380 units, 132,249 more than the engine’s 2,955,131 (+4.5%). It changed only three of six products — 60145 and 6622 to 1.2×, 7490 to 1.1× — and left the rest alone, which is the same pattern as the history test: step in where growth looks real, stay out of the way otherwise. Nothing here has been checked against reality, because these months have not happened. Only the history test above has been measured. It still changes no number anywhere else on this page.
SKU SEP 26 OCT 26 NOV 26 DEC 26 JAN 27 FEB 27 6-MONTH TOTAL
60145
Zigzag Headbands 2pc
growth allowed 1.2×
With AI 113,771 157,774 96,907 144,071 150,697 101,844 765,064
Engine today 109,259 149,232 90,279 132,195 136,389 90,695 708,049
of which wholesale       30 2,088 406 2,524
Real multi-year ramp (trailing year 3.18x prior) but deseasonalized demand has been flat at ~108k/month since March, so we override the 1.0 mature cap only modestly — the record August is a seasonal peak, not a new level.
7490
Stainless Steel Gua Sha
growth allowed 1.1×
With AI 47,384 46,775 62,922 62,370 44,499 65,338 329,288
Engine today 45,931 44,982 60,031 59,033 41,786 60,868 312,631
Real ramp, but it has stopped compounding and is already inside the 45,510 base — allow only 1.1x so we don't multiply a plateau through Nov/Dec peak indices.
6622
Med Hair Elastics 12pc
growth allowed 1.2×
With AI 81,969 169,583 259,219 158,900 98,507 83,387 851,565
Engine today 77,903 158,742 250,274 144,290 88,206 73,573 792,988
of which wholesale     144,600   1,000 1,000 146,600
Real ramp confirmed (1.65x last-12 vs prior-12, every 2026 month above 2025), but capped at 1.2x because the fitted base plus peak-season indices plus 146.6k committed wholesale already imply ~1.8x YoY for Sep-Feb, and the growth was measured in low-index months that feed an unstable seasonal profile.
5540
Dermaplaners 12pc Terracotta
growth allowed 1.0×
With AI 116,139 109,351 86,353 82,380 124,937 118,550 637,710
Engine today 116,139 109,351 86,353 82,380 124,937 118,550 637,710
of which wholesale     33,600       33,600
6745
Rice Water Shampoo Bar
growth allowed 1.0×
With AI 31,790 32,207 37,413 36,482 30,027 22,963 190,882
Engine today 31,790 32,207 37,413 36,482 30,027 22,963 190,882
of which wholesale       3,738     3,738
7568
Satin Heatless Curling Set
growth allowed 1.0×
With AI 36,636 50,858 68,920 85,401 40,072 30,984 312,871
Engine today 36,636 50,858 68,920 85,401 40,072 30,984 312,871
ALL 6 — with AI 427,689 566,548 611,734 569,604 488,739 423,066 3,087,380
ALL 6 — engine today 417,658 545,372 593,270 539,781 461,417 397,633 2,955,131
Full month-by-month detail is exported to docs/demand-forecast-approach1-forward.csv.
The history test, month by month (data to Dec 2025, forecasting Jan–Jun 2026)
This is the same six-month exercise, but run on months we already know the answer to. With AI and Engine today are the two forecasts; Actual is what really sold. The small figure is how far the AI forecast was off — within 20%, 20–40%, over 40%. The other two test dates behave the same way and are in the CSV.
SKU JAN 26 FEB 26 MAR 26 APR 26 MAY 26 JUN 26 6-MONTH TOTAL
60145
Zigzag Headbands 2pc
growth allowed 1.8×
With AI 80,954 52,981 76,201 54,432 67,237 63,560 395,365
Engine today 68,445 42,654 58,415 39,733 46,734 42,066 298,047
Actual · off by 113,557
-29%
86,952
-39%
112,268
-32%
66,201
-18%
84,435
-20%
82,514
-23%
545,927
-27.6%
7490
Stainless Steel Gua Sha
growth allowed 1.4×
With AI 36,834 59,753 33,639 37,859 43,143 26,643 237,871
Engine today 33,704 53,163 29,101 31,847 35,289 21,190 204,294
Actual · off by 25,147
+46%
33,982
+76%
49,004
-31%
43,019
-12%
40,406
+7%
33,748
-21%
225,306
+5.6%
6622
Med Hair Elastics 12pc
growth allowed 1.3×
With AI 55,767 36,553 45,887 46,940 106,102 78,316 369,565
Engine today 54,171 34,740 42,667 42,702 94,435 68,198 336,913
Actual · off by 91,204
-39%
78,001
-53%
61,456
-25%
95,798
-51%
97,538
+9%
85,266
-8%
509,263
-27.4%
5540
Dermaplaners 12pc Terracotta
growth allowed 1.0×
With AI 111,761 103,834 102,412 71,773 154,554 133,151 677,485
Engine today 111,761 103,834 102,412 71,773 154,554 133,151 677,485
Actual · off by 125,836
-11%
106,503
-3%
107,262
-5%
104,494
-31%
73,733
+110%
105,344
+26%
623,172
+8.7%
6745
Rice Water Shampoo Bar
growth allowed 1.0×
With AI 78,321 59,418 65,086 57,284 59,568 49,964 369,641
Engine today 78,321 59,418 65,086 57,284 59,568 49,964 369,641
Actual · off by 60,823
+29%
62,760
-5%
54,105
+20%
36,690
+56%
34,121
+75%
34,873
+43%
283,372
+30.4%
7568
Satin Heatless Curling Set
growth allowed 1.0×
With AI 52,016 35,256 33,590 27,610 27,080 21,870 197,422
Engine today 52,016 35,256 33,590 27,610 27,080 21,870 197,422
Actual · off by 43,016
+21%
38,516
-8%
39,129
-14%
26,675
+4%
33,449
-19%
33,308
-34%
214,093
-7.8%
ALL 6 415,653
-10%
347,795
-14%
356,815
-16%
295,898
-21%
457,684
+26%
373,504
-0%
2,247,349
-6.4%
Over these six months the AI called 2,247,349 units against 2,401,133 actual — -6.4%. The engine alone called 2,083,802 — -13.2%. But look at the individual months. A six-month total this close hides monthly misses from −53% to +110%. The worst is 5540 in May 2026 — 154,554 forecast against 73,733 actual — and that is a seasonal error, not a growth error, so the dial the AI turns could not have fixed it. You buy stock monthly, not in six-month blocks, so the monthly swings are what matter.
The four agents, per product
Lifecycle analyst — is the growth real and continuing, or has it levelled off?
Seasonality analyst — is this “surge” just the busy season?
Inventory risk analyst — is over-ordering or running out the bigger danger here?
Adjudicator — reconciles the three, sets the dial, and must record the best argument against its own answer.
On 60145 the seasonality analyst settled it: November 2025 was the highest month on record (121,723 units) in a month that is normally quiet, and April–May sold 3–7× the year before in the off-season. That is real growth, not seasonality — a distinction a blanket rule cannot make.
What the agents cannot see
No promotion or discount history — dp_promotions holds 0 rows, and the promotion multiplier is 1.0 on 100% of live forecast rows.
No price-change history, no advertising spend, no record of when products were out of stock.
No channel split before 2026-07, so every test date here is whole-SKU only.
The agents are forbidden from explaining demand by marketing, pricing, competitors or stock levels, because none of that data exists here — an explanation asserting it would be invention shaped like insight. The only cause they may name is a committed wholesale order, which is real data. That held across every call.
Approach 3 — Agent-Built Forecast
Six-month forecast on 5 pilot SKUs, built channel by channel — Amazon, DTC, Ulta, TJX and other wholesale forecast separately, then added up. Nothing here feeds the grid above.
Run 2026-09-29 · horizon Oct 26–Mar 27 · invoiced units
What changed (v2, after the 2026-09-24 review). Each channel now has its own forecast. TJX counts only confirmed orders, so its past buys no longer inflate the run-rate. Ulta starts from the wholesale team's plan, with ±10% for months 1–3 and ±40% for months 4–6. Amazon and DTC are corrected for this year's trend, not copied from last year. A crew of AI agents (data auditor, channel-mix analyst, Amazon, DTC and wholesale analysts, synthesizer, critic) adjusts each channel's statistical starting point. Explanations are written only when you click “Explain” or a month.
Channel history before July 2026 is estimated from NetSuite revenue by channel, because unit history by channel doesn't exist before then. Planner inputs (channel discontinuations, rules) live in demand-forecast-pilot/inputs/planner-inputs.json.
SKUDescriptionOct 26Nov 26Dec 26Jan 27Feb 27Mar 27Oct–Marvs last yearv1 (Sep 19)
5540Recycled Plastic Dermaplaners 12pc Set - Terracotta106,352146,20287,08696,06888,37891,466615,552−4%663,170
6622Recycled Nylon Medium Hair Elastics 12pc Set - Black80,502174,106165,00786,00480,50372,003658,125+40%728,420
7490Stainless Steel Gua Sha29,93236,59558,22121,89028,74528,272203,655−20%258,500
6745Rice Water Protein Shampoo Bar - Strengthening29,11729,03726,89023,72723,17024,819156,760−62%163,500
7568Satin Heatless Curling Set - Sunset Tie Dye47,01072,69490,68236,98432,57935,717315,666−15%308,493
5540 — Recycled Plastic Dermaplaners 12pc Set - Terracotta Oct–Mar 615,552 units, −4% vs last year
Channel share of the last 12 months shown next to each channel. Dominant channel: Amazon 56%. Hover a number for its baseline, adjustments and range.
ChannelOct–Mar
Amazon 56% · steady75,600
base 82,655
88,200
base 114,182
63,000
base 81,347
69,300
base 102,954
61,110
base 79,370
64,260
base 83,067
421,470
DTC 1% · steady2,150
base 600
2,460
base 1,585
1,886
base 1,129
1,435
base 776
1,538
base 868
1,845
base 1,670
11,314
Ulta 9% · planned account15,744
base 19,680
6,264
base 6,960
7,128
base 7,920
8,748
base 9,720
7,560
base 8,400
7,668
base 8,520
53,112
TJX 4% · po driven033,600000033,600
Other wholesale 30% · lumpy wholesale12,858
base 37,774
15,678
base 37,774
15,072
base 37,774
16,585
base 37,774
18,170
base 37,774
17,693
base 37,774
96,056
↳ Nordstrom Rack (wholesale team plan)2,9645,7845,1782,9604,5454,06825,499
↳ Accounts with no plan on file (catalog lists: CVS, Kohl's, JCPenney, Harmon, Altar'd State, Lotus Salon)9,8949,8949,89413,62513,62513,62570,557
All wholesale Ulta + TJX + other28,60255,54222,20025,33325,73025,361182,768
Total106,352
92,407–125,821
146,202
129,883–165,157
87,086
76,914–100,636
96,068
80,785–121,749
88,378
73,069–111,009
91,466
76,100–115,004
615,552
Same month last year100,232100,505102,160125,836106,503107,262642,498
Other wholesale breakdown: accounts with a wholesale-team plan, confirmed orders on file, and the rest (no plan on file; hover for the analyst's reasoning). Sales history has no customer split before July 2026, so the rest cannot yet be named account by account.
Written by AI when you click (takes 1–3 minutes). Click a month above to explain just that month.
6622 — Recycled Nylon Medium Hair Elastics 12pc Set - Black Oct–Mar 658,125 units, +40% vs last year
Channel share of the last 12 months shown next to each channel. Dominant channel: Other wholesale 72%. Hover a number for its baseline, adjustments and range.
ChannelOct–Mar
Amazon 24% · steady20,500
base 19,443
30,500
base 35,540
44,000
base 53,148
20,000
base 20,837
19,500
base 20,477
21,000
base 26,706
155,500
DTC 0% · steady2
base 95
6
base 324
7
base 386
4
base 200
3
base 157
3
base 159
25
Ulta 0% · planned account0000000
TJX 4% · po driven094,600
base 144,600
50,000
base 0
1,0000
base 1,000
1,000
base 0
146,600
Other wholesale 72% · lumpy wholesale60,000
base 64,578
49,000
base 64,578
71,000
base 64,578
65,000
base 64,578
61,000
base 64,578
50,000
base 64,578
356,000
↳ Accounts with no plan on file (catalog customer: "Amazon Only, TJX Only")60,00049,00071,00065,00061,00050,000356,000
All wholesale Ulta + TJX + other60,000143,600121,00066,00061,00051,000502,600
Total80,502
62,165–98,941
174,106
158,033–226,759
165,007
109,557–189,455
86,004
59,617–112,480
80,503
55,596–105,535
72,003
51,236–92,884
658,125
Same month last year67,26656,257116,42991,20478,00161,456470,613
Other wholesale breakdown: accounts with a wholesale-team plan, confirmed orders on file, and the rest (no plan on file; hover for the analyst's reasoning). Sales history has no customer split before July 2026, so the rest cannot yet be named account by account.
Written by AI when you click (takes 1–3 minutes). Click a month above to explain just that month.
7490 — Stainless Steel Gua Sha Oct–Mar 203,655 units, −20% vs last year
Channel share of the last 12 months shown next to each channel. Dominant channel: Amazon 85%. Hover a number for its baseline, adjustments and range.
ChannelOct–Mar
Amazon 85% · steady26,500
base 38,854
32,500
base 50,812
54,000
base 95,503
18,500
base 30,018
25,500
base 43,226
25,000
base 59,459
182,000
DTC 1% · steady650
base 294
7839366635835204,135
Ulta 0% · planned account0000000
TJX 0% · po driven0000000
Other wholesale 13% · lumpy wholesale2,782
base 3,146
3,312
base 3,146
3,285
base 3,146
2,727
base 3,146
2,662
base 3,146
2,752
base 3,146
17,520
↳ Nordstrom Rack (wholesale team plan)1,1821,9021,8721,1271,0621,1528,297
↳ Accounts with no plan on file (catalog lists: Harmon, Whole Foods, Paper Source)1,6001,4101,4131,6001,6001,6009,223
All wholesale Ulta + TJX + other2,7823,3123,2852,7272,6622,75217,520
Total29,932
25,354–35,482
36,595
30,054–44,162
58,221
37,208–74,253
21,890
17,242–27,557
28,745
21,159–37,350
28,272
19,196–39,358
203,655
Same month last year31,81241,82473,61725,14733,98249,004255,386
Other wholesale breakdown: accounts with a wholesale-team plan, confirmed orders on file, and the rest (no plan on file; hover for the analyst's reasoning). Sales history has no customer split before July 2026, so the rest cannot yet be named account by account.
Written by AI when you click (takes 1–3 minutes). Click a month above to explain just that month.
6745 — Rice Water Protein Shampoo Bar - Strengthening Oct–Mar 156,760 units, −62% vs last year
Channel share of the last 12 months shown next to each channel. Dominant channel: DTC 40%. Hover a number for its baseline, adjustments and range.
ChannelOct–Mar
Amazon 26% · steady2,780
base 8,878
3,010
base 11,345
2,550
base 9,271
2,160
base 7,914
2,330
base 10,320
2,350
base 2,522
15,180
DTC 40% · steady12,520
base 16,143
12,620
base 14,824
10,220
base 11,537
10,220
base 14,920
9,860
base 13,687
11,210
base 17,639
66,650
Ulta 10% · planned account3,160
base 8,316
2,066
base 5,436
1,190
base 3,132
2,038
base 5,364
1,847
base 4,860
1,915
base 5,040
12,216
TJX 0% · po driven0000000
Other wholesale 24% · lumpy wholesale10,657
base 10,580
11,341
base 10,580
12,930
base 10,580
9,309
base 10,580
9,133
base 10,580
9,344
base 10,580
62,714
↳ Walgreens (wholesale team plan)1,2962,5567201,3321,3322,5569,792
↳ Nordstrom Rack (wholesale team plan)6671,1741,2907347837805,428
↳ Meijer (orders on file: Committed, Pitched)003,7380003,738
↳ Accounts with no plan on file (catalog lists: CVS, Walgreens, JCPenney, Lotus Salon)8,6947,6117,1827,2437,0186,00843,756
All wholesale Ulta + TJX + other13,81713,40714,12011,34710,98011,25974,930
Total29,117
26,206–33,156
29,037
26,070–32,638
26,890
24,425–30,689
23,727
19,895–28,755
23,170
19,366–28,024
24,819
20,664–30,012
156,760
Same month last year88,43881,27266,96860,82362,76054,105414,366
Other wholesale breakdown: accounts with a wholesale-team plan, confirmed orders on file, and the rest (no plan on file; hover for the analyst's reasoning). Sales history has no customer split before July 2026, so the rest cannot yet be named account by account.
Written by AI when you click (takes 1–3 minutes). Click a month above to explain just that month.
7568 — Satin Heatless Curling Set - Sunset Tie Dye Oct–Mar 315,666 units, −15% vs last year
Channel share of the last 12 months shown next to each channel. Dominant channel: Amazon 69%. Hover a number for its baseline, adjustments and range.
ChannelOct–Mar
Amazon 69% · steady33,000
base 34,886
56,000
base 59,803
75,000
base 81,324
26,000
base 28,658
21,500
base 24,007
24,000
base 27,148
235,500
DTC 7% · steady2,092
base 2,369
6,800
base 7,719
6,900
base 7,826
2,200
base 2,457
1,950
base 2,181
2,700
base 3,083
22,642
Ulta 9% · planned account5,800
base 9,520
3,300
base 3,696
2,500
base 2,800
2,700
base 3,024
3,000
base 3,360
2,900
base 3,248
20,200
TJX 0% · po driven0000000
Other wholesale 15% · lumpy wholesale6,118
base 5,140
6,594
base 5,140
6,282
base 5,140
6,084
base 5,140
6,129
base 5,140
6,117
base 5,140
37,324
↳ Nordstrom Rack (wholesale team plan)5681,0447325345795674,024
↳ Accounts with no plan on file (catalog lists: CVS, Kohl's, Harmon, Paper Source, Altar'd State, Lotus Salon)5,5505,5505,5505,5505,5505,55033,300
All wholesale Ulta + TJX + other11,9189,8948,7828,7849,1299,01757,524
Total47,010
40,876–54,341
72,694
62,314–82,992
90,682
76,430–104,329
36,984
31,736–42,673
32,579
27,731–37,462
35,717
30,445–41,046
315,666
Same month last year66,08780,711106,00743,01638,51639,129373,466
Other wholesale breakdown: accounts with a wholesale-team plan, confirmed orders on file, and the rest (no plan on file; hover for the analyst's reasoning). Sales history has no customer split before July 2026, so the rest cannot yet be named account by account.
Written by AI when you click (takes 1–3 minutes). Click a month above to explain just that month.
Amazon Forecast
Amazon's own forecast, exactly as Amazon publishes it — Subscribe & Save, next 90 days.
Subscribe & Save only — this is a subset of Amazon demand, not total Amazon sales. Amazon publishes no whole-catalogue demand forecast to Seller Central (3P) accounts, so this covers subscription units only (roughly 2.6% of Amazon volume). Every figure below is Amazon's own, from its Replenishment API, over the next 90 days — nothing here is forecast by us. For a whole-channel view, use Inventory Flow above, where the numbers we generate live and are labelled as ours.
Loading Amazon forecast…

Import Data

Upload a CSV with columns: sku, channel, week_start, units_sold, revenue
Channel values: shopify, amazon, wholesale

📄
Drop CSV here or click to browse
Please wait…
This usually takes a few moments.