# SupportInsights — Teaching Dataset

> Synthetic customer support tickets at full ticket grain. 47 agents across 3 pods, 10 categories, 60 knowledge-base articles, ~25,400 tickets over 12 months.

**Wholly synthetic.** Any resemblance to a real company's data is coincidental.

## Files

- [`pods.csv`](pods.csv) — 3 time-zone-aligned support pods
- [`agents.csv`](agents.csv) — 47 agents
- [`categories.csv`](categories.csv) — 10 ticket categories with SLA targets
- [`articles.csv`](articles.csv) — 60 knowledge-base articles
- [`tickets.csv`](tickets.csv) — ~25,400 tickets at full grain
- [`SCHEMA.md`](SCHEMA.md) — full schema and known imperfections

## What it represents

A fictional B2B SaaS customer-support organization: 47 agents across Americas / EMEA / APAC pods, supporting customers through chat / email / phone / in-product channels. The dataset spans 12 months ending 2026-05-31 and is sized to support the weekly support-operations decisions the [SupportInsights starter BRD](../../appendix-e/supportinsights-starter.md) frames.

## Deliberate imperfections

This dataset is the richest of the four in terms of intentional imperfections — the support domain is where real-world data discipline is most visibly absent in working systems.

- **Category definition change** — `CAT-FEAT` was split from `CAT-PROD` on 2025-09-01. Pre-change tickets were retroactively recategorized. The schema flags both categories with a `definition_change_note`.
- **APAC pod staffing shortage** — Q2 2026 (April-May) shows ~40% higher resolution-hours for APAC tickets. This is a real-world signature: the dashboard exercise is to surface it before the Director notices it in the SLA-breach report.
- **Null CSAT** — ~6% of resolved tickets have null CSAT score (customer didn't respond).
- **No-article-found tags** — ~1.8% of tickets have the `no_article_found_tag` set. Useful for the knowledge-base-gap analysis exercise.
- **Article-quality issues** — ~5% of tickets that referenced an article had the article fail to resolve the ticket. Distinct signal from "no article found."

## Quick start

```bash
cat SCHEMA.md
head tickets.csv

# Load into Power BI:
# 1. Get Data → Text/CSV → select all five CSVs
# 2. Build relationships:
#    tickets.pod_id → pods.pod_id
#    tickets.agent_id → agents.agent_id
#    tickets.category_id → categories.category_id
#    tickets.article_referenced → articles.article_id
# 3. Mark created_date and resolved_date as date columns
```

## Reference BRD

The [SupportInsights starter BRD](../../appendix-e/supportinsights-starter.md) is the BRD for this dataset.

## License and reuse

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