PrimarySch.com exists because navigating Singapore Primary 1 (P1) registration is unnecessarily hard. The official MOE portal gives you a list of 182 schools with basic vacancy data, but no way to compare trends over time, see which schools are consistently oversubscribed, or plan across phases. We built this site to make that information usable.
Who built this
This is a personal project, not affiliated with MOE or any school. I update the data annually after MOE publishes final results for each phase. The dataset is available for free at /data/.
Why this site exists
Singapore's P1 registration system is fair in principle — phases prioritize siblings, alumni, parent volunteers, and finally the general public within 1km of the school. But in practice, it's a black box for new parents:
- Volatility: A school's vacancy can shift 30% year-to-year based on BTO completions, demographic shifts, or policy changes
- Geographic precision: The 1km priority is the most important number, but MOE only tells you your distance at registration time
- Phase progression: Most parents only experience one phase; seeing what happened in earlier phases at the same school helps you understand your odds
- Ballot outcomes: "Oversubscribed" is binary in MOE communications, but the actual oversubscription ratio (e.g., 1.7x applicants per seat) tells a much richer story
Our goal is to make this information comparable, contextual, and queryable — three things the official portal does not.
What you'll find here
Postal code lookup
Type any 6-digit Singapore postal code. We resolve it via the OneMap Singapore API and show all schools within walking distance, with vacancy for the current registration cycle. This is the most-used tool on the site.
Per-school deep dives
Every one of the 182 Singapore primary schools has its own profile page with: 4-year vacancy trends across all phases, contact details, MRT access, bus services, principal name, and school type. Click any school name anywhere on the site to dive in.
Phase breakdowns
Each phase (1, 2A, 2B, 2C, 2C Supplementary, 3) has a dedicated page with national statistics, top schools, and an editorial analysis of how that phase played out.
Side-by-side comparison
Select up to 6 schools and compare vacancy, location, and demographics. Useful for parents deciding between 2-3 realistic options.
Open data downloads
The entire 4-year dataset is available as JSON and CSV under a CC-BY-4.0 license. Researchers, journalists, and edtech builders can use it freely. Download here →
How we collect data
Vacancy data
Source: Ministry of Education annual P1 Registration announcements. We collate the official PDFs into a structured dataset within 7 days of each phase's results being published. We do not collect data from individual schools' registration portals.
School identity
Source: data.gov.sg's primary schools dataset, refreshed annually. We supplement with school websites for principal names, contact details, and MRT/bus information.
Distances
For specific postal codes (real building addresses), we use the OneMap Singapore API. For sector codes (where no building exists), we use Singapore postal district centroids with a clear "approximate" indicator in the UI.
Read the full methodology: Data Methodology →
Editorial standards
Every data point on this site is sourced. We publish the source and the date last updated. When MOE revises a number (which happens occasionally), we update the dataset and note the change in the version history.
We do not:
- Charge parents for access (no paywall)
- Sell registration data to third parties
- Run sponsored content from schools (no "featured school" placements)
- Provide individual enrolment advice (we publish data, not opinions on your child's best fit)
If you spot an error, email data@primarysch.com. We respond within 7 days and update within 14.
Frequently asked questions
Is this site affiliated with MOE?
No. PrimarySch.com is independent. We are not endorsed by, partnered with, or financially supported by MOE or any school. For official registration information, always refer to moe.gov.sg.
How accurate is the distance shown?
For specific building postals (about 30% of inputs), we use the OneMap API — accuracy is ±5 meters. For sector codes (about 70% of inputs), we use the district centroid, which can be off by up to 1.5 km. We always show which type of lookup was used.
Why is your data different from MOE's?
It shouldn't be different — we source from MOE. If you spot a discrepancy, please report it. Note that MOE sometimes revises numbers weeks after initial publication.
Can I use your data in my research / article / app?
Yes. The dataset is CC-BY-4.0 licensed. Please cite as: "PrimarySch.com (2026). Singapore P1 Registration Data 2023-2026."
How is this site funded?
Advertising via Google AdSense. We do not accept paid placements from schools, education agents, or tuition centres.
Will you add secondary schools?
Not currently. P1 registration is the most data-scarce phase of Singapore's education system. Secondary school posting is published more comprehensively by MOE. We focus where the data gap is widest.
Do you have an app?
No native app. The site is mobile-first and works offline once cached. We may build a PWA in the future.
Get in touch
Have a correction? A feature idea? A research collaboration?