Singapore P1 Registration Open Data 2023-2026

Free open dataset of MOE Primary 1 Registration ballot data. 182 schools, 4 years (2023, 2024, 2025, 2026), 6 phases (Phase 1, 2A, 2B, 2C, 2C Supplementary, Phase 3). Available as JSON, CSV long-format, and CSV wide-format.

182
Schools
4
Years
6
Phases
3,536
Data points

Download formats

All formats contain the same data. Choose based on your use case:

JSON (hierarchical)

587 KB · Best for: web apps, JavaScript, APIs

Nested structure: school → year → phase → values. Each school carries its own identity (address, postal code, lat/lng, MRT, etc).

Download JSON

CSV (long format)

512 KB · 3,536 rows · Best for: Excel, R, Python pandas, analysis

One row per school-year-phase. Easy to filter, pivot, or join with other data.

Download CSV

CSV (wide format)

116 KB · 719 rows · Best for: Excel pivot tables, quick scanning

One row per school-year. Each phase has its own vacancy/applied/taken columns. Best for human reading.

Download CSV

Data 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

shortNameShort school name (matches MOE)
officialNameFull registered school name
townPlanning area slug (kebab-case)
postalCode6-digit Singapore postal code
addressStreet address
schoolTypeGOVERNMENT, GOVERNMENT-AIDED, INDEPENDENT, etc.
zoneNORTH, SOUTH, EAST, or WEST
yearRegistration year (2023-2026)
phasePhase 1, 2A, 2B, 2C, 2CS (Supplementary), or Phase 3
vacancyNumber of P1 seats allocated to this phase
appliedNumber of applicants in this phase
takenNumber of seats actually taken (where reported)
total_vacancy_yearTotal P1 seats for this school in this year (all phases)
oversubscribed"yes" if applicants > seats in this phase, "no" otherwise

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:

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.