Data & BI

Verified against ChatGPT · 2026-08-08

Turn a revenue variance into a driver-by-driver breakdown instead of one vague explanation

Takes a period-over-period revenue number and your raw line items and produces a ranked breakdown of what actually moved — price, volume, mix, or new/lost accounts — so you're not stuck writing "revenue was up due to strong performance."

ChatGPT (GPT-5.1)5 fillable variables

The prompt

Ready to copy — highlighted parts are example details you can swap.

You are a senior data analyst decomposing a revenue change into its actual drivers, not writing a summary sentence about it.

PERIOD BEING COMPARED
Q2 2026 vs. Q1 2026, North America segment only

REVENUE MOVEMENT
Revenue rose from $4.1M to $4.6M, a $500K increase

RAW LINE ITEMS AVAILABLE
Order-level export with unit price, quantity, product SKU, and customer ID per transaction for both quarters

KNOWN ONE-OFF EVENTS
A single $180K enterprise deal closed in the last week of Q2 that won't recur quarterly

AUDIENCE FOR THE ANALYSIS
The VP of Finance, ahead of a board deck

DECOMPOSITION RULES
Split the total revenue movement into the standard components that actually explain it: price change, volume/unit change, mix shift (which products or segments grew as a share of the total), and customer-count effects (new accounts, expansions, churned/downgraded accounts) — and be explicit when the data given can't distinguish between two of these, rather than picking one arbitrarily and presenting it as certain. Rank the drivers by dollar contribution, largest first, and show what percentage of the total movement each one explains — if the components don't sum cleanly to 100% of the movement, say so and name the residual rather than silently forcing the numbers to reconcile. Treat any known one-off event as a separate line, not folded into "volume" or "mix," so the underlying run-rate trend isn't distorted by something that won't repeat next period. If the raw data given is insufficient to separate price from volume or to isolate a specific segment, state plainly what additional field or cut would be needed rather than guessing at a split you can't actually support.

WHAT NOT TO DO
Do not produce a narrative paragraph before the breakdown exists — the ranked driver table comes first, prose commentary comes after. Do not describe a driver as "strong performance" or "market conditions" without a number attached; every driver line must carry a dollar or percentage figure or be flagged as unquantifiable with the current data.

OUTPUT FORMAT
1. One-line headline: total movement and direction.
2. Ranked table: driver | dollar contribution | % of total movement | confidence (data-supported vs. estimated).
3. Any residual/unreconciled amount, named explicitly.
4. Two to three sentences of plain-language interpretation for The VP of Finance, ahead of a board deck.
5. What additional data, if any, would sharpen the split.

Customize

Optional — swap in your own details for the highlighted parts above.

Why this works

GPT-5.1's default behavior on a vague ask like "explain this revenue change" is to produce a fluent narrative first, because narrative is the path of least resistance for a language model and there's no structural gate forcing it to quantify before it writes prose — this prompt closes that gap by mandating the ranked driver table as output step one and prose only as step four, so the model has to do the decomposition arithmetic before it's allowed to write the sentence that sounds convincing. The instruction to name a residual rather than force a reconciliation matters because language models have a strong tendency toward false precision: asked to make components sum to a total, the default move is to quietly adjust one number until it fits, which manufactures a number that wasn't actually in the data. Requiring an explicit confidence tag per driver (data-supported vs. estimated) directly targets the most common failure mode in AI-generated revenue analysis — presenting an inferred split (e.g., assuming price vs. volume based on typical patterns) with the same confident tone as a split that's actually derivable from the line items provided, which misleads a reader who can't tell the difference from the prose alone. Separating one-off events into their own line rather than absorbing them into "volume" prevents the classic mistake of a single large deal inflating an apparent trend, which matters specifically because the next reader of this analysis (finance leadership, per the audience field) will extrapolate whatever trend they're shown into a forecast.

What you get back

Headline: Revenue up $500K (+12.2%) QoQ. Driver | $ | % of movement | Confidence One-off enterprise deal | $180K | 36% | Data-supported (isolated in export) Unit volume growth (recurring SKUs) | $210K | 42% | Data-supported Price increase (mid-tier plan) | $75K | 15% | Data-supported Mix shift toward premium SKU | $35K | 7% | Estimated — needs SKU-level margin data to confirm Residual: none, components reconcile to reported total.

Verified against

ChatGPT GPT-5.1 · 2026-08-08

Changelog

  • 2026-08-08 Initial publish, verified against ChatGPT GPT-5.1.

Need this built into your business?

If a prompt isn't enough — what Scult builds, built and maintained for you — that's Scult's day job.

EXPLORE WHAT SCULT BUILDS
All Data & BI prompts

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY