CloudRevenue - Teaching Dataset =============================== Synthetic cloud subscription revenue across 8 product families x 247 tenants x 36 months. Designed to support practice for the chart-selection, dashboard-design, and AI-direction chapters of The Defensible Decision. Wholly synthetic. Any resemblance to a real company's data is coincidental. Files ----- - products.csv - 8 product families - tenants.csv - 247 enterprise tenants - revenue.csv - ~21,400 rows of tenant x product x month revenue - SCHEMA.txt - full schema and known imperfections What it represents ------------------ A 3-year window (2023-06 through 2026-05) of monthly cloud subscription revenue for a fictional B2B cloud platform vendor with 8 product families spanning Data, Infrastructure, Security, Operations, and Productivity segments. The tenant base is 247 enterprises across 4 regions and 8 verticals, with realistic size-band distribution skewing toward SMB and Mid-Market. The dataset is sized to support real practice: aggregate views, drill-downs, time-series analysis, and segmentation all return non-trivial result sets. Joins across the three tables are inexpensive. What it does NOT represent -------------------------- - Customer-level contact information (none present by design) - Cost data (revenue-only) - Product feature usage (MAU only, no feature-level telemetry) - Pipeline / forecast (closed revenue only) Deliberate imperfections ------------------------ This dataset includes the kinds of imperfections real data has. Chapters 4, 5, 9, and 13 reference the cleanup work explicitly. - Region naming inconsistency - ~12% of NA tenants stored as North America instead of NA - Null MAU - ~2% of revenue rows have null MAU (telemetry outage) - In-flight billing close - last 2 months (2026-04 and 2026-05) have ~30% null revenue - Mid-window churners - 12 tenants churned between 2024-06 and 2025-08; revenue stops at churn_month The imperfections are intentional. A chapter exercise that pretends the data is perfect is teaching the wrong discipline. Quick start ----------- # Inspect the schema cat SCHEMA.txt # Sample the data head revenue.csv head tenants.csv head products.csv # Load into Power BI: # 1. Get Data -> Text/CSV -> select all three CSVs # 2. Power Query auto-detects column types # 3. Build relationships: revenue.tenant_id -> tenants.tenant_id (many-to-one) # revenue.product_id -> products.product_id (many-to-one) # 4. Mark "month" as date hierarchy Reference BRD ------------- The CloudRevenue starter BRD is the BRD for this dataset. Chapters 2 and Appendix E use it as the practice artifact for the BRD-authoring discipline. 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 this README.