The State of South African Classrooms 2025

Learners, educators and class sizes in every one of South Africa's 22,257 public ordinary schools — by province, quintile, phase and district. Built from the Department of Basic Education's own school masterlist, and free for anyone to download, quote or republish.

22,257public ordinary schools
12.8mlearners
418,967educators
30.6:1learners per educator

This page is a reference table, not an argument. It reports what the Department of Basic Education's school masterlist records for 2025, in the breakdowns most often asked for and rarely published together. Every figure below is reproducible from the source file and the scripts noted at the foot of the page, and every table can be downloaded as a CSV.

By province

Public ordinary schools only. Independent schools and special-needs centres are reported separately further down, because their staffing models differ enough to distort a ratio.

ProvinceSchoolsLearnersEducatorsLearners per educatorLearners per school
KwaZulu-Natal5,7372,836,16593,16830.4:1494.4
Gauteng2,0742,340,85378,71729.7:11,128.7
Limpopo3,5711,754,59451,48034.1:1491.3
Eastern Cape4,9081,702,61257,33329.7:1346.9
Western Cape1,4781,212,28239,94130.4:1820.2
Mpumalanga1,6171,136,29035,81231.7:1702.7
North West1,433858,59128,37730.3:1599.2
Free State899693,90623,49629.5:1771.9
Northern Cape540303,97710,64328.6:1562.9

By quintile

Quintiles are assigned by the Department of Basic Education according to the socio-economic circumstances of the community a school serves, from Q1 (least resourced) to Q5. Independent schools are not quintiled and are excluded here.

QuintileSchoolsLearnersEducatorsLearners per educatorLearners per school
Q17,2532,971,48394,40631.5:1409.7
Q26,0112,924,68891,19832.1:1486.6
Q35,2373,552,856107,93832.9:1678.4
Q41,7981,593,62252,65630.3:1886.3
Q51,8811,748,12471,31524.5:1929.4

By fee status

Fee statusSchoolsLearnersEducatorsLearners per educatorLearners per school
No fee17,8139,288,219288,60332.2:1521.4
Fee charging4,3973,522,572129,56027.2:1801.1

By school phase

PhaseSchoolsLearnersEducatorsLearners per educatorLearners per school
Primary School14,6537,242,187231,84231.2:1494.2
Secondary School5,9524,721,163157,64429.9:1793.2
Combined School1,373731,15524,65229.7:1532.5
Intermediate School279144,7654,82930.0:1518.9

Sector totals

SectorSchoolsLearnersEducatorsLearners per educatorLearners per school
Public ordinary schools22,25712,839,270418,96730.6:1576.9
Independent ordinary schools2,672756,61349,04815.4:1283.2
Special-needs centres555172,77014,85411.6:1311.3
All open institutions25,50013,769,639482,91828.5:1540.0

By district

All 77 education districts, ordered by learner numbers.

