SUBSCRIPTION RETENTION — DATA DICTIONARY All records are original synthetic practice data generated for Data Analyst Career. No real people or businesses are represented. You may use these files in personal learning and public portfolios with source credit to DataAnalystCareer.com. Label all results as synthetic. These simplified datasets are not real business benchmarks. Grain: one subscription, representing one customer. No restarts or plan changes. Coverage: October 2025–June 2026. Observation cutoff: June 30, 2026. subscription_id: unique, non-null identifier. start_date: first active date, YYYY-MM-DD, inclusive. cancel_date: first INACTIVE date, YYYY-MM-DD; blank means still active at cutoff. plan: Basic or Pro; fixed throughout the observed lifetime. monthly_price: fictional USD list price, not actual billed or recognized revenue. METRIC RULES Active on date d: start_date <= d AND (cancel_date is null OR cancel_date > d). Cohort: calendar month of start_date. Month-end cohort retention = cohort members active at the relevant month end / total members acquired in the cohort month. Month 0 is the acquisition month-end, so it can be below 100% when a member cancels in that same month. Monthly churn denominator: customers active on the first day of the month. Monthly churn numerator: those SAME customers whose cancel_date occurs within the month. Exclude customers who start after the first day. A cancel_date equal to the first day is already inactive under this snapshot convention and is excluded from that month's starting population. Never display cohort ages beyond the June 2026 observation cutoff as zero. They are unobserved. Do not sum monthly_price across all records as a revenue metric. Price is only an optional basis for a documented active-subscriber run-rate estimate. IMPORT CONTROL TOTALS Rows / distinct subscription_id: 300 Populated cancellation dates: 87 Active on 2026-06-01: 190 June cancellations from that June 1 active population: 12 Active on 2026-06-30: 213 CHECKS Unique subscription IDs; cancel_date > start_date when populated; all dates within coverage; no observed cancellation later than cutoff. Cohort sizes must sum to 300. Validate date-boundary behavior using a tiny hand-built example before scaling.