# Data dictionary

**All records are fictional.** Keep the raw files unchanged and build your analysis separately. `rules.json` defines the population and assumptions. Blank, zero and unknown are not interchangeable.

## subscriptions.csv

One subscription at one month-end; aggregate normalized included amounts to account level before classifying retention.

| Field | Meaning |
|---|---|
| `month` | Endpoint month, YYYY-MM; only the two specified endpoints are included. |
| `account_id` | Customer identity for cohort retention, stable across subscription replacement. |
| `subscription_id` | Subscription identity; several subscriptions can belong to the same customer. |
| `recurring_amount` | Recurring price for the listed billing interval, not recognized revenue or cash receipts. |
| `billing_interval` | month or year. Annual amounts are divided by twelve for MRR. |
| `currency` | Only USD is included. EUR is excluded, not converted at a guessed rate. |
| `status` | Only active subscriptions are included by the case; trial/canceled rows do not enter MRR. |

## accounts.csv

One account history indicator.

| Field | Meaning |
|---|---|
| `account_id` | Must match the subscription account. |
| `had_positive_usd_before_january` | Literal true/false. Distinguishes closing-only reactivation from a new customer in the endpoint exercise. |
