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.
A KPI tree (driver tree) breaks an outcome metric into the inputs that produce it, so when the metric moves the team can say which input moved and who owns it. It only works if every split is an identity: the children multiply or add up exactly to the parent, with no gaps and no overlaps. Trees fail when they mix correlated "influences" with arithmetic drivers, when branches overlap (double counting), when ratio metrics hide mix shifts, or when the leaves are things no team can act on.
Build a KPI tree for "" in this business:
- Define the metric precisely: formula, unit, time grain, what counts and what does not.
- Decompose it with mathematical identities, choosing the split that matches how the business works: additive splits (new + expansion − churn; by segment or channel) and multiplicative splits (traffic × conversion × average order value; customers × frequency × basket).
- Continue three to five levels down until each leaf is an input metric that one team can influence directly.
- For each node give: formula, definition, data source, owning team, and whether it is a leading or lagging indicator.
- Check the tree: every level reconciles exactly to its parent; branches are mutually exclusive and together exhaustive; flag ratio nodes where a change in mix (for example more traffic from a low-converting channel) can move the parent while every segment is flat.
- Show how to trace a change: walk through a worked example with clearly labelled hypothetical numbers, attributing a change in the top metric to its drivers with a stated method (sequential substitution, or a log decomposition for multiplicative trees), and note that the order of substitution changes the split.
- Every edge is an identity, not a correlation. Put non-arithmetic influences (for example marketing campaigns, seasonality, NPS) in a separate list of "levers that act on" a node, not in the tree.
- Use the business's own terms and data sources when given. Where a data source is not mentioned, mark it "[source?]" instead of guessing a system.
- Label all example numbers "hypothetical". Never present them as the business's data.
- Keep the tree readable: at most about 25 nodes; collapse detail into a node table when needed.
- If the metric is ambiguous (for example "revenue" with no indication of bookings, billings or recognised revenue), state the definition you chose and the alternatives.
Metric definition
Formula, unit, grain, inclusions and exclusions.
Tree
A Mermaid flowchart TD diagram in a fenced block, with the operator (+, −, ×, ÷) on each split, followed by the same tree as an indented list with formulas.
Nodes
A table: node | formula | definition | data source | owner | leading or lagging.
Tracing a change
The hypothetical worked example with its arithmetic.
Data gaps
Nodes you cannot measure yet, and what to instrument.
2 required values still a placeholder; the assistant will ask for them.
details
- kind
- Prompt: a task you run by name to get one finished thing back
- domain
- Data analysis
- category
- Reporting
- level
- Intermediate
- made for
- Data analyst, Product manager, Founder / business owner, Business analyst
- risk
- read-only
- version
- v1.0.0 · experimental
- reviewed
- 2026-10-02
- works in
- Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai
use in
npx @hermes-hq/hodios install build-kpi-tree --target claude-codenpx skills add hermes-hq/hodios-dist --skill build-kpi-tree -a claude-codeclaude plugin marketplace add hermes-hq/hodios-distclaude plugin install hodios-data-analysis@hodiosThe plugin brings every entry in this domain at once.
pairs well with
All of ReportingAnalyse A/B test results
Analyses A/B test results with a sample-ratio-mismatch check, effect sizes, confidence intervals and guardrail metrics, ending in a ship, iterate or stop call. Use when an experiment ends.
analyze-ab-test-resultsRun a what-if analysis
Builds a scenario and sensitivity analysis for a decision (best, base and worst cases, a tornado chart and breakevens) as a spreadsheet layout with exact formulas. Use before committing to a plan.
run-what-if-analysisAnalysis project track
Takes a stakeholder request from question to analysis plan, data checks, analysis and a decision-ready report, pausing for review between steps. Use when an analyst takes on a request.
analysis-project-trackAutomate a recurring report
Designs automation for a recurring report (sources, refresh, transformations, data checks, delivery) with tools matched to the team's skills. Use when a weekly or monthly report eats hours.
automate-recurring-reportCompare performance across periods
Compares performance across periods (YoY, MoM, like-for-like), handling trading days, holidays, seasonality and mix, and builds a variance story that adds up. Use before reporting a period change.
compare-period-performanceDefine a metric
Writes a precise metric definition (formula, grain, filters, edge cases, owner, known caveats) so every team computes the number the same way. Use when a metric is disputed or about to be launched.
define-metric