Methodology
The dataset
The core corpus is 13,258 reading-list assignments: each row records that a specific book appears on a specific U.S. state, district, or national-curriculum reading list, at a specific grade level. Every assignment row carries its own provenance:
- source_url — the public document the assignment was verified against. 13,258 of 13,258 rows (100%) carry one.
- last_verified_at — the date the row was last checked against its source.
This per-row provenance is the zero-fabrication backbone: a number that cannot be traced to a source document does not enter the dataset.
The joins
Assignments are joined at build time to five reference tables (row counts are counted directly from the files):
| Table | Rows | Joined on |
|---|---|---|
| books (title, author, publication year, page count) | 1,690 | book_id |
| states | 50 | state_id |
| grade levels (K–12) | 13 | grade_id |
| districts | 20 | district_id |
| curricula (e.g. national curriculum exemplar lists) | 82 | curriculum_id |
Of the 1,690 book records, 1,664 appear in at least one assignment. Assignments attach either to a state list (47 states have at least one) or to a national curriculum list; curriculum-level rows have no state and are labeled "National (curriculum)" in exports.
How statistics are computed
- Counts (total assignments, distinct books, states covered) are full scans of the assignment table — the mode ("most-assigned book") is the true maximum of per-book assignment counts, not a sample.
- Medians (publication year, page count) are computed over the assignment↔book join, so a book assigned in ten places counts ten times — the median describes the assigned corpus as students meet it. The publication-year join has 100% coverage (n = 13,258); the page-count join has 88.4% coverage (n = 11,719). Coverage and n are always stated next to the number.
- Unknowns are omitted, never guessed. Books with no recorded page count simply drop out of the page-count median; they are never imputed. A statistic whose field coverage is too sparse to be representative is not published at all.
Refresh cadence
The dataset is refreshed annually, plus whenever a new snapshot of the underlying corpus lands. The current snapshot is dated 2026-07-21, printed on every data-bearing page along with the build's "Last verified" date. Because every figure recomputes at build time, a new snapshot updates every number on the site in one deploy — no hand-edited statistics anywhere.
Where the narrative lives
Book Statistics is the reference layer: lookup tables, definitions, per-year numbers. The narrative studies built on the same dataset — Reading Statistics 2026, The Most-Assigned Books of 2026, and How Old Are Assigned Books? — are published on readinglist.school. The two sites share the source data, never the text.
Questions about the methodology? Contact us — corrections are welcome and acted on.