SGDadBuilds
Methodology

How we calculate the 2026 P1 forecast

No black box. Every number on this site comes from public MOE balloting data and an explicit formula you can verify yourself. This page explains exactly how it works — and where it can be wrong.

What this tool does

SGDadBuilds publishes a 2026 P1 forecast for every Singapore primary school. The forecast answers one question: at which registration phase is this school likely to trigger a ballot — meaning applicants exceed available seats?

Each school gets a colour-coded tier (2A, 2B, 2C, or "usually safe") based on where we project demand to outstrip supply. The tier represents the earliest phase at which that happens.

Two layers of analysis. The map shows how competitive each school is across all phases. Open any school and enter your address to see your odds — based on your citizenship, distance band, and phase eligibility.

The four tiers

A school's tier is the earliest phase where projected applicants exceed projected vacancies. The tiers mean:

2A

Very competitive

Even alumni and community-leadership connections face a ballot. Demand at this school is structurally high across all phases.

2B

Competitive

Parent volunteers and community leaders face a ballot. Citizens with strong address proximity (SC <1km) may still be fine in 2C, but it is close.

2C

Open ballot expected

The general address-based ballot in Phase 2C is projected to be oversubscribed. Earlier phases are safe. Distance from school matters a lot here.

Safe

Usually safe

All phases are projected to stay within capacity. A ballot is unlikely — though this can change in strong cohort years or after nearby BTO completions.

How MOE phases work (the cascade)

MOE allocates seats in a strict cascade. Each phase consumes seats from the total cohort capacity; whatever is left flows to the next phase. The structure:

Phase 1 — siblings of current pupils + alumni children

↓ leftover seats flow to Phase 2A

Phase 2A — school staff, alumni (non-sibling path), community leaders with committee roles

↓ leftover seats split between 2B and 2C (at least 20 reserved for 2B, 40 for 2C)

Phase 2B — parent volunteers (committed ≥40hrs), active church/clan members, community leaders

Phase 2C — open to all citizens and PRs; address distance determines priority

This cascade is why a new HDB block nearby floods Phase 2C demand — new families move closer but have no alumni or volunteer ties. It also means a school's Phase 2C vacancy depends on how many seats Phases 1, 2A, and 2B consumed. That upstream variation is the biggest source of forecast uncertainty.

Why 2C is hardest to forecast. Phase 2C vacancies inherit all the noise from earlier phases. If Phase 2A sees unusually high alumni demand one year, 2C gets fewer seats. Our model uses the historical median cascade, but actual year-to-year swings of ±15–20 seats are normal at popular schools. We flag this uncertainty explicitly on school pages.

The explicit formula

For each school and each phase, we project two numbers: vacancies and applicants.

Projecting vacancies

We start from the total 2026 cohort capacity published by MOE (e.g. Tao Nan = 330 places), then run the cascade formula to derive how many seats are theoretically available at each phase. The cascade is verified against Tao Nan and PLMGS 2023–2025 actual data — Phase 2A vacancies match Phase 1 leftover within 1 seat every year.

Projecting applicants

We use a weighted average of the last 3 years of observed applicants (50% most recent year, 30% year-2, 20% year-3) plus a capped linear trend. For Phase 1, we blend a sibling-pool demographic estimate with the historical median — the blend weight depends on how volatile the school's Phase 1 history has been.

Tier verdict

If projected applicants > projected vacancies at a given phase, that phase triggers a ballot. The tier = the earliest triggering phase. If no phase triggers, the school is "usually safe".

No machine learning. The dataset has roughly 180 schools × 5 phases × 16 years ≈ 14,000 records — too sparse for ML without severe overfitting. More importantly, parents need to understand whya school is rated competitive. "The neural network said so" is not acceptable here. The answer must always be reducible to: "School X averaged Y applicants for Z seats in Phase 2C over the last 3 years."

Confidence and accuracy

We backtest the model by running 2025 predictions from 2024 inputs and comparing to actual 2025 outcomes. Across all schools and phases, the mean absolute percentage error (MAPE) on vacancy projections is approximately 16–19%. That translates to roughly ±15–25 seats at a mid-sized school.

Schools shown with an outline pin on the map (and a Volatile badge on their detail page) have sparse or inconsistent historical data — fewer than 3 reliable data years, or data gaps from school mergers. Treat those forecasts as directional only.

What this tool cannot guarantee: whether your family specifically will get in. Odds are a probability, not a promise — the actual ballot depends on who else applies in your band that year.

Calibration note. Band-resolved balloting data (the exact citizenship + distance breakdown per ballot) is only reliably available from 2024 onward. Precise calibration requires at least two closed years of band-specific evidence; we will update this after 2026 results are published.

Data sources

MOE P1 balloting data

2009–2025 annual results: vacancies, applicants, and outcomes per school per phase. The primary signal for all forecasts.

sgschooling.com historical archive

Pre-2019 supplementary data on oversubscription history. Used for trend context; band-specific evidence is not available before 2019.

data.gov.sg — school directory

School locations, capacity, and geocoordinates. Used for map positioning and distance band computation.

data.gov.sg — live births

Annual birth counts 2003–2019. Each registration year is paired with the cohort born 6 years earlier to detect Dragon-year demand shifts.

data.gov.sg — HDB completions

New HDB blocks by address and completion year. Shown as context on school pages (BTO layer). Phase 2C demand impact is empirically validated; algorithmic BTO adjustment is in development.

data.gov.sg — MSF student care directory

All 341 MSF-registered student care centres (locations, monthly fee as filed, enrolment). Cross-checked against MSF's published full list (Apr 2026) — the two sources match. Shown as an optional map layer; context only, not part of your odds.

OneMap API

Singapore government geocoding service. Converts addresses to lat/lng for distance band calculation.

No PSLE rankings. MOE stopped publishing school-level PSLE results in 2021. Unofficial ranking proxies are not used — they are based on incomplete data, lag reality by years, and signal the wrong thing about P1 odds. This tool uses only registration-phase data, which is what actually determines whether your child gets in.

The BTO context layer

New HDB completions near a school are shown as markers on the map. This is context, not algorithm input — we show it because BTO waves demonstrably increase Phase 2C demand, but the exact multiplier is school-specific and takes 3–4 years to fully materialise.

The validated conversion rate (from PLMGS 2021–2025 data) is approximately 0.21 extra Phase 2C applicants per family-sized unit at peak, with demand ramping over roughly 4 years after block completion. Only Phase 2C is empirically validated; BTO has no effect on Phase 2A (alumni) demand and a partial, unvalidated effect on Phase 2B (volunteer paths). Full algorithmic BTO adjustment is deferred to v2.

Ready to check your school?

Every primary school, mapped with 2026 phase forecasts.

See the map →

All data from public sources. This tool is a planning aid — it is not affiliated with MOE and does not constitute official advice. Forecasts are updated annually after MOE publishes each year's registration results.