Open Source Stats

verified statistics · every figure sourced · comparison tables, not single numbers
Home / History / Dataset

Reconstructed history — schema and dictionary

2,508 points across 3 metrics · CC-BY-4.0

Read this before you use the data

These are reconstructed points, not measured readings. Each one comes from a dated Wayback Machine capture of a GitHub repository page. They are sparse - captures happen when someone archived the page, not on a schedule - and nothing is interpolated. If you need a value for a date with no capture, the honest answer is that this dataset does not have one.

Do not merge these into a series of measured readings without labelling them. A backfilled point and a measured point are different evidence, even when they describe the same counter.

Files

FileFormatWhat it is
reconstructed-history.csv text/csvOne row per point. Same fields as below, flat.
reconstructed-history.json application/jsonThe points plus name, license, method, limits and citation — self-describing on its own.
reconstructed-history.schema.json application/schema+jsonJSON Schema (2020-12) for the JSON export. Validate against it rather than parsing hopefully.

Points per metric

Metric codePoints
github_forks847
github_stars848
open_issues813

Field dictionary

FieldTypeUnitExampleNotes
repostring · owner/name—anomalyco/opencodeGitHub repository in owner/name form, using the CURRENT name. Renamed repositories still store points captured under their previous name; the name that was captured is visible in `source`.
metricenum · github_stars, github_forks, open_issuesmetric codegithub_starsWhich counter the value belongs to. Never mix metrics in one series: they are different units.
as_ofstring · dateUTC day2026-04-01The calendar day the capture represents. Not the reading time - the capture time is in `archived_at`.
valueintegercount96883The number GitHub printed on that page. Null is never stored as zero; an unreadable capture is omitted entirely.
confidenceenum · exact, beyond_cap—exact`exact` means the counter was read directly. `beyond_cap` is reserved for the API path that stops at 40,000 stars and does not occur in archive captures.
methodenum · wayback_repo_page, stargazers_binary_search—wayback_repo_pageHow the point was obtained. Archive captures need no token and have no cap; the API method is blocked on this account.
sourcestring · uri—https://web.archive.org/web/20260401060630/https://github.com/openai/codexThe exact archive capture the value came from. Any row can be re-checked by opening this URL - that is the point of publishing it.
archived_atstring · date-timeISO-8601 UTC2026-04-01T06:06:30+00:00When the archive made the capture. Differs from `as_of` (the day it represents) when a capture happened late at night in another zone.
reconstructedboolean—trueAlways true in this file. Present so a consumer cannot mistake a reconstructed point for a measured reading when merging with other data.
This table and the JSON Schema are generated from one field definition in the build, so they cannot disagree.

Known limits

How to cite

Open Source Stats, “Reconstructed repository history”, https://opensourcestats.com/datasets/reconstructed-history/. Reconstructed from Wayback Machine captures; CC-BY-4.0. State that the figures are reconstructed rather than measured.