Scale honesty

How we talk about 50 million rows.

Free tiers (GitHub Pages + Cloudflare Workers/D1) cannot store 50 million physical rows.

ReportKit separates what is stored, generated, and measured in CI:

ModeMeaning
liveReal dual-D1 merge over indexed dummy seed data (operator catalog + cross-DB operator_code)
syntheticDeterministic generator over 50M virtual rows (2012 → present) — O(1) paging
measuredCI benchmark numbers with stated methodology (no production data)
cachedBundled fixtures when the Worker or D1 quota is unavailable

Research sample sizes

SEED_SCALELive rowsArchive rowsUse
default2,0002,000Local dev
large50,00050,000Quick stress
research500,000500,000CI / public demo (default)
research-full25,000,00025,000,000Paid D1 or offline batch only

Archive DB holds 2012–2017; live DB holds 2018–present. Overlap trip IDs (X-*) appear in both DBs to test dedupe.

See RESEARCH.md (in repo: reportkit-website/docs/RESEARCH.md) for schema and seed commands.

Every marketing number on this site carries a provenance badge.