Download formats
All formats contain the same data. Choose based on your use case:
JSON (hierarchical)
Nested structure: school → year → phase → values. Each school carries its own identity (address, postal code, lat/lng, MRT, etc).
Download JSONCSV (long format)
One row per school-year-phase. Easy to filter, pivot, or join with other data.
Download CSVCSV (wide format)
One row per school-year. Each phase has its own vacancy/applied/taken columns. Best for human reading.
Download CSVData schema
JSON structure
{
"metadata": {
"source": "MOE 2026 P1 Registration data",
"school_count": 182,
"years": ["2023", "2024", "2025", "2026"],
"phases": ["Phase 1", "2A", "2B", "2C", "2CS", "Phase 3"],
"generated": "2026-08-27"
},
"schools": [
{
"shortName": "Ahmad Ibrahim",
"officialName": "AHMAD IBRAHIM PRIMARY SCHOOL",
"address": "10 YISHUN STREET 11",
"postalCode": "768643",
"town": "yishun",
"zone": "NORTH",
"schoolType": "GOVERNMENT SCHOOL",
"affiliation": "PRIMARY",
"latitude": "1.433152715",
"longitude": "103.8329424",
"mrt": "Yishun",
"bus": "Yishun Ring Road - 812 ...",
"principal": "MS BAEY EE-LYN",
"contact": "67592906",
"email": "aips@moe.edu.sg",
"years": {
"2023": {
"Phase 1": { "vacancy": 160, "applied": 54, "taken": 0 },
"2A": { "vacancy": 106, "applied": 10, "taken": 0 },
"2B": { "vacancy": 52, "applied": 0, "taken": 0 },
"2C": { "vacancy": 157, "applied": 27, "taken": 0 },
"2CS": { "vacancy": 130, "applied": 15, "taken": 0 },
"Phase 3": { "vacancy": 115, "applied": 0, "taken": 0 }
},
"2024": { ... },
"2025": { ... },
"2026": { ... }
}
},
...
]
}
CSV long format columns
What's in the data
For each of 182 schools: address, postal code, town, school type, geographic zone (NORTH/SOUTH/EAST/WEST), MRT station(s), principal name, contact details.
For each school in each year (2023-2026): vacancy, applied, and taken counts for each of 6 phases.
Useful for:
- Tracking school popularity trends over 4 years
- Identifying consistently oversubscribed schools
- Building heatmaps of Phase 1 (sibling priority) demand
- Analysing impact of new BTO completions on school applications
- Comparing government vs government-aided vs independent schools
Source and license
Data is sourced from MOE annual P1 Registration announcements. Each year's results are published by MOE at moe.gov.sg approximately 2-4 weeks after each phase closes.
This dataset is provided as open data under CC-BY 4.0. Please cite as: PrimarySch.com (2026). Singapore P1 Registration Data 2023-2026.
Questions or corrections?
Email hello@primarysch.com. We update the dataset annually after MOE publishes final results.