Teaching Datasets

Four cross-chapter + fourteen worked-example + two practice datasets • Updated 2026-08-12

A mocked-up CloudRevenue.csv preview showing five rows of synthetic data, with cells highlighted for null values, naming drift, and outliers — the deliberate imperfections built into every teaching dataset.
Every teaching dataset ships with the messiness real data has — so the chapter exercises teach a discipline that survives the real world.

The four teaching datasets that accompany The Defensible Decision. Each is sized to support real practice across the 14 chapters — not a toy small enough to fit on a single slide, not so large that loading it becomes a chapter exercise on its own. Each includes the kinds of imperfections real data has (null values, naming inconsistencies, occasional outliers, definitional drift) so the chapter exercises teach the discipline the book is actually about.

All four datasets are wholly synthetic. Any resemblance to a real company's data is coincidental. Each dataset's README documents what it represents, what it does not represent, and the deliberate imperfections built into it. Appendix E provides a completed exemplar and an intentionally underspecified starter for each dataset below, plus the AIRS research exemplar.

The four datasets

Chapter worked-example datasets

Compact, purpose-built datasets that back a single chapter’s worked example. Unlike the four cross-chapter teaching datasets above, these do not carry designed-in imperfections and are sized to exactly what the chapter’s figures visualise.

About the imperfections

Each dataset includes intentional data-quality issues — null values, naming inconsistencies, definitional drift, mid-window state changes. The imperfections are the point. A chapter exercise that pretends the data is perfect is teaching the wrong discipline.

Each dataset's SCHEMA.md documents every imperfection explicitly. The chapter exercises in the book reference the imperfections by name where they matter — the regional-naming reconciliation in Chapter 4, the cross-channel attribution reconciliation in Chapter 11, the self-assessment-versus-operational-signal triangulation in Chapter 13.

Reproducibility

The four cross-chapter datasets are generated by Node scripts in the companion-site repository at scripts/datasets/. Each script uses a seeded pseudo-random number generator (mulberry32 with a documented hex seed per script), so rerunning produces byte-identical output. The CSVs you download here are the same CSVs anyone else downloading at any time will receive.

Priya’s Q3 sales dataset is generated deterministically from a canonical JSON source in the book repository at applied-ai/ai-directed-viz/data/priya-q3-dashboard.json; the source SHA-256 travels with each derivative so drift between the book and this site is detectable. Aisha’s AIRS cohorts, Rohan’s services dashboard, Yuki’s session, Marcus’s compromise dashboard, Lina’s channel ROMI, and Nadia’s Q3 region datasets follow the same pattern — each has a canonical JSON source in applied-ai/ai-directed-viz/data/ and a dedicated generator script under applied-ai/ai-directed-viz/scripts/generate-*.mjs.

Each dataset page links to its local data files, data dictionary, and teaching notes so you can inspect the published practice material before adapting it for your own work.

License and reuse

Released for teaching use alongside The Defensible Decision. Use freely in classes, workshops, and your own practice. No attribution required beyond what's already in the dataset READMEs.