Statistics dataset
Files carry the figures shown on the dyscalculia statistics page: 10 prevalence entries (7 with a sample size), 4 charts, 3 tables, 77 rows in all, and 93 references. Free to reuse under CC BY 4.0. The files hold published figures only: no person's data of any kind.
On the website
| File | Contents | Address |
|---|---|---|
dyscalculia-statistics.json | All rows of the page plus license and methodology date | https://dyscalculia.io/data/dyscalculia-statistics.json |
dyscalculia-statistics.csv | One row per figure; the first three lines are # comments with title, address and license, so read it with comment="#" | https://dyscalculia.io/data/dyscalculia-statistics.csv |
dyscalculia-statistics-chart-<n>.svg | One standalone SVG per chart (4 charts) | https://dyscalculia.io/data/ |
screening-test.json | The five screening games: items, scoring rules and limits. No results, no one's answers | https://dyscalculia.io/data/screening-test.json |
changelog.json | Dated changes to the site's test and method | https://dyscalculia.io/data/changelog.json |
The files are static, served with CORS open (Access-Control-Allow-Origin: *) and cached for an hour, so a browser app can fetch them directly.
In the npm package
dyscalculia-data ships the same figures as plain files plus small helpers. Its statistics.csv has the header on the first line (no comment lines) and its JSON leaves out the site's generation timestamp; the rows are identical. It also carries references.json (93 sources by key) and screening-test.json (items and scoring only).
| File | Contents |
|---|---|
statistics.json | figures (the site's number object, unchanged), calc, prevalence, keyFigures, charts, tables, rows, license and citation |
statistics.csv | The rows, header first, UTF-8 with BOM |
references.json | 93 references by site key: citation text, doi or pmid only where the site has one, url for official statistics, and the topics that cite each |
screening-test.json | Item sets and scoring rules of the five games |
CSV columns
| Column | Meaning |
|---|---|
section | The section of the statistics page, or “At a glance” for the key figures |
type | key_figure, chart or table |
title | Title of the chart or caption of the table (empty for key figures) |
row | The row label (the study population for chart rows) |
column | The column label (for tables) or the measure (for charts) |
value | The value as shown on the page, for example 6.5% |
numeric_value | The value as a number, for chart rows |
note | A note such as the sample size and publication year |
data_year | Year of the data, for key figures |
source | The citation text of the source |
source_url | Link to the source (PubMed, DOI or the official page) |
Prevalence entries
Each entry has pct (or lo and hi for a range), n (sample size, null for reviews), year (publication year of the study), age as the site states it, ref (a key into the references) and calc: true when the site calculated the figure rather than the source reporting it.
| Id | Population | Figure | n | Year | Source key |
|---|---|---|---|---|---|
worldwide-range | School-age children, range across population studies (review) | 3–6% | – | 2000 | shalev2000 |
german-guideline | Children, adolescents and adults (German clinical guideline) | 3–7% | – | 2019 | haberstroh2019 |
israel-1996 | Israel, age 11 | 6.5% | 3,029 | 1996 | grosstsur1996 |
brazil-2016 | Brazil, grades 2–6 | 6% | 1,618 | 2016 | fortes2016 |
uk-morsanyi-2018 | UK, primary school | 5.7% | 2,421 | 2018 | morsanyi2018 |
england-devine-2018 | England, ages 8–9 and 12–13 | 5.6% | 1,757 | 2018 | devine2018 |
england-devine-2013 | England, one sample, depending on the criteria used | 1–6% | 1,004 | 2013 | devine2013 |
uk-lewis-1994 | UK, ages 9–10 | 3.6% | 1,206 | 1994 | lewis1994 |
flanders-2004 | Belgium (Flanders), depending on age | 2.3–7.7% | 3,978 | 2004 | insermDyscalc2007 |
inserm-2007 | France: international studies cited by Inserm (no French study found) | 3.6–7.7% | – | 2007 | insermDyscalc2007 |
Examples
curl -s https://dyscalculia.io/data/dyscalculia-statistics.json | jq 'keys'import pandas as pd
df = pd.read_csv("https://dyscalculia.io/data/dyscalculia-statistics.csv", comment="#")
df[df.type == "chart"][["title", "row", "value", "data_year"]]df <- read.csv("https://dyscalculia.io/data/dyscalculia-statistics.csv", comment.char = "#")
subset(df, type == "chart")import { prevalenceFor, getReference, statistics } from "dyscalculia-data";
prevalenceFor({ study: "israel-1996" }); // { pct: 6.5, n: 3029, year: 1996, ref: "grosstsur1996", ... }
prevalenceFor({ age: 11 }); // entries whose stated age range includes 11
prevalenceFor({ minPct: 6, maxPct: 7 }); // entries that overlap 6-7 percent
getReference("grosstsur1996").pmid; // from the site's reference list
statistics.charts.map((c) => c.title);License and citation
The licence covers the compilation (text, tables, charts); each figure belongs to the source cited with it. Licence: CC BY 4.0. To quote a single number, cite its study (see the references), not only this compilation.
Dyscalculia.io. (2026, October 6). Dyscalculia statistics 2026: how common is dyscalculia? https://dyscalculia.io/dyscalculia-statisticsLimits
- No worldwide pooled meta-analysis of dyscalculia prevalence was found (PubMed search, 2026-10-06), so the global row is a range across population studies, not one number.
- Studies use different criteria and ages: figures are not directly comparable and the same data can give 1% or 6% depending on the cut-off (see england-devine-2013).
- No country checked publishes an official count of dyscalculia alone. Official figures (US, England, Spain) cover broader learning-disability categories.
- These are research prevalence figures, not a diagnosis of any person.
Versions
The files change when the statistics page is reviewed. The npm package version follows, so a pinned dependency never shifts under you. Current package version: 0.1.0. Figures last reviewed 2026-10-06; next review planned 2027-04-06.