# Compare trial cohorts at the same age

Version 1.0.0, October 22, 2026. Created with AI assistance. Every row is invented for this calculation; these are not Strataigize results, customer records, vendor data, research findings or a forecast.

This example makes one measurement choice visible: a recent trial cohort has had less time to convert. A trial-to-paid ratio needs both a start cohort and an observation window.

The accompanying CSV contains 200 synthetic trial starts. Cohort A starts October 1 and cohort B starts October 20. The reporting cutoff is October 22 at 00:00 UTC, with a 14-day conversion window. There is no advertising attribution window or campaign spend in this dataset.

| At the October 22 cutoff | Cohort A | Cohort B |
|---|---:|---:|
| Trial starts | 100 | 100 |
| Age of cohort | 21 days | 2 days |
| Paid subscriptions observed | 40 | 10 |
| Conversion observed so far | 40% | 10% |
| Has every trial had 14 days? | Yes | No |

Across both cohorts, 50 of 200 trials have converted by the cutoff: 25%. That is a valid conversion-to-date figure. It cannot answer the same question as the 14-day conversion rate for a fully observed cohort. Cohort A supplies 100 eligible trials and 40 conversions within 14 days, giving 40%. The 100 immature trials stay visible separately.

The synthetic fixture includes 30 additional cohort B conversions on November 3. The October 22 calculation excludes those future events. By November 3, both cohorts have reached day 14 and each has converted 40 of 100 trials. This illustrates how unequal observation time can make identical 14-day results look different at an earlier cutoff. It does not predict the outcome of any real recent cohort.

## Reproduce it

Run `python subscription-cohort-example.py` in this folder. It writes the CSV and calculation results. The script checks unique row IDs, future-trial and future-payment exclusion, the mature denominator and empty-denominator cases. It uses only the Python standard library.

- Denominator: trial starts whose start timestamp plus 14 days is at or before the cutoff.
- Numerator: those same trials with a first paid event between start and day 14 inclusive, also at or before the cutoff.
- With no eligible trials, the mature rate is undefined, not zero.
- All event timestamps and boundary comparisons use UTC.

## Limits

This simplified example omits refunds, billing retries, variable trial lengths, resubscriptions, duplicate event delivery and store-reporting delays. A production definition must address those explicitly. A day-14 measure is not a lifetime conversion measure. The same-age comparison alone does not establish causal performance or the quality of acquisition.

This AI-assisted example accompanies Strataigize's [Subscription Measurement Atlas](https://www.strataigize.com/resources/subscription-measurement-atlas/) and [acquisition comparison tool](https://www.strataigize.com/tools/acquisition-comparison/). Use and adapt this synthetic example with attribution. No vendor commissioned or endorsed it.
