UDISE+ — School Education Data¶
Provider
Ministry of Education (MoE), NIEPA
Website
Access Level
🟢 Reports free; 🟡 School-level data needs login
Formats Available
PDF, Excel, CSV (reports), School-level data
Coverage
National → Every School (1.5 million+ schools)
Updated
Annually (UDISE+ 2022-23 is latest)
What UDISE+ Covers¶
UDISE+ (Unified District Information System for Education Plus) collects data from every school in India — government, government-aided, and private.
For each school, UDISE+ has:
| Category | Indicators |
|---|---|
| Enrollment | Boys/Girls by class (I to XII), SC/ST/OBC/Minority |
| Teachers | Total, by gender, qualification, contract/regular |
| Infrastructure | Rooms, toilets (boys/girls), drinking water, electricity, computers, library, boundary wall, ramp |
| Outcomes | Dropout rate (class-wise), transition rate |
| Finances | Government grants received |
| Location | GPS coordinates, rural/urban, habitation |
Key National Findings (UDISE+ 2022-23)¶
| Indicator | Value |
|---|---|
| Total schools | 14,72,475 |
| Total enrollment | 25.17 crore |
| Girls' enrollment | 48.9% |
| Schools with girls' toilet | 95.0% |
| Schools with electricity | 91.5% |
| Schools with computers | 52.4% |
| Pupil-Teacher Ratio (PTR) — Elementary | 26:1 |
How to Download UDISE+ Data¶
Method 1: Summary Reports (No Login) 🟢¶
- Go to udiseplus.gov.in
- Click "Reports" → "State/District/Block Reports"
- Select year → State → District
- Download PDF summary or Excel table
- Contains: enrollment, dropout, PTR, infrastructure averages by district
Method 2: School-Level Data (Login Required) 🟡¶
- Register at udiseplus.gov.in → Request school-level access
- After approval: download school-level CSV with UDISE codes and GPS coordinates
Method 3: Pre-Compiled Open Data 🟢¶
Many UDISE summary tables are available on data.gov.in:
- Search:
"UDISE school district"or"enrollment dropout rate" - Download structured CSV
Python: Pupil-Teacher Ratio Analysis¶
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
# Load UDISE district summary (from data.gov.in or udiseplus.gov.in)
udise = pd.read_csv("udise_district_2022_23.csv")
# Calculate PTR for elementary schools
udise['PTR_Elementary'] = udise['Enrollment_I_VIII'] / udise['Teachers_Elementary']
# Filter for Maharashtra
mh = udise[udise['State'] == 'Maharashtra'].copy()
mh = mh.sort_values('PTR_Elementary', ascending=False)
print("Districts with highest PTR (most overloaded):")
print(mh[['District', 'PTR_Elementary', 'Enrollment_I_VIII']].head(10).to_string())
# Map it
gadm = gpd.read_file("gadm41_IND_2.json")
gadm_mh = gadm[gadm['NAME_1'] == 'Maharashtra']
merged = gadm_mh.merge(mh, left_on='NAME_2', right_on='District')
fig, ax = plt.subplots(figsize=(10, 8))
merged.plot(column='PTR_Elementary', ax=ax, legend=True,
cmap='OrRd', scheme='quantiles',
legend_kwds={'title': 'Pupil-Teacher Ratio'})
ax.set_title("Elementary School PTR by District — Maharashtra (2022-23)")
ax.axis('off')
plt.tight_layout()
plt.savefig("mh_ptr_map.png", dpi=150)
plt.show()
✏️ Practice Exercise¶
Exercise 4.2 — School Infrastructure in Your District
Goal: Compare urban vs rural schools in your district on infrastructure indicators.
- Download UDISE+ block-level summary for your district (udiseplus.gov.in → Reports)
- Find: % schools with girls' toilet, % with electricity, % with computers
- Compare urban blocks vs rural blocks
Questions: - [ ] What % of schools in your district have functional girls' toilets? - [ ] What is the average PTR in your district? (Above 30 is considered overcrowded) - [ ] Which block has the worst school infrastructure? - [ ] Compare your district's PTR to the national average (26:1)
Next Dataset: HMIS Health Facility Data →