# Rohan's Services Dashboard &mdash; Schema

Flat aggregate-only teaching dataset in `rohan-services-dashboard.csv`.

## Columns

| Column | Type | Present when | Description |
| --- | --- | --- | --- |
| `dimension` | text | always | One of `month`, `service_line`, `region`, `quarter`. Identifies which rollup the row belongs to. |
| `key` | text | always | The specific label within the dimension (e.g. `Jul 2026`, `Implementation`, `Northeast`, `Q3 2026`, `Q2 2026`). |
| `revenue_m` | number | always | Actual revenue in millions of USD. |
| `plan_or_baseline_m` | number | month and Q3 rows | Plan (for months and Q3) or Q2 baseline (for the Q2 quarter row). Empty for service-line and region rows. |

## Row inventory

- 3 `month` rows (Jul, Aug, Sep 2026), each with actual and plan.
- 4 `service_line` rows (Implementation, Managed Services, Advisory, Training).
- 4 `region` rows (Northeast, Southeast, Central, West).
- 1 `quarter` row for Q3 2026 with actual + plan.
- 1 `quarter` row for Q2 2026 (baseline only, no plan needed).

Total: 13 aggregate rows.

## Deliberate design choices

Unlike the four cross-chapter teaching datasets, this dataset has no injected null-value or naming-inconsistency imperfections. Its purpose is to reproduce Chapter 12&rsquo;s Rohan dashboard exactly, and the defects live in the *composition and hierarchy choices*, not in the data.

The one designed-in tension is the trajectory: Jul and Aug landed below plan (creating the miss the executive needs to see) while Sep recovered to pace (letting the corrected dashboard tell a defensible story about the trajectory). A flat month-over-month miss or a flat month-over-month beat would both be less pedagogically useful.

## License

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