Dyscalculia.ioDeveloper docs
Docs / Statistics data / Statistics dataset

Statistics dataset

Updated 2026-10-18

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

FileContentsAddress
dyscalculia-statistics.jsonAll rows of the page plus license and methodology datehttps://dyscalculia.io/data/dyscalculia-statistics.json
dyscalculia-statistics.csvOne 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>.svgOne standalone SVG per chart (4 charts)https://dyscalculia.io/data/
screening-test.jsonThe five screening games: items, scoring rules and limits. No results, no one's answershttps://dyscalculia.io/data/screening-test.json
changelog.jsonDated changes to the site's test and methodhttps://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).

FileContents
statistics.jsonfigures (the site's number object, unchanged), calc, prevalence, keyFigures, charts, tables, rows, license and citation
statistics.csvThe rows, header first, UTF-8 with BOM
references.json93 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.jsonItem sets and scoring rules of the five games

CSV columns

ColumnMeaning
sectionThe section of the statistics page, or “At a glance” for the key figures
typekey_figure, chart or table
titleTitle of the chart or caption of the table (empty for key figures)
rowThe row label (the study population for chart rows)
columnThe column label (for tables) or the measure (for charts)
valueThe value as shown on the page, for example 6.5%
numeric_valueThe value as a number, for chart rows
noteA note such as the sample size and publication year
data_yearYear of the data, for key figures
sourceThe citation text of the source
source_urlLink 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.

IdPopulationFigurenYearSource key
worldwide-rangeSchool-age children, range across population studies (review)3–6%–2000shalev2000
german-guidelineChildren, adolescents and adults (German clinical guideline)3–7%–2019haberstroh2019
israel-1996Israel, age 116.5%3,0291996grosstsur1996
brazil-2016Brazil, grades 2–66%1,6182016fortes2016
uk-morsanyi-2018UK, primary school5.7%2,4212018morsanyi2018
england-devine-2018England, ages 8–9 and 12–135.6%1,7572018devine2018
england-devine-2013England, one sample, depending on the criteria used1–6%1,0042013devine2013
uk-lewis-1994UK, ages 9–103.6%1,2061994lewis1994
flanders-2004Belgium (Flanders), depending on age2.3–7.7%3,9782004insermDyscalc2007
inserm-2007France: international studies cited by Inserm (no French study found)3.6–7.7%–2007insermDyscalc2007
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).

Examples

curl
curl -s https://dyscalculia.io/data/dyscalculia-statistics.json | jq 'keys'
Python (pandas)
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"]]
R
df <- read.csv("https://dyscalculia.io/data/dyscalculia-statistics.csv", comment.char = "#")
subset(df, type == "chart")
JavaScript (npm)
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.

Cite as
Dyscalculia.io. (2026, October 6). Dyscalculia statistics 2026: how common is dyscalculia? https://dyscalculia.io/dyscalculia-statistics

Limits

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.