tl;dr: i made sgfireplanner.com — a free singapore-specific fire retirement planner. it handles cpf, srs, progressive tax, hdb/property, healthcare costs, 12 withdrawal strategies, monte carlo simulation, historical backtesting since 1928, and sequence risk stress testing. no login required. everything runs in your browser — your financial data never leaves your device. it will always be free and it’s open source on github. still actively fixing bugs and implementing new features — if you spot anything off, let me know!
hey r/singaporefi,
i’ve been working on a retirement planning tool built specifically for singapore, and i wanted to share it with the community.
the problem: most fire calculators are us-centric. they don’t understand cpf, srs tax deductions, bsd/absd, bala’s table leasehold decay, or sg progressive tax brackets. i wanted something that actually models how retirement planning works here.
sgfireplanner.com is a comprehensive fire planner tailored to singapore residents.
singapore-specific modelling
- cpf — age-bracket contribution rates, oa/sa/ma tracking, extra interest on first $60k, brs/frs/ers projections, cpf life payouts
- srs — tax deduction impact, balance tracking, drawdown planning
- income tax — sg progressive brackets (0%–24%), personal reliefs (earned income, nsman, spouse, child, parent, cpf, srs)
- property — bsd/absd calculations, bala’s table leasehold decay, ltv, hdb monetisation strategies, downsizing analysis
- healthcare — medishield life, integrated shield plans, careshield life, out-of-pocket cost projections by age
income & expense modelling
- 3 salary projection models (simple, career-phase, mom data-driven benchmarks)
- multiple income streams (salary, rental, dividends, business, cpf life)
- life events (promotions, career breaks, parent support obligations)
- year-by-year projection table showing exactly how your finances evolve
simulation & stress testing
- monte carlo simulation — 10,000 randomised market scenarios with 3 methods (parametric, historical bootstrap, fat-tail student-t)
- historical backtesting — test your plan against every rolling window since 1928 (97 years of actual market data)
- sequence risk stress testing — see how your plan holds up under 8 historical crises (gfc, asian financial crisis, covid crash, etc.) with mitigation strategies (bond tent, cash buffer, flexible spending)
12 withdrawal strategies — way beyond the 4% rule
- constant dollar (4% rule), variable percentage (vpw), guardrails (guyton-klinger), vanguard dynamic, cape-based, floor & ceiling, percent of portfolio, 1/n remaining years, sensible withdrawals, 95% rule, endowment (yale), and hebeler autopilot ii
- side-by-side comparison so you can see how each performs
8 asset classes
- us equities, sg equities (sti), international (msci), bonds, reits, gold, cash, cpf
- pre-built allocation templates or build your own
- correlation matrix, markowitz portfolio stats, glide path configuration
dashboard & other features
- fire number, progress tracking, years to fire
- “what if” analysis, one-more-year impact
- risk assessment across 6 dimensions
- passive income breakdown for post-retirement
- 3 onboarding pathways (goal-first, story-first, already fire)
- simple and advanced modes — start simple, go deep when ready
- json export/import, excel export
- comprehensive reference guide with eli5 explanations
- retirement preparation checklist
full transparency — this was vibe-coded with the help of claude code. the formulas are based on official sources (cpf board, iras, ura, mom) and i’ve eyeballed the numbers to check that the math looks right, but i haven’t formally audited every calculation path. if you spot anything that looks off — a cpf rate that’s wrong, a tax bracket that doesn’t match, a simulation result that seems fishy — please let me know. bug reports and corrections are genuinely appreciated and will help make this more reliable for everyone.
this is a fully client-side app. there is no backend server, no database, no user accounts, and no tracking. all computation runs in your browser using a web worker. your financial data is stored in your browser’s localstorage and never transmitted anywhere. you can verify this yourself — the network tab will show zero data being sent.
this will always be free. no premium tier, no paywalls, no “sign up for advanced features.” i built this because i wanted a proper tool for my own planning, and i believe everyone in singapore should have access to comprehensive retirement planning without paying for it.
i’m not a financial advisor and this tool is not financial advice. it’s built for educational and planning purposes only — to help you explore scenarios and understand how different assumptions affect your retirement projections.
i’d really appreciate any feedback that can make this more useful — whether it’s a feature you wish it had, a ux improvement, or a bug. drop a comment here or dm me. this is very much a community tool, and i want it to serve the community well.
link: sgfireplanner.com
hauntingbluejay8690 • 52 points •
havent tried everything, but just wanna say thank you for your contribution and effort. 💪
apitop • 32 points •
fas hate this guy.
delicious_willow_733 • 7 points •
capitalist elites hate this guy.
starrynight0000 • 14 points •
had a go at it - thanks for making this v comprehensive and “fit for sg”. i never projected the numbers (esp. nw) as to what it would look like at age 90, and was presently surprised :d
zidane4life • 11 points •
how about an option for couples with combined finances?
dreaming_1986 • 11 points •
the expected returns for a few investment classes seem to be on the high side - i.e. dividends at 8% and cash at 2%.
ill_relation8266 • 4 points •
got it, will make sure the default values are more realistic
pastlettuce8943 • 14 points •
amazing. this should be pinned.
tenbre • 7 points •
omfg.
edit: ok i just saw it in the side bar. wow this thing is insane.
i want to model having kids and having tiered reduction of expenses as the kids go independent. or alternatively instead of a single fire event, maybe multiple tiers of reduction in expenses. is that weird.
ddanieltan • 7 points •
looks really comprehensive but also a little intimidating because of all the tweakable settings. perhaps you can make some starter videos showing how to use it?
ill_relation8266 • 2 points •
i’ve been thinking about adding a guided onboarding flow — something where you just answer a series of questions step by step, rather than being hit with everything at once
that said, for most people (assuming no major lifestyle changes), the first-page estimate should already be reasonably accurate. the challenge is that all the finer details are needed for more precise modelling, so you’d eventually need to fill in everything that applies to you.
sounds like the “simple” option still isn’t simple enough though 🤣 — let me think about how to streamline it further!
articland05_reddit • 1 points •
same here. after keying in the income, age details the next screen is daunting. not sure what to see also…
isthisreallyit1234 • 6 points •
guys, this is insane and wonderful calculator i can only dream of making that is singapore-centric and most relevant to us.
just want to add that for people who want to retire early before 65, only liquid networth should count to fire number to be realistic since cpf can’t be touched until 65 onwards. currently it is including cpf as well giving me an earlier than expected fire age :)
the other is that the returns for equities, reits, cash etc are all too high, also contributing to an earlier fire age. must be a morale booster for many lol. some tweaking will do to make it more realistic, this app has everything! fantastic job op.
ill_relation8266 • 1 points •
got it, will think of how to better treat the illiquidity of cpf for those intending to retire before 65
the default return is calculated from historical averages which skew optimistic. i have already pushed a quick fix of the estimated return to be in more meaningful range, let me know if it looks good
on the other hand, you can actually customise the expected return for each asset class. it’s in the allocation section under advanced mode (https://imgur.com/a/jwoyqhz)
arcana75 • 1 points •
why can’t cpf be touched until 65? what happened to withdrawing excess of frs at 55?
rahjinoh • 3 points •
first to star your repo! 👍🏼💪🏻
bluesodeath • 3 points •
awesome tool! loving it.
for the property segment, as most property is co-owned, would be great if a setting can be added to the property segment to only take a % of all the values (e.g. property value, outstanding loan) into the calculation. this is for those calculating as a single person, and not as a family unit. i could just manually divide now and input the divided values, but i think having that setting is more intuitive. for consideration. :)
bluesodeath • 3 points •
also, for the withdrawal comparison summary, would be cool to have a column that sums the total amount withdrawn in entirety and the terminal portfolio for each strategy.
funkycucumber • 3 points •
hi this is by far the most comprehensive singapore fire calculator i’ve seen so far. thankyou so much for your hard work to this and for making it free for all :)
i’ve tried it and some feedback:
- would be good if u allow us to customise the returns % for our assets, i don’t think emergency funds most keep in banks hit 2%. i’d want to be more conservative on my global etfs return as well, i feel 8% is a bit too optimistic (for me).
- i don’t quite understand how to interpret the number of years to full fire. if i key in retirement age as 58 and it tells me i can fire at 41, is it referring to coast fire? even if i select my option as standard fire? i definitely don’t think my portfolio is sufficient for full fire at 41 assuming 3% swr so something seems off somewhere… not sure if you get what i mean.
ok so i adjusted my retirement age to 41 then it tells me i receive financial independence at 41 but portfolio depletes at 85. i’ve set my lifespan to be till 90. this doesn’t seem to meet the definition of financial independence?
ill_relation8266 • 1 points •
thanks so much for the kind words and the detailed feedback!
- you can actually customise the expected return for each asset class — it’s in the allocation section under advanced mode (https://imgur.com/a/jwoyqhz). but the fact that you couldn’t find it tells me it’s not discoverable enough — i’ll think about how to surface it better.
- you’re right that the fire age looks too optimistic for most people. the default return assumptions are likely too aggressive, and there’s also a known issue where cpf balances are being counted toward your fire number before age 55 (when you can’t actually access them). both of these would pull the fire age earlier than it should be. will be fixing this soon.
really appreciate the feedback, this is exactly the kind of thing that helps me make it more realistic and useful.
funkycucumber • 1 points •
ah it might be because i’m fully using my mobile to key in everything, there wasn’t a visible option to key in customised return. i also wasn’t able to see the hover over text explanations you had for the different headers! i’d try again on my macbook another day :) thanks for your explanations and looking forward to the improved version of this lovely calculator. brilliant job once again!
sniperphantom • 2 points •
fantastic project!! love it. maybe a bug or i missed something but annual expense data was used in a straight line beyond retirement. for eg, 100k annual expense is still 100k expense every year for the next 40-50 years. did i miss an input to adjust expense with inflation?
ill_relation8266 • 1 points •
great question — the app does account for inflation! by default, the projection shows values in real 100k stays $100k — it represents the same lifestyle cost each year.
to see the actual inflated amounts, switch to nominal mode \[[https://imgur.com/a/2nt3pnq\]](https://imgur.com/a/2nt3pnq]) on the projection page. you'll see expenses grow each year with the inflation rate (default 2.5%). for example,100k today becomes ~164k in 20 years at 2.5% inflation.
i’ll probably add a tooltip to make it clearer, or perhaps make nominal $ the default
art_dragon • 2 points •
this is seriously cool - thanks for sharing.
angmlr007 • 2 points •
this is amazing. thank you for building this and making it available to all of us.
emergency-grade-3672 • 2 points •
thanks boss. will try it soon. curious to see the different types of fire included in the list and how far am i on track
ill_relation8266 • 1 points •
realistically, only “actual fire” is the one that truly matters.
coast fire is the point where your portfolio is large enough that, even without further contributions, compound growth alone will carry it to your target retirement number by your desired retirement age. you stop saving aggressively — but you also don’t touch the portfolio. this gives you the freedom to take a lower-paying job you enjoy more, or simply spend more of your income on yourself.
barista fire takes it a step further: you shift to an even lower-earning role and begin drawing down from your portfolio to bridge the gap. this has more strategic value in the us, where a part-time job can provide access to employer-sponsored healthcare, which is a meaningful benefit that’s less relevant here in singapore.
fodderfries • 2 points •
always free. open source. hes the goat
arcticglaceon • 2 points •
why does it say i can fire by 30 years old but in the salary section it models me working until 65?
ill_relation8266 • 1 points •
you need to select the age you actually stop working by keying in retirement age at 30/31 in the first section
arcticglaceon • 2 points •
i see cool. if it’s not too much to ask, could you put up all the math as a document (preferably latex but i’m not gonna be picky haha) somewhere? maybe ask claude to generate it. would love to see specifically how cpf, everything etc is calculated.
ill_relation8266 • 4 points •
yeah, it’s on my to-do list! wanted to push the app out first and let feedback guide what to prioritize next.
hopeful-fee6134 • 2 points •
amazing, thank you!
no-problem-4228 • 2 points •
this looks very good
blackfinorcasg • 2 points •
very good. saw your previous post but this is a huge progress.
astrugglingfather95 • 2 points •
hey, just had a go at it and it’s pretty amazing! but one question. when i try to alter the house mortgage portion via oa, it doesn’t seem to reflect correctly in my cpf table? specifically changing the mortgage amount remaining does not change the predicted cpf amount in the table.. or am i doing it incorrectly?
ill_relation8266 • 1 points •
thanks for flagging this! if it’s not behaving the way you’d expect, it’s almost certainly a bug on my end 😅 i’ll get it sorted out asap.
edit: but just to check are you referring to the cpf preview table in the input section, or the projection table in the plan section?
redditforfun32 • 2 points •
thank you boss
outrageous_march_219 • 2 points •
thank you!! awesome work
inspire_me03 • 2 points •
thank you. this is so helpful
individual_budget_71 • 2 points •
u/ill_relation8266 this is really amazing! had a go at it.
i’m wondering if you can choose which “wallet” the financial goals expenses in the networth category comes out of. i.e. the hdb downpayment should be coming out of the cpf oa account, but currently it calculates it as coming out of the liquid networth.
cruisingthry247 • 2 points •
i’m taking a stab at it now.. may i suggest other fields?
marital status : no divorced? widow/widower?
as for your ‘stress tests’ - consider including other items ie death of spouse, major illnesses, lost of job, double income to single income etc.
under ‘income’ - assuming i am at ‘coast fire’ stage now, and living off my dividends, where do i input these?
let me continue to tinker with it..
pratakosongpls • 2 points •
set up a buy me a coffee link!
princemousey1 • 0 points •
we don’t call it monte carlo here. it’s rws/mbs.
duepomegranate • -4 points •
quite scared you are asking people to debug your vibe coding.
inspirited • 7 points •
lol, even an experienced programmer might struggle to build something this well received. op has a good sense of the real gaps singaporeans face in financial planning, and also strong ux and design thinking might i add. don’t be so salty.
kyith • 1 points •
actually i only tried the safe withdrawal rate functionality and i really don’t understand what it is trying to do.
ill_relation8266 • 1 points •
thanks for giving it a try :)
so… some context on what the app is trying to do. i originally built this as a personal excel sheet for my own fire planning, then figured it might be useful for others too. the app is structured in 3 layers, each going a level deeper:
- the first page is meant to be the “aha moment.” you punch in a few numbers, age, income, expenses, savings. and it immediately tells you when you could realistically stop working. a lot of people i’ve spoken to either think early retirement is completely out of reach, or that it’s so far away there’s no point thinking about it. the quick calculator is meant to challenge both assumptions.
- the inputs section lets you get more realistic. once you’re curious, you can layer in cpf, property, income growth, healthcare, goals. all the singapore-specific details that make your projection less “back of napkin” and more “actual plan.”
- the analysis section is where the swr stuff lives, and it’s really about answering “but will my money actually last?” once you have a fire number and a plan to get there, the natural next question is whether a 4% (or 3.5%, or whatever) withdrawal rate will actually survive 30-50+ years of real market conditions. so it runs your plan through 10,000 random market scenarios, tests it against every historical period since 1928 (backtest), and stress-tests it against specific crashes like the gfc or asian financial crisis. the goal is to give you confidence (or a reality check) on whether your drawdown strategy holds up.
i think the issue is that if you jump straight into the swr/stress test section without the context of sections 1 and 2, it’s not obvious what it’s optimizing for or why. that’s a ux problem on my end. i need to do a better job guiding people through the flow and explaining what each analysis is telling them.
would love to hear what specifically felt confusing. whether it’s the inputs it’s asking for, the outputs it’s showing, or the “so what” of the results. happy to iterate on it 😊
kyith • 1 points •
i put in 45 years old, then i have 1 mil, in a 50% us equities, 50% 10-year treasury bond, spending a starting 30k. it shows that based on constant inflation adjusting my portfolio will probably not die with 0 fees which is right.
but you should really present each of these separately. only people like me or hard core people know what is a guyton klinger, what is a vpw and showing one line does not help much because how many people know that is the worst of the worst or is that the median?
scissorsonmydesk • 1 points •
thanks for building this! just tried and not sure if i’m understanding the property section and projections right.
for example, i can input that my mortgage will be fully paid by cpf. but clearly, this only holds if i have sufficient cpf oa balances (if not, it will have to come from the liquid assets and counts as an expense).
but the projection section does not seem to account for the fact that i may have to continue to pay mortages with early retirement and my cpf oa could be fully depleted. say i set an early retirement age of 40 - the projection shows that the cpf oa balances somehow goes to 0 at 41 (why?) and then there’s no projections of whether my cpf oa balances can somehow last all my mortgages for the loan tenure of 25/30 years.
appropriate-energy69 • 1 points •
care to share the repo?
ill_relation8266 • 1 points •
you can find it here
remarkremedy/fireplanner
inspirited • 1 points •
wow thanks for the confidence boost! https://imgur.com/a/lcowthl
ill_relation8266 • 1 points •
thanks for the feedback! the initial estimation intentionally keeps things simple — just the core inputs needed for a quick fire projection. healthcare and mortgage details come in the later sections, where you can fill in your specifics for a much more accurate picture. trying to strike that balance between “easy to get started” and “detailed enough to be useful.”
realistically for your case if you got the healthcare and housing settled, and really only spends 24k going forward you could fire real soon, but you’ll have to ask yourself what you want to spend your free time doing :)
massive-building9261 • 1 points •
salute 🫡
legitimate-wish-5870 • 1 points •
thanks. can i just assume that this is only for single individual or can it also work as a calculator for a couple?
ill_relation8266 • 1 points •
currently it is only for single individual, i’ll look to implement it for a couple in the future versions.
powderednuts • 1 points •
super cool tool!! always wanted to have a singapore specific retirement planning tool after seeing some financial planners on youtube going through ones for us.
the planner is super thorough and goes through more than i would have ever considered on my own.
i noticed that having the mortgage fully paid by cpf means we are not able to see this as an expense in the projections but i do see that it deducts from the cpf oa balance (all good here) but i wonder if it would be helpful to visualize all expenses even if they are not cash expenses.
also, in the projections i think it would be clearer if “income” was stated as “net income” in the main table even with the breakdown provided in the tax & cpf section
ill_relation8266 • 1 points •
thanks for the feedback! will implement the suggested changes
snoopyexpress • 1 points •
thank you very much for this tool.. really enjoyed using it on round 1. next attempt, i will so it on a big screen. eaaier on the eyes.
if i read it correctly, it started with 67, then 59 and then finally i can fire now. 🤪🥳❤️✅🤝🇸🇬
malkyfreo • 1 points •
thanks i will try it
courageous_carrot • 1 points •
this is super detailed and i was more and more amazed the deeper i dove. thank you for the hard work!
(p.s i vibe code with claude at work too - nothing serious, just for pocs - and i know blah blah blah ai makes everything easy but there’s still a lot of work that went into this!)
nomoreheadphonejack • 1 points •
this is great, can tell alot of effort was spent on it. really useful for me
hauntingbluejay8690 • 1 points •
hi, not sure if it is a bug, i noticed that my mortgage amount decreased over the years in expense breakdown of projection.
i’m expecting a constant mortgage expense. so this is making the prediction more optimistic than expected.
duepomegranate • 1 points •
op said by default inflation is handled by showing everything in today’s dollars. so a mortgage payment that is fixed will become cheaper over time, whereas other expenses stay constant.
killswitchsig • 1 points •
hi, thanks for doing this. we need an option to donwload all the input into a txt file. that txt file can also be reloaded back into the site if we want to revisit this calculator again. we can’t be inputting all the data each time we want to use the calculator
killswitchsig • 1 points •
ok i think i saw the json export/import. so that does solve this issue. thx
killswitchsig • 1 points •
for cpf-oa balance, need the option to say that anything above 20k is invested thru cpf-is and then we can also select our growth rate for that investment. because without this the cpf-oa is only assuming 2.5% increase but we can do better when we do cpf-is
many_conference8126 • 1 points •
nice i fired
ryushinex • 1 points •
god bless this soul.
bunny-danger • 1 points •
hey thanks for doing this. it’s a lot of fun.
i noticed there’s only room for 1 property. am i missing something?
southdevelopment9574 • 1 points •
nice
justasmallkid • 1 points •
love this
dirkp78 • 1 points •
thanks for the effort - will give it a try!
competitiveweather63 • 1 points •
this is awesome !
djmax91 • 1 points •
thank you sir
pitpot84 • 1 points •
this is fire!
kyith • 1 points •
i am testing the cpf logic against the internal calculator we use to plan for our clients. with someone having 260k in sa, 70,000 income growing at 3% a year, the full retirement sum on your one shows 290k which is like one year before the one that i get (300k)
this may be because you are still using an old frs data.
your cpf ra at 65 is about 455k which is about 1 year difference.
but you should put out what you factor into the calculation because if not we won’t know what it factors what it doesnt
bitter-flow-1104 • 1 points •
bro this calculator is awesome. thanks for doing this for the community! 🎉
traditional_bell7883 • 1 points •
thank you. putting placeholder here to come back later.