Every country that sat the PISA reading assessment, shaded by its most recent result. Zoom into the United States for state NAEP results, and into Wisconsin for district screening results.
The map below is explored with a pointer. To reach any country, state or district by keyboard, use the search field above; every figure on the map is repeated in the detail section below it.
Every visit opens on a different pair, picked at random from places with enough results to make the comparison worth reading. Shuffle for another, or choose your own. Comparisons stay inside one assessment — countries with countries, states with states, districts with districts — because the three tests measure different children on different scales and cannot be put on one axis.
Three reading assessments, one map. Zooming in moves from the world, to the United States, to Wisconsin — each step swapping in the measure that is actually collected at that level.
The world. Each country or economy is shaded by its most recent mean PISA reading score — 2025 for all but one participant. Greener entries sit above the OECD average of 461; more coral entries sit below it. Grey areas did not take part.
The United States. Zoom in and each state shows its 2024 NAEP Grade 4 reading score and the share of its fourth-graders reading at or above Proficient.
Wisconsin. Zoom in further and each of 421 school districts shows the share of children scoring below the 25th percentile on the 2024–25 early literacy screener — the state's own early-warning measure.
Each sparkline plots one jurisdiction against its own system average over time. A shaded band marks a cycle in which the assessment itself changed. Comparisons across that band need more care than comparisons within it:
A dotted vertical line marks a gap where a jurisdiction skipped a cycle, so a long flat segment is never mistaken for a steady result.
NAEP and PISA measure different children — fourth-graders and fifteen-year-olds — on different scales. Their scores cannot be added, subtracted or equated. Where this map places a state beside a country it compares relative standing: how far each sits from the average of its own assessment, in standard deviations of that assessment’s own spread.
The figure shown is (jurisdiction score − mean of the jurisdictions shown) ÷ standard deviation of those same jurisdictions. For states that pool is the 51 U.S. jurisdictions in NAEP 2024; for countries it is the 90 entries with a PISA 2025 reading mean. Both are unweighted across jurisdictions — each state and each country counts once, regardless of how many children it enrols — so this is a descriptive position, not a student-weighted statistic.
A value of +1.0 means a jurisdiction sits one standard deviation above the average of its own displayed group. It describes position within that assessment only. It does not mean two jurisdictions with the same value are reading equally well, and no single world rank for a U.S. state can be read off these two tests.
PISA means carry sampling error; the standard error is shown beside each score, and small differences between countries are often not meaningful. Ranks carry the same caution: a place in the table can move on a difference too small to be meaningful. Several PISA entries cover part of a country rather than the whole of it — Beijing-Shanghai-Jiangsu-Zhejiang, the Kurdistan Region of Iraq, Dushanbe, and 17 of Ukraine's 27 regions — and are shaded onto the whole country only to place them geographically.
This page sets no cookies, stores nothing in the browser, and loads no analytics, trackers or third-party
scripts. It performs no fingerprinting: no local or session storage, no canvas, audio or WebGL probing, no
device enumeration. All code, data and map geometry are inline. The one external request is for the Lexend
typeface from sedso.io, which is first-party when this page is served from that domain; like any network
request it exposes ordinary connection metadata to the server, which is why the claim here is that the page
does no fingerprinting rather than that no signal can ever leave your browser. Serving it with
default-src 'self' and Referrer-Policy: no-referrer closes the remaining gap.