Most Singapore money guidance is written for someone still deciding whether to care.
I had already decided. I have kids, a flat to think about, and a CPF statement I could not read. I wanted straight answers to specific questions, worked through with real numbers.
It is also the clearest case of a problem that is not technical. The rules disagree with each other, they change, and different parts of the system assume different things about the same family. Getting one answer right means deciding which rule wins before writing any code.
- What it is
- One policy engine with four views: Benefits, Housing, CPF and Tax relief.
- Checks
- 129 automated tests across 10 files, covering the birth-cohort boundaries and how the calculator behaves.
- Privacy
- Static site, no backend, no login. Your children's names and birth dates never leave the browser.
- Not
- Official advice. Every figure cites its source and a date, but I don't work for CPF, IRAS or HDB.
Why I built it
The rules are public. What was missing is the join between them. Child support, housing grants, CPF and tax relief are each published on their own page. Each one assumes you already know which applies to you. Nobody publishes the version that answers what my family actually gets, and when.
So I wrote down the eight questions I was actually stuck on, and built to those:
- What does each child get, in which year, from birth to 17?
- A rule changed partway through. Which children follow the old scheme and which follow the new one?
- Should we buy resale now, or ballot for a BTO and wait?
- How far do the housing grants stack on one purchase, and who qualifies for each?
- What will our CPF look like at 55, at current contribution rates?
- When does MediSave hit its cap, and what happens after?
- Is it worth investing the CPFIS-eligible slice, or taking the floor rates?
- Which subsidies cut next month's bill, and what can we claim at tax filing?
I built this so I could stop re-deriving my own family's numbers every time a Budget speech changed them.
What it does
Add each child's birth date and it projects support from birth to 17. The Baby Gift, the Medisave Grant for Newborns and the CDA First Step Grant at the start. Child Credits and Edusave through the school years. The PSEA top-up at 17.
Housing is framed as the decision it actually is, resale or BTO, rather than a list of grants. Resale shows what a household can expect from the Family Grant, the Enhanced CPF Housing Grant and the Proximity Housing Grant, and how far they stack on one purchase. BTO covers the ballot priority that having children earns you.
CPF is the one that kept surprising me. It is set early and paid out late. The tool projects all three accounts from a wage and a date of birth, splits the contribution correctly (you 20%, employer 17%), and shows where each part of that 37% lands.
Tax relief is the money that arrives later. Reliefs are not cash into your account. They are usually claimed by you rather than applied automatically, and the working-mother reliefs come to $0 in a sole-breadwinner home.
How it is put together
Every figure, date and rule lives in one file, src/policy-config.ts. The calculations, the reference tables and the copy are all derived from it. When a rule changes it is a data edit in one place. The table on the page cannot disagree with the arithmetic behind it, because they read the same numbers.
The engine is written as rules rather than hardcoded totals. That is what makes the cohort handling possible at all. A legacy scheme and a current one can both exist, with the birth date deciding which applies. Hardcoded totals would have needed a second copy of the whole calculation.
The tests target the boundaries. A one-year error in a transition rule is the least visible kind of bug. The page still renders, and the numbers still look plausible.
Where it stands
Live, and I still use it. It has a version number and a written procedure for updating policy, because what would kill a tool like this is a rule change nobody notices is missing. Each section also carries a plain-English key for the acronyms. That is half the reason the official pages are hard to read.
Get in touch
If you have a question about your own family's numbers, or you want something like this built, tell me about it. Same goes for anything else on this site.
Email me or find me on LinkedIn. I usually reply within a day or two.