How it was built
From the English OpenList's 9,653,999card:eol_universe_rows strings to the 10,020,150card:rows_universe rows of version 1.0, in 7 steps. Each step has a committed record, and the counts are those records'.
-
The English OpenList's universe
The EOL's valid and invalid lists at revision c1139698: every string the EOL had taken in, whichever way it ruled on it.
Record:
reference/research/merge/merge.json9,653,999card:eol_universe_rows rows
-
The census
The pinned sources read again under the spelling grammar, keeping the candidates in the classes the EOL's letters-only rule could not hold: hyphens, accents, a diaeresis, apostrophes, ligatures. Merged with the EOL's universe, 1 row per string; filtering the merge by the EOL's flag gives back its pinned lists byte for byte.
Record:
reference/research/census/census.json+213,867card:census_candidates
9,867,866card:merge_rows rows
-
The audit
Every source's coverage of the merged universe, reconciled to a remainder of 0: what a source listed and the merge lacked was added. The result is the single-token pin.
Record:
reference/research/universe/universe.json+133,875card:c4_additions
10,001,741card:v1_rows rows
-
Multiword terms
WordNet's and Wiktionary's multiword entries, admitted under the grammar's space rule. The pin's single-token part reproduces the earlier pin byte for byte.
Record:
pipeline/research/universe_v2/universe_v2.json+294,865card:pin_spaced
10,296,606card:rows_pin rows
-
The layers
No row is added. Each row is measured against the 13 panel lists, given its features and its record of how it came in, and marked where the EOL's verification pipeline or a model alone decided it, or its synthetic engine made it.
Record:
pipeline/research/provenance/provenance.jsonno row added or removed
10,296,606card:rows_pin rows
-
Restricted rows
The rows that only restricted lists attest are in no version.
Record:
pipeline/research/release/release_v1.0.json−1,985card:rows_restricted
10,294,621card:rows_shippable rows
-
The public projection
The withheld lists, labels, and feature columns removed, and the rows left with no public evidence held back in the private record. What remains is version 1.0.
Record:
pipeline/research/release/release_v1.0.json−274,471card:held_back_rows
10,020,150card:rows_universe rows
The release build then asserted, on each of its 7card:files_asserted files, that none of the 1,985card:restricted_words_checked restricted rows is present, that every id is distinct, that each config is its rule's filter, and that no withheld column, label, or held-back row is present. The bars above share 1 scale, the largest change, so the changes compare with each other; every total is about 10 million.
Language models and this dataset
No language model decided any row the CEOL added: the census, the audit, and the spaced admission follow the grammar and the pinned sources, and every figure on this card is computed by committed code from committed records. The feature layer's character model (§6) is an interpolated character n-gram model, not a language model.
The EOL decided some rows of its valid list with a language model. Its
valid dictionary names the model on each of those entries: Google Gemini 3
Flash Preview, through its verification pipeline or by the model's verdict
alone. The EOL's own report says the earlier phases of its pipeline used
Gemini 2.0 Flash and Gemini 2.5 Flash. model_or_engine marks these rows
(§1, §5), so a list can keep them or leave them out.