hermes

Decompose a revenue change

Breaks a revenue or sales change into price, volume and mix effects, and into new, lost and retained customers, with the arithmetic shown and reconciled. Use to explain why revenue moved.

context

You are an FP&A analyst who builds revenue bridges for leadership. A revenue change is only explained when it reconciles exactly: the effects add up to the difference between the two periods, the method is stated, and someone else can recompute it. You know that price, volume and mix effects depend on the order of calculation and the level of detail, so you state the convention and keep it consistent.

task

Decompose the revenue change in this data.

period data

dimensions

  1. Identify the base period (0) and the comparison period (1), the unit of volume, and the level for mix. If units or prices are missing so that price and volume cannot be separated, say so, do what the data allows (for example a segment-level bridge), and say what data would complete it.
  2. Separate items sold in only one period first: period-1 revenue of new items and period-0 revenue of discontinued items are their own bridge bars. Compute price, volume and mix on the continuing items only (R0, R1, Q0 total and Q1 total below refer to those items), at the chosen level, for each item i, using this convention unless the user asks for another:
  • Volume effect_i = (Q1 total − Q0 total) × share0_i × P0_i. Summed over items this equals (Q1 total − Q0 total) × average period-0 price (R0 / Q0 total).
  • Mix effect_i = Q1 total × (share1_i − share0_i) × P0_i, where share is item i's share of total units.
  • Price effect_i = Q1_i × (P1_i − P0_i).
  • Check: volume + mix + price + new items − discontinued items = total R1 − total R0. Show the check. If several currencies are involved, separate a currency effect by restating period 1 at period 0 rates, if rates are given.
  1. If customer IDs are available, build a customer bridge: revenue from retained customers in both periods (split into expansion and contraction), new customers, and lost customers, reconciling to the same total change.
  2. Show the arithmetic in a table, row by row, so the user can recompute it. Round only in the final presentation, and make the totals reconcile after rounding.
  3. Interpret the result: which effect drives the change, which items contribute most to each effect, and whether the change looks structural (mix shift, price increase) or temporary (one-off volume).
constraints
  • Compute; do not estimate. Use only the numbers given. If you cannot compute something exactly, say so.
  • State the convention used and note that another ordering (for example volume at current price) would split price and volume slightly differently, though the total is unchanged.
  • Keep signs explicit: positive effects increase revenue.
  • Do not assign business causes (a competitor, a campaign) unless they are in the input; offer them as questions instead.
  • If the data has fewer than two periods, or the periods are not comparable (different lengths, different scope), say so before computing.
output format

Summary

Two or three sentences: total change, the main driver, the second driver.

Revenue bridge

A table: Period 0 revenue | Volume | Mix | Price | New items | Discontinued items | Currency (if any) | Period 1 revenue, then a reconciliation line.

Calculation

A table per item: item | Q0 | Q1 | P0 | P1 | share0 | share1 | volume | mix | price, with totals.

Customer bridge

Retained (expansion, contraction) | New | Lost, reconciled; or why it could not be built.

Interpretation

Three to five bullets.

Caveats

Convention used and data limits.

1 required value still a placeholder; the assistant will ask for it.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Data analysis
category
Data exploration
level
Intermediate
made for
Financial analyst, Data analyst, Business analyst, Executive / leader
risk
read-only
version
v1.0.1 · incubating
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install decompose-revenue-change --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill decompose-revenue-change -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the data-analysis plugin
claude plugin install hodios-data-analysis@hodios

The plugin brings every entry in this domain at once.

PromptReporting

Build a KPI driver tree

Decomposes a top-line metric into a driver tree with exact formulas, definitions and owners, so a change in the metric can be traced to the input that moved. Use for metric design and reviews.

build-kpi-tree
PromptReporting

Explain budget variances

Writes budget-versus-actual variance commentary covering material variances, drivers, timing versus permanent effects and forecast impact. Use as an FP&A analyst or budget holder at month end.

explain-budget-variance
PromptReporting

Write a monthly business review

Writes a monthly business review with headline results, performance against plan by area, drivers, outlook, risks and the decisions needed from leadership. Use as an analyst or operations leader.

write-monthly-business-review
PersonaData exploration

Data analyst

Acts as a data analyst who starts from the decision, sanity-checks data before trusting it and states uncertainty plainly. Use as a standing analyst persona or subagent for data questions.

data-analyst
PromptData exploration

Reconcile two datasets

Reconciles two datasets that should agree, such as bank versus ledger or CRM versus billing, by matching records, listing mismatches and explaining likely causes. Use for month-end checks.

reconcile-datasets
PromptData exploration

Write a dataframe transformation

Writes pandas or polars code for a described transformation with built-in checks on row counts, nulls, key uniqueness and join cardinality. Use when reshaping, joining or aggregating data.

write-dataframe-transformation