Forecast Variance
Variance analysis for ecommerce teams: decompose the gap between forecast and actual into drivers, then separate what was missed from what was unknowable.
A forecast miss gets explained in a sentence, usually naming whatever is most visible or most defensible. That sentence is rarely the decomposition, and without the decomposition the same miss repeats. A month down 8% could be traffic, conversion, basket size, returns or mix, and each of those points at a different team and a different fix. Some of it was knowable in advance and some was not, which matters for whether the forecasting process needs changing. This skill decomposes the gap driver by driver and separates the miss from the noise.
What It Does
- Decomposes the gap into traffic, conversion, basket, mix and returns.
- Sizes each driver's contribution to the variance in dollars.
- Separates the part that was knowable in advance from the part that was not.
- Checks whether the same driver has missed in previous periods.
- Identifies which assumption in the forecast was wrong.
- Explains the gap driver by driver, with what to change next time.
Use Cases
- Explain a miss with a decomposition rather than a narrative.
- Find the driver that has missed three periods in a row.
- Separate a forecasting error from a business problem.
- Fix the assumption rather than adjusting the number.
Example Session
We missed the month by 8%. Where did it actually go?
Four drivers. $165,000 of the $184,000 gap was knowable when the forecast was set.
- Driver | Effect on gap | Knowable in advance | Missed before | Fix
- Returns rate, up 3pts | -$94,000 | Yes, batch issue logged | 3rd month | Feed quality data in
- Mix shift to entry SKUs | -$71,000 | Yes, promo planned | 2nd month | Model mix, not revenue
- Traffic below plan | -$38,000 | No | First | Accept as variance
- Basket, above plan | +$19,000 | No | First | Accept as variance
Nearly all of the gap was knowable. The returns increase traces to a batch issue the quality team already knew about in month one, and the mix shift was the direct arithmetic consequence of a promotion that was in the calendar when the forecast was built. Neither is a forecasting failure exactly; they are inputs the forecast has never been connected to.
Why This Beats Prompting It Yourself
A Narrative Explanation vs A Decomposition: The Hidden Risk
A generic prompt produces a plausible account of the miss, usually attributing it to the most visible factor. Plausible is not the same as measured, and the driver everyone names is frequently the smallest of the four. A narrative also cannot say whether this driver has missed twice before, which is the finding that actually changes something.
When You Still Need Knowable Separated From Unknowable
Traffic running below plan is variance and should be accepted rather than explained. A returns increase that the quality team flagged in month one is a process gap, because the information existed and never reached the forecast. Treating those two the same way produces either an over-corrected forecast or a lesson nobody learns.
Known Limitations
Decomposition assumes the drivers are separable, and interaction effects between mix and returns are allocated proportionally with that noted. Calling something knowable depends on the skill being able to see that the information existed, which needs the relevant systems connected. It explains the variance and does not rebuild your forecast.
Install It
- Download the ZIP.
It is free and there is no account to create. - Unzip it into your agent's skills folder.
Claude Code reads ~/.claude/skills/, which is hidden by default: the command in the folder block opens it. Other agents scan their own directory, so drop the same folder there instead. - Ask your agent to use it.
Restart the agent if it was already running, then it picks the skill up with no config.
skills folder
Copy
~/.claude/skills/forecast-variance/
SKILL.md
references/driver-model.md
variances/
# one file per period, with the decomposition
# macOS: create the folder and open it in Finder
mkdir -p ~/.claude/skills && open ~/.claude/skills
# Windows: paste in the Explorer address bar
%USERPROFILE%\.claude\skills\Frequently asked questions
How is this different from explaining the miss in a meeting?
A meeting produces a narrative, usually naming the most visible factor. This sizes each driver in dollars, checks whether it has missed before, and separates what was knowable from what was not, which is what tells you whether to change the forecast or the process.
Which agents does the skill run in?
Any agent that supports the open SKILL.md format: Claude Code, Cursor, Codex CLI, GitHub Copilot, Gemini CLI, Manus, Grok and others load it unmodified. The format is portable, the location is not. Each agent scans its own skills directory, so you drop the same folder into whichever one yours uses. There is no config file to edit and no API key to provision.
What does it need connected to work?
The forecast with its assumptions, actuals at enough granularity to separate drivers, returns data, and the promotional calendar. That last one is what makes mix shifts predictable rather than surprising.
What does knowable mean here?
That the information existed inside the business when the forecast was made. A batch issue the quality team had already logged, or a promotion already in the calendar, are both knowable. The distinction matters because those point at a process gap rather than a forecasting one.
Why flag a driver that has missed three times?
Because a recurring miss in the same direction is a systematic error rather than variance. Three months of underestimating returns means the returns assumption is wrong, and adjusting the total forecast without fixing that assumption produces the same miss again.
What is included with the skill?
The skill itself, the driver model reference, the variance format, and the knowable classification rules. It is free and security scanned. We re-publish the ZIP when the model changes, so download it again if your decompositions start shifting.
A variance you cannot attribute is a variance you cannot fix.
Polar reconciles 45+ sources into one definition of net revenue and margin, so the gap between plan and actual breaks down by driver rather than by dashboard.
<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How is this different from explaining the miss in a meeting?","acceptedAnswer":{"@type":"Answer","text":"A meeting produces a narrative, usually naming the most visible factor. This sizes each driver in dollars, checks whether it has missed before, and separates what was knowable from what was not, which is what tells you whether to change the forecast or the process."}},{"@type":"Question","name":"Which agents does the skill run in?","acceptedAnswer":{"@type":"Answer","text":"Any agent that supports the open SKILL.md format: Claude Code, Cursor, Codex CLI, GitHub Copilot, Gemini CLI, Manus, Grok and others load it unmodified. The format is portable, the location is not. Each agent scans its own skills directory, so you drop the same folder into whichever one yours uses. There is no config file to edit and no API key to provision."}},{"@type":"Question","name":"What does it need connected to work?","acceptedAnswer":{"@type":"Answer","text":"The forecast with its assumptions, actuals at enough granularity to separate drivers, returns data, and the promotional calendar. That last one is what makes mix shifts predictable rather than surprising."}},{"@type":"Question","name":"What does knowable mean here?","acceptedAnswer":{"@type":"Answer","text":"That the information existed inside the business when the forecast was made. A batch issue the quality team had already logged, or a promotion already in the calendar, are both knowable. The distinction matters because those point at a process gap rather than a forecasting one."}},{"@type":"Question","name":"Why flag a driver that has missed three times?","acceptedAnswer":{"@type":"Answer","text":"Because a recurring miss in the same direction is a systematic error rather than variance. Three months of underestimating returns means the returns assumption is wrong, and adjusting the total forecast without fixing that assumption produces the same miss again."}},{"@type":"Question","name":"What is included with the skill?","acceptedAnswer":{"@type":"Answer","text":"The skill itself, the driver model reference, the variance format, and the knowable classification rules. It is free and security scanned. We re-publish the ZIP when the model changes, so download it again if your decompositions start shifting."}}]}</script>
