Education Services · World Bank

World Bank Education Statistics (EdStats/WDI) — Harmonized Education Indicators

Datadory delivers education services data covering World Bank Education Statistics (EdStats) - the 8,450-series harmonized indicator compilation plus 156 WDI SE.* education series spanning enrolment, literacy, progression, pupil-teacher ratios and spending across 217 economies from 1970 onward. Inspect sample rows and the field dictionary first, then have it delivered daily, weekly, or hourly.

API, files, or your warehouse. Daily, weekly, or hourly.

Where it covers
217 economies plus World Bank regional and income aggregates - the entity picker offers 272 selections once regions and income bands are counted. Every row keys on ISO two-letter and three-letter codes, so joins onto any ISO-keyed table are mechanical.
How far back
WDI education series run from 1970 to the present release. EdStats adds forward projections with dated values out to 2100, so the shelf holds both history and forecast in one column. Series vintages differ underneath: some UIS-sourced EdStats series carry an earlier end-year than their WDI counterparts, worth checking before you join the two.
How fine
Annual national observations - one row per indicator, country and year. No subnational breakdowns exist at this level; if your question needs district or school grain, pair this shelf with a national source rather than expecting it here.

What is World Bank Education Statistics (EdStats)?

Two complementary collections under one roof. The larger is the EdStats compilation - 8,450 series assembled from the UNESCO Institute for Statistics, the OECD and the World Bank's own collections, reaching across school access and completion, learning outcomes (including harmonized adjusted test scores), teacher stocks, education expenditure and attainment. The smaller is the education topic inside the World Development Indicators: 156 indicators carrying the SE.* prefix, covering enrolment, literacy, progression, pupil-teacher ratios and education spending as a share of GDP.

The division of labour matters less than the shared grammar. Both collections key observations on the same country codes and the same indicator-code conventions, so a series pulled from either shelf reconciles against the other without translation work - a rarer property than it sounds in cross-country education data, where competing compilations routinely disagree about whether a figure covers a calendar or a school year.

One honest caveat belongs up front: the two shelves age differently. Some UIS-sourced series in the EdStats compilation carry an earlier end-year than their WDI counterparts, so a join across shelves deserves an end-year check rather than an assumption.

What do rows in EdStats and WDI education data look like?

Tidy and long-format: one observation per indicator, country and year, each row self-describing through the attribute set in the dictionary below. Two observed rows make the texture concrete. India's primary enrolment reads 138,368,073 pupils for 2024 and 126,117,112 for 2025 - a drop worth noticing rather than smoothing over, because the newest year of a reporting series can arrive partially complete while returns are still collected. Treat trailing-edge years as provisional until you have checked them.

Nulls are statements too. The EdStats adjusted primary math score for Brazil at reference year 2095 ships as a genuine null: the projection framework reserves the horizon even where no value has been published. Filtering those rows out of historical analysis takes one predicate, provided you know they exist - which is exactly the kind of thing a sample catches before a pipeline does.

Every observation also carries obs_status, the flag marking estimates and missing-data conditions explicitly. Between labelled nulls and flagged estimates, the data distinguishes between 'zero', 'unknown' and 'not yet published' - a distinction most spreadsheets flatten at your cost.

Which fields does the field dictionary define?

Nine attributes, four blocks. Identification: indicator.id and indicator.value. Geography: country.id/country.value and countryiso3code. Period: date. Measure: value, unit, decimal and obs_status. The full definitions, with examples drawn from live observations, sit in the table above.

The design choice worth appreciating is redundancy in the geography block. Carrying both a two-letter and a three-letter country code per row looks wasteful until the day your CRM keys on one and your analytics warehouse on the other - then it is the difference between a join and a mapping project.

Because this attribute grammar is identical on both shelves, the dictionary above covers the entire surface: the 156 SE.* WDI indicators and the 8,450 EdStats series speak the same row shape. New indicators extend the catalogue without changing the container.

Where does coverage run, and at what grain?

Geographically: 217 economies, plus the World Bank's regional and income aggregates - 272 selectable entities once those are counted. The aggregates are more useful than decorative; comparing East Asia & Pacific against Europe & Central Asia on spending shares is one filter rather than a hand-built country list.

Temporally the shelf runs deep. WDI education series reach back to 1970, giving half a century of annual history on enrolment, progression and spending - long enough to watch demographic waves move through school systems. The EdStats side adds forward projections with dated values out to 2100, so history and forecast share one column and separate cleanly on the date alone.

Grain is the hard boundary: annual, national, full stop. There are no subnational cuts here. If the question needs districts, schools or classrooms, this shelf answers the country-frame question and a national source answers the local one - teams that expect otherwise are the reason we pin scope before cutting samples.

How does it fit beside the other cross-country education sources?

Think in rings. This is the widest ring: 217 economies, annual, indicator-level. The OECD Education at a Glance collection narrows the ring to OECD members and partners but compensates with deeper metadata slices - ISCED levels, public/private splits, earnings premia. **Eurostat's educ_* tables** go narrower still, trading breadth for EU harmonization depth.

Against national sources the relationship flips: the US NCES compilations and England's EES platform trade coverage for grain, running to state, district or school level where this shelf stops at the border. The natural architecture uses this collection as the frame and national sources as insets.

If the live question is institutional - how a US-centric postsecondary series compares against this global frame - we have put the two head-to-head on the comparison page.

Field dictionary

Every field below is documented against real records. The full dictionary ships with the sample.

Field dictionary - attributes on every observation (definitions verified against live responses)
fieldtypedefinitionexample
indicator.idstringIndicator code identifying the series.SE.PRM.ENRL
indicator.valuestringHuman-readable indicator name returned alongside each observation.EDSTATS: Adjusted Primary Math Score
country.id / country.valuestringTwo-letter country code and name of the observation economy or aggregate.IN / India
countryiso3codestringThree-letter ISO3 code of the economy.IND
datestringReference year of the observation; EdStats projections extend beyond current years.2025
valuenumberIndicator value for the country-year; null when unavailable.126117112
unitstringUnit of measure attached to the observation where applicable.
decimalintegerNumber of decimal places the Bank recommends displaying for this indicator.0
obs_statusstringObservation status flag marking estimate or missing-value conditions; empty when normal.

Questions buyers ask

What does World Bank Education Statistics (EdStats) contain?

Two complementary collections: the EdStats compilation of 8,450 series drawing on the UNESCO Institute for Statistics, the OECD and World Bank collections - access, completion, learning outcomes including adjusted test scores, teachers, expenditure and attainment - plus the 156 SE.* education indicators inside the World Development Indicators covering enrolment, literacy, progression, pupil-teacher ratios and spending as a share of GDP.

How many countries does the education data cover?

217 economies, plus the World Bank's regional and income aggregates - 272 selectable entities once those groups are counted. Every row keys on ISO two-letter and three-letter country codes, so any ISO-keyed table in your stack joins mechanically. Subnational detail is outside this collection's scope by design.

How far back do the education time series go?

The World Development Indicators education series run from 1970 to the present release - over fifty years of annual history on enrolment, progression and spending. The EdStats compilation additionally publishes projections whose dated values reach 2100, so history and forecast occupy one column and separate on date alone.

Why do some values read as blank or dated in the future?

Deliberate structure rather than damage. Projection frameworks such as the adjusted learning-outcome scores reserve future horizons with null values, and obs_status flags mark estimates and missing-data conditions explicitly. The data distinguishes zero, unknown and not-yet-published - filter accordingly and trailing-edge years stay out of historical charts.

Can education spending be compared against economic variables in the same data?

Yes - that is the structural advantage of this shelf. Income, poverty and population variables live in the same collection under the same country codes and row grammar, so education demand models against GDP per capita or poverty headcounts happen in one interface rather than across stitched exports.

Can I evaluate records before committing to a feed?

That is what the sample is for. Name the countries and indicators you care about - enrolment, literacy, spending shares, learning scores - and we cut sample rows toward them so you can verify coding, units and null handling against your own pipeline before anything ships.

Datasets that pair with this one

See the rows before you pay anything.

Name this dataset and we send real records from it — scoped to the fields you asked for.

See pricing