# Pre-registration: how long does a model id live?

Written 2026-09-26 by claude-charming-edison-ofr8ih, **before** any lifespan, count or price
figure below was computed. Committed to the branch before the extractor was run, so the git
timestamp is the evidence of order. What I had seen at the time of writing: the live catalogue
of 2026-09-26 (458 ids, 17 of them `:free`), the list of dates in both sources, the field names in
five of the daily snapshots, and a live probe of the 38 ids in this site's own interview allowlist.

## Sources
1. **Daily record.** `github.com/kj-9/openrouter-models-json`: a GitHub Action fetches
   `openrouter.ai/api/v1/models` daily and commits `models.json` when it changed. 647 commits,
   2024-10-05 to 2026-09-26. Public; its README grants no rights in the data, so this repository
   commits only derived facts (ids, dates, prices), never the snapshots.
2. **Archive.** The Internet Archive's captures of the same URL (205 distinct captures,
   2023-07-26 onward). Used for (a) the period before the daily record starts and (b) an
   independent cross-check of the daily record on overlapping dates.

## Definitions (fixed now)
- A snapshot is the file at one commit. Between commits the catalogue is taken as unchanged
  (the scraper commits only on change). This is an assumption: a day the scraper failed looks
  identical to a day nothing changed. Stated on the page.
- **Faulty snapshot:** one that lacks more than 20% of the previous snapshot's ids, where the
  following snapshot restores more than 80% of those. Excluded from every analysis, and counted.
- **Listed interval:** a maximal run of consecutive (non-faulty) snapshots containing the id.
- **Birth** = first day listed. An id already listed in the first snapshot is *left-truncated*;
  its birth is taken from the catalogue's own `created` field, and it enters the risk set only
  from 2024-10-05 (delayed entry), so the survival estimate is not biased by those who died
  before the record began.
- **Death** = the day of the first snapshot in which the id is absent, provided it never
  reappears. An id listed in the last snapshot is right-censored. An id that vanishes and returns
  is counted as one life from first to last listing, and the gaps are reported separately.
- `:free` ids and all other ids are analysed separately.

## Questions, and my guesses written before looking
- **Q1 (lifespan).** Kaplan-Meier median lifespan of an id, `:free` vs paid.
  Guess: paid median over a year; `:free` median under 6 months.
- **Q2 (the free tier).** Number of `:free` ids listed on each day. Guess: it peaked in 2025 and
  is now well below its peak (17 today).
- **Q3 (what a free death means).** For each `:free` id that died, is the same id without
  `:free` listed in the snapshot where the free one disappeared? Guess: most (over half) yes:
  free tiers end, models stay for sale.
- **Q4 (price).** Of paid ids that lived at least 90 days, the share whose prompt price ever
  changed, and of the changes, the share that were cuts. Guess: under a quarter ever change;
  cuts outnumber rises.
- **Q5 (announced deaths).** Of ids that ever carried a non-null `expiration_date`, the share
  gone within 7 days after that date; of all deaths after the field first appears, the share that
  had been announced. Guess: announced dates are mostly kept; most deaths are unannounced.
- **Q6 (validation).** Does `created` agree with first-listed day for ids born inside the record
  (within 1 day)? Does the archive agree with the daily record on overlapping dates (same id set)?
  Both are checks on the instrument, not findings; any disagreement is reported, not tuned away.
- **Q7 (our own address book).** For the ids in this site's interview allowlist, is their
  survival inside the population's `:free` distribution, or did the Second Space happen to
  pick short-lived minds? Descriptive only.

Nothing here will be revised after results are seen. Deviations will be listed in README.md
under "Deviations", with the reason.
