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.
| Province | Schools | Learners | Educators | Learners per educator | Learners per school |
|---|---|---|---|---|---|
| KwaZulu-Natal | 5,737 | 2,836,165 | 93,168 | 30.4:1 | 494.4 |
| Gauteng | 2,074 | 2,340,853 | 78,717 | 29.7:1 | 1,128.7 |
| Limpopo | 3,571 | 1,754,594 | 51,480 | 34.1:1 | 491.3 |
| Eastern Cape | 4,908 | 1,702,612 | 57,333 | 29.7:1 | 346.9 |
| Western Cape | 1,478 | 1,212,282 | 39,941 | 30.4:1 | 820.2 |
| Mpumalanga | 1,617 | 1,136,290 | 35,812 | 31.7:1 | 702.7 |
| North West | 1,433 | 858,591 | 28,377 | 30.3:1 | 599.2 |
| Free State | 899 | 693,906 | 23,496 | 29.5:1 | 771.9 |
| Northern Cape | 540 | 303,977 | 10,643 | 28.6:1 | 562.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.
| Quintile | Schools | Learners | Educators | Learners per educator | Learners per school |
|---|---|---|---|---|---|
| Q1 | 7,253 | 2,971,483 | 94,406 | 31.5:1 | 409.7 |
| Q2 | 6,011 | 2,924,688 | 91,198 | 32.1:1 | 486.6 |
| Q3 | 5,237 | 3,552,856 | 107,938 | 32.9:1 | 678.4 |
| Q4 | 1,798 | 1,593,622 | 52,656 | 30.3:1 | 886.3 |
| Q5 | 1,881 | 1,748,124 | 71,315 | 24.5:1 | 929.4 |
By fee status
| Fee status | Schools | Learners | Educators | Learners per educator | Learners per school |
|---|---|---|---|---|---|
| No fee | 17,813 | 9,288,219 | 288,603 | 32.2:1 | 521.4 |
| Fee charging | 4,397 | 3,522,572 | 129,560 | 27.2:1 | 801.1 |
By school phase
| Phase | Schools | Learners | Educators | Learners per educator | Learners per school |
|---|---|---|---|---|---|
| Primary School | 14,653 | 7,242,187 | 231,842 | 31.2:1 | 494.2 |
| Secondary School | 5,952 | 4,721,163 | 157,644 | 29.9:1 | 793.2 |
| Combined School | 1,373 | 731,155 | 24,652 | 29.7:1 | 532.5 |
| Intermediate School | 279 | 144,765 | 4,829 | 30.0:1 | 518.9 |
Sector totals
| Sector | Schools | Learners | Educators | Learners per educator | Learners per school |
|---|---|---|---|---|---|
| Public ordinary schools | 22,257 | 12,839,270 | 418,967 | 30.6:1 | 576.9 |
| Independent ordinary schools | 2,672 | 756,613 | 49,048 | 15.4:1 | 283.2 |
| Special-needs centres | 555 | 172,770 | 14,854 | 11.6:1 | 311.3 |
| All open institutions | 25,500 | 13,769,639 | 482,918 | 28.5:1 | 540.0 |
By district
All 77 education districts, ordered by learner numbers.
| District | Schools | Learners | Educators | Learners per educator | Learners per school |
|---|---|---|---|---|---|
| KwaZulu-Natal | Pinetown | 489 | 367,563 | 11,653 | 31.5:1 | 751.7 |
| KwaZulu-Natal | Umlazi | 457 | 357,997 | 12,435 | 28.8:1 | 783.4 |
| North West | Bojanala | 529 | 335,859 | 10,902 | 30.8:1 | 634.9 |
| Mpumalanga | Nkangala | 479 | 322,673 | 10,449 | 30.9:1 | 673.6 |
| Mpumalanga | Ehlanzeni | 356 | 318,342 | 9,495 | 33.5:1 | 894.2 |
| KwaZulu-Natal | King Cetshwayo | 634 | 286,302 | 9,405 | 30.4:1 | 451.6 |
| Mpumalanga | Gert Sibande | 410 | 284,682 | 9,255 | 30.8:1 | 694.3 |
| KwaZulu-Natal | Zululand | 739 | 276,027 | 9,311 | 29.6:1 | 373.5 |
| Gauteng | Ekurhuleni South | 173 | 257,854 | 8,253 | 31.2:1 | 1,490.5 |
| KwaZulu-Natal | Umkhanyakude | 528 | 249,665 | 7,714 | 32.4:1 | 472.9 |
| Eastern Cape | Or Tambo Coastal | 628 | 249,529 | 7,884 | 31.7:1 | 397.3 |
| Limpopo | Vhembe East | 509 | 240,160 | 6,858 | 35.0:1 | 471.8 |
| KwaZulu-Natal | Umgungundlovu | 478 | 237,602 | 8,303 | 28.6:1 | 497.1 |
| Limpopo | Capricorn South | 410 | 230,985 | 6,874 | 33.6:1 | 563.4 |
| Gauteng | Tshwane South | 187 | 228,028 | 8,160 | 27.9:1 | 1,219.4 |
| Eastern Cape | Nelson Mandela | 291 | 227,745 | 7,551 | 30.2:1 | 782.6 |
| North West | Ngaka Modiri Molema | 432 | 222,763 | 7,361 | 30.3:1 | 515.7 |
| Western Cape | Metro East | 185 | 221,927 | 6,894 | 32.2:1 | 1,199.6 |
| Western Cape | Metro North | 207 | 212,111 | 6,869 | 30.9:1 | 1,024.7 |
| Mpumalanga | Bohlabela | 372 | 210,593 | 6,613 | 31.8:1 | 566.1 |
| Gauteng | Ekurhuleni North | 159 | 208,981 | 7,023 | 29.8:1 | 1,314.3 |
| KwaZulu-Natal | Ugu | 446 | 207,012 | 6,661 | 31.1:1 | 464.2 |
| KwaZulu-Natal | Uthukela | 440 | 207,002 | 6,518 | 31.8:1 | 470.5 |
| Limpopo | Mopani East | 350 | 202,306 | 5,654 | 35.8:1 | 578.0 |
| Free State | Motheo | 245 | 202,012 | 6,891 | 29.3:1 | 824.5 |
| Western Cape | Metro South | 206 | 199,201 | 6,388 | 31.2:1 | 967.0 |
| Limpopo | Sekhukhune East | 420 | 192,088 | 5,580 | 34.4:1 | 457.4 |
| Eastern Cape | Buffalo City | 387 | 188,910 | 6,425 | 29.4:1 | 488.1 |
| KwaZulu-Natal | Umzinyathi | 487 | 186,896 | 5,930 | 31.5:1 | 383.8 |
| Limpopo | Vhembe West | 384 | 186,322 | 5,411 | 34.4:1 | 485.2 |
| Limpopo | Sekhukhune South | 414 | 184,187 | 5,578 | 33.0:1 | 444.9 |
| KwaZulu-Natal | Ilembe | 410 | 182,481 | 5,906 | 30.9:1 | 445.1 |
| Eastern Cape | Or Tambo Inland | 569 | 182,197 | 6,217 | 29.3:1 | 320.2 |
| Free State | Thabo Mofutsanyana | 264 | 181,654 | 6,073 | 29.9:1 | 688.1 |
| Gauteng | Tshwane West | 157 | 180,298 | 5,742 | 31.4:1 | 1,148.4 |
| Gauteng | Gauteng East | 164 | 175,910 | 5,846 | 30.1:1 | 1,072.6 |
| Gauteng | Johannesburg East | 125 | 173,111 | 5,758 | 30.1:1 | 1,384.9 |
| Gauteng | Johannesburg Central | 201 | 172,256 | 5,715 | 30.1:1 | 857.0 |
| Limpopo | Mopani West | 310 | 171,850 | 4,995 | 34.4:1 | 554.4 |
| Gauteng | Gauteng West | 150 | 171,412 | 5,877 | 29.2:1 | 1,142.7 |
| Western Cape | Cape Winelands | 270 | 168,528 | 5,890 | 28.6:1 | 624.2 |
| North West | Dr Kenneth Kaunda | 196 | 160,930 | 5,387 | 29.9:1 | 821.1 |
| Eastern Cape | Alfred Nzo West | 525 | 156,924 | 5,209 | 30.1:1 | 298.9 |
| Free State | Lejweleputswa | 186 | 156,414 | 5,242 | 29.8:1 | 840.9 |
| Gauteng | Johannesburg North | 148 | 153,295 | 5,353 | 28.6:1 | 1,035.8 |
| Limpopo | Capricorn North | 384 | 151,882 | 4,588 | 33.1:1 | 395.5 |
| Western Cape | Metro Central | 203 | 146,251 | 5,158 | 28.4:1 | 720.4 |
| KwaZulu-Natal | Harry Gwala | 412 | 139,359 | 4,657 | 29.9:1 | 338.2 |
| Gauteng | Tshwane North | 136 | 138,316 | 4,691 | 29.5:1 | 1,017.0 |
| KwaZulu-Natal | Amajuba | 217 | 138,259 | 4,675 | 29.6:1 | 637.1 |
| North West | Dr Ruth S Mompati | 275 | 137,793 | 4,690 | 29.4:1 | 501.1 |
| Western Cape | Eden And Central Kar | 197 | 135,320 | 4,506 | 30.0:1 | 686.9 |
| Gauteng | Johannesburg South | 104 | 133,246 | 4,292 | 31.0:1 | 1,281.2 |
| Eastern Cape | Amathole East | 691 | 130,582 | 4,741 | 27.5:1 | 189.0 |
| Free State | Fezile Dabi | 141 | 120,912 | 4,083 | 29.6:1 | 857.5 |
| Gauteng | Sedibeng West | 127 | 114,747 | 3,848 | 29.8:1 | 903.5 |
| Gauteng | Johannesburg West | 125 | 114,655 | 4,067 | 28.2:1 | 917.2 |
| Eastern Cape | Alfred Nzo East | 217 | 107,397 | 3,076 | 34.9:1 | 494.9 |
| Eastern Cape | Chris Hani West | 338 | 107,013 | 3,694 | 29.0:1 | 316.6 |
| Limpopo | Mogalakwena | 233 | 100,248 | 3,002 | 33.4:1 | 430.2 |
| Eastern Cape | Sarah Baartman | 189 | 97,057 | 3,192 | 30.4:1 | 513.5 |
| Northern Cape | Frances Baard (Fb) | 117 | 96,382 | 3,289 | 29.3:1 | 823.8 |
| Limpopo | Waterberg | 157 | 94,566 | 2,940 | 32.2:1 | 602.3 |
| Eastern Cape | Chris Hani East | 437 | 93,295 | 3,676 | 25.4:1 | 213.5 |
| Eastern Cape | Joe Gqabi | 270 | 89,769 | 3,065 | 29.3:1 | 332.5 |
| Northern Cape | John Taolo Gaetsewe (Jtg) | 169 | 81,014 | 2,831 | 28.6:1 | 479.4 |
| Western Cape | West Coast | 124 | 75,562 | 2,439 | 31.0:1 | 609.4 |
| Eastern Cape | Amathole West | 366 | 72,194 | 2,603 | 27.7:1 | 197.3 |
| Gauteng | Sedibeng East | 71 | 69,405 | 2,400 | 28.9:1 | 977.5 |
| Northern Cape | Zf Mgcawu (Zfm) | 97 | 59,406 | 2,069 | 28.7:1 | 612.4 |
| Western Cape | Overberg | 84 | 52,761 | 1,776 | 29.7:1 | 628.1 |
| Gauteng | Gauteng North | 47 | 49,339 | 1,692 | 29.2:1 | 1,049.8 |
| Northern Cape | Pixley Ka Seme (Pxl) | 85 | 46,009 | 1,608 | 28.6:1 | 541.3 |
| Free State | Xhariep | 61 | 32,441 | 1,189 | 27.3:1 | 531.8 |
| Northern Cape | Namakwa (Nmk) | 72 | 21,166 | 846 | 25.0:1 | 294.0 |
| North West | Rustenburg | 1 | 1,246 | 37 | 33.7:1 | 1,246.0 |
| Free State | Mangaung Metropolita | 2 | 473 | 18 | 26.3:1 | 236.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.
- By province (CSV)
- By quintile (CSV)
- By fee status (CSV)
- By phase (CSV)
- By district (CSV)
- All tables (JSON)
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 DemoWant more South African education research like this in your Google results?