Methodology
Everything below is open. If you spot an error, email me — I correct within 48 hours.
1. Data sources
- MOE Phase 2C ballot results — published annually each August. Vacancies, applicants, admitted, and the "indicator" (which distance/citizenship bucket had to ballot for the last seats).
- SC Schooling — aggregator of the above; I cite it where I rely on its derived figures, but every number traces back to MOE.
- OneMap (data.gov.sg) — official government API for postal-code → coordinates → distance to schools.
- SingStat — births by planning area; informs the cohort projection layer.
- URA + HDB — planning-area boundaries and BTO completion schedules; informs medium-term demand projection.
2. The MOE phase priority order
P1 admission walks through phases in order:
- Phase 1 — sibling currently in the school (Singapore Citizens).
- Phase 2A1 — sibling currently in school or parent alumnus (members of school's alumni association).
- Phase 2A2 — parent is school staff, or MOE staff.
- Phase 2B — parent volunteer (PVP 40+ hours), clan/religious affiliation, or active community-leader status.
- Phase 2C — everyone else, with this internal priority order when
balloting is needed:
- SC <1km
- SC 1–2km
- SC >2km
- PR <1km
- PR 1–2km
- PR >2km
- Phase 2C Supplementary — leftover Phase 2C; foreigners participate here.
- Phase 3 — non-citizen / non-PR foreigners.
3. How chances are computed
For each school × your profile:
- Filter for gender compatibility (single-gender schools).
- If you qualify for Phase 1 / 2A1 / 2A2 / 2B → near-certain admission, high chance.
- Otherwise, fall through to Phase 2C. Compute your bucket (SC or PR × distance band).
- Compare your bucket to the most recent year's "indicator". If you rank above the indicator → walk in. Below → shut out. Equal → ballot (50% baseline, refined by MOE-published bucket-specific ballot chance where available).
4. Projection model (v1)
For each school, I fit a simple OLS regression on (year, subscription %) for the historical years available, then project forward. I report:
- Projected subscription % for your target year, with a ±band based on YoY volatility.
- Projected indicator category (open / PR-balloted / SC-balloted), using the mode of the last 3 historical categories with a recency tiebreak.
- Confidence (high / medium / low) based on data points available and volatility.
This is intentionally simple. Future versions will layer in birth-cohort and BTO data.
5. What I don't model (yet)
- School quality / sentiment / reviews — too subjective and too prone to complaints.
- Property prices — important but not in v1.
- Specific MOE policy shocks — flagged in commentary, not in the model.
6. Refresh cadence
MOE data refreshed annually in August. Projection model re-run on every data refresh. Last update: .