# Ch 5 Practice &mdash; Q3 Revenue vs Plan

> The four-region revenue dataset behind Chapter 5's *Practice with us* problem in *The Defensible Decision*. One quarter that reads as fine, one region that missed by 15%, and a chart with every default decoration switched on so you cannot see the second thing for the first.

**Wholly synthetic.** Any resemblance to a specific company's quarterly revenue is coincidental. The numbers are constructed so the aggregate looks unremarkable while one region misses badly, which is the condition the exercise depends on.

## Files

- [`practice-ch5-revenue-plan.csv`](practice-ch5-revenue-plan.csv) &mdash; flat rows: four regions, revenue and plan with variances
- [`practice-ch5-revenue-plan.json`](practice-ch5-revenue-plan.json) &mdash; canonical scenario contract, including both chart states
- [`SCHEMA.md`](SCHEMA.md) &mdash; column definitions, headline numbers, design rationale

## What it represents

A Q3 revenue-by-region snapshot of the kind Copilot will generate a bar chart from without being asked twice. Four regions, actual against plan.

The quarter came in at `$31.7M` against a `$32.2M` plan, a miss of under 2%. At the aggregate that is noise. Underneath it, EMEA finished at **85% of plan**, `$1.2M` short, while Americas, APAC and LATAM all beat theirs.

Chapter 5 shows the chart as generated, carrying every default decoration: a descriptive title, both axis labels, gridlines every `$2M`, a data-value label on all four bars, a legend keyed to four brand colours that duplicates the x-axis categories, a chart border, and a light-gray background fill. Nothing in it is *wrong*. It is simply carrying so much that the one fact worth acting on does not surface.

## The exercise

Inventory every element on the chart into one of three buckets:

- **Encodes** &mdash; carries data. Remove it and information is lost.
- **Helps read** &mdash; carries no data but makes the encoding legible.
- **Neither** &mdash; carries no data and does not help. This is what the removal pass takes.

Then rebuild. The JSON records what the rebuild should look like under `chart_states.decluttered`: sorted by plan variance so EMEA leads, a plan reference tick per region, one accent colour on the EMEA bar, and a title that states the finding instead of naming the axes.

## Invariants (locked)

These are pinned by `practice-ch5-revenue-plan-contract.test.mjs` in the book repository, so any chart built from this data reproduces the print figure exactly:

- Regional revenue sums to the quarter total; regional plan sums to the quarter plan
- EMEA sits at exactly `0.85` of plan, short by `$1.2M`
- EMEA is the worst performer against plan
- Every other region beats plan
- Quarter variance stays under 2% &mdash; if this ever fails, the exercise no longer teaches what it claims to

## Scope

A practice-scope dataset, not one of the fourteen character datasets. No anchor character owns it; it belongs to the chapter's practice tier. Values are in `$M` at the same scale as [`nadia-q3-region`](../nadia-q3-region/), the other revenue-by-region dataset, so the two figures stay comparable across chapters.

## License

Released for teaching use alongside *The Defensible Decision*. Use freely.