DistrictSchoolsLearnersEducatorsLearners per educatorLearners per school
KwaZulu-Natal | Pinetown489367,56311,65331.5:1751.7
KwaZulu-Natal | Umlazi457357,99712,43528.8:1783.4
North West | Bojanala529335,85910,90230.8:1634.9
Mpumalanga | Nkangala479322,67310,44930.9:1673.6
Mpumalanga | Ehlanzeni356318,3429,49533.5:1894.2
KwaZulu-Natal | King Cetshwayo634286,3029,40530.4:1451.6
Mpumalanga | Gert Sibande410284,6829,25530.8:1694.3
KwaZulu-Natal | Zululand739276,0279,31129.6:1373.5
Gauteng | Ekurhuleni South173257,8548,25331.2:11,490.5
KwaZulu-Natal | Umkhanyakude528249,6657,71432.4:1472.9
Eastern Cape | Or Tambo Coastal628249,5297,88431.7:1397.3
Limpopo | Vhembe East509240,1606,85835.0:1471.8
KwaZulu-Natal | Umgungundlovu478237,6028,30328.6:1497.1
Limpopo | Capricorn South410230,9856,87433.6:1563.4
Gauteng | Tshwane South187228,0288,16027.9:11,219.4
Eastern Cape | Nelson Mandela291227,7457,55130.2:1782.6
North West | Ngaka Modiri Molema432222,7637,36130.3:1515.7
Western Cape | Metro East185221,9276,89432.2:11,199.6
Western Cape | Metro North207212,1116,86930.9:11,024.7
Mpumalanga | Bohlabela372210,5936,61331.8:1566.1
Gauteng | Ekurhuleni North159208,9817,02329.8:11,314.3
KwaZulu-Natal | Ugu446207,0126,66131.1:1464.2
KwaZulu-Natal | Uthukela440207,0026,51831.8:1470.5
Limpopo | Mopani East350202,3065,65435.8:1578.0
Free State | Motheo245202,0126,89129.3:1824.5
Western Cape | Metro South206199,2016,38831.2:1967.0
Limpopo | Sekhukhune East420192,0885,58034.4:1457.4
Eastern Cape | Buffalo City387188,9106,42529.4:1488.1
KwaZulu-Natal | Umzinyathi487186,8965,93031.5:1383.8
Limpopo | Vhembe West384186,3225,41134.4:1485.2
Limpopo | Sekhukhune South414184,1875,57833.0:1444.9
KwaZulu-Natal | Ilembe410182,4815,90630.9:1445.1
Eastern Cape | Or Tambo Inland569182,1976,21729.3:1320.2
Free State | Thabo Mofutsanyana264181,6546,07329.9:1688.1
Gauteng | Tshwane West157180,2985,74231.4:11,148.4
Gauteng | Gauteng East164175,9105,84630.1:11,072.6
Gauteng | Johannesburg East125173,1115,75830.1:11,384.9
Gauteng | Johannesburg Central201172,2565,71530.1:1857.0
Limpopo | Mopani West310171,8504,99534.4:1554.4
Gauteng | Gauteng West150171,4125,87729.2:11,142.7
Western Cape | Cape Winelands270168,5285,89028.6:1624.2
North West | Dr Kenneth Kaunda196160,9305,38729.9:1821.1
Eastern Cape | Alfred Nzo West525156,9245,20930.1:1298.9
Free State | Lejweleputswa186156,4145,24229.8:1840.9
Gauteng | Johannesburg North148153,2955,35328.6:11,035.8
Limpopo | Capricorn North384151,8824,58833.1:1395.5
Western Cape | Metro Central203146,2515,15828.4:1720.4
KwaZulu-Natal | Harry Gwala412139,3594,65729.9:1338.2
Gauteng | Tshwane North136138,3164,69129.5:11,017.0
KwaZulu-Natal | Amajuba217138,2594,67529.6:1637.1
North West | Dr Ruth S Mompati275137,7934,69029.4:1501.1
Western Cape | Eden And Central Kar197135,3204,50630.0:1686.9
Gauteng | Johannesburg South104133,2464,29231.0:11,281.2
Eastern Cape | Amathole East691130,5824,74127.5:1189.0
Free State | Fezile Dabi141120,9124,08329.6:1857.5
Gauteng | Sedibeng West127114,7473,84829.8:1903.5
Gauteng | Johannesburg West125114,6554,06728.2:1917.2
Eastern Cape | Alfred Nzo East217107,3973,07634.9:1494.9
Eastern Cape | Chris Hani West338107,0133,69429.0:1316.6
Limpopo | Mogalakwena233100,2483,00233.4:1430.2
Eastern Cape | Sarah Baartman18997,0573,19230.4:1513.5
Northern Cape | Frances Baard (Fb)11796,3823,28929.3:1823.8
Limpopo | Waterberg15794,5662,94032.2:1602.3
Eastern Cape | Chris Hani East43793,2953,67625.4:1213.5
Eastern Cape | Joe Gqabi27089,7693,06529.3:1332.5
Northern Cape | John Taolo Gaetsewe (Jtg)16981,0142,83128.6:1479.4
Western Cape | West Coast12475,5622,43931.0:1609.4
Eastern Cape | Amathole West36672,1942,60327.7:1197.3
Gauteng | Sedibeng East7169,4052,40028.9:1977.5
Northern Cape | Zf Mgcawu (Zfm)9759,4062,06928.7:1612.4
Western Cape | Overberg8452,7611,77629.7:1628.1
Gauteng | Gauteng North4749,3391,69229.2:11,049.8
Northern Cape | Pixley Ka Seme (Pxl)8546,0091,60828.6:1541.3
Free State | Xhariep6132,4411,18927.3:1531.8
Northern Cape | Namakwa (Nmk)7221,16684625.0:1294.0
North West | Rustenburg11,2463733.7:11,246.0
Free State | Mangaung Metropolita24731826.3:1236.5

Download the data

Published under a Creative Commons Attribution licence. Use it, chart it, quote it — a credit to MyEncore Research and a link back is all we ask.

Method, and what this data cannot tell you

Source. DBE EMIS Schools Masterlist, National file, Q3 2025, published by the Department of Basic Education, EMIS Directorate and available free without registration from education.gov.za. The same series is redistributed by UCT's DataFirst under a Creative Commons CC-BY licence.

Preliminary figures. The DBE flags the 2025 figures as preliminary, based on provincial data uploaded as at July 2025.

Two official ratios exist. Learner-educator ratios here count all educators, including SGB-paid posts. The DBE publishes this basis alongside a state-paid-only basis, which gives a higher figure. Ratios quoted elsewhere on the state-paid basis are not comparable with these. We report the all-educator basis throughout. Our national figure of 30.6:1 reproduces the DBE's own all-educator figure of 30.8:1 from School Realities 2023, which is how we know the calculation matches theirs.

Columns we deliberately did not use. The masterlist carries 49 columns, but they are compiled from nine separate provincial submissions and the provinces do not fill in the same fields. The email address column, for example, is 22% populated nationally — which would support a striking headline about schools being uncontactable. It is captured by KwaZulu-Natal (94%) and by no other province (0%). That number measures provincial admin practice, not schools, so we left it out, along with 19 other columns that fail the same test. Only columns with consistent coverage across all nine provinces are used above.

Reproduce it yourself. Download the masterlist, then run tools/research/build_classroom_stats.py. If your numbers differ from ours, we want to know.

Built by the team behind MyEncore

We make school management software used by South African schools every day — attendance, marks, fees, communication and SA-SAMS integration in one place.

Book a Demo ▶ Watch the Demo

Want more South African education research like this in your Google results?