financial health dashboard

him (34) & her (32) in 2026 · ages shown are his unless stated · all amounts in S$. Projections use today's (2026) dollars — inflation is already accounted for. Amounts are click-to-edit; everything saves on this device.
Total net worth
Investments & cash
IBKR + emergency cash — money you control directly
CPF (known)
Flat, after loan

What you own and owe

ItemSourceAmount (S$)

Net worth history

DateNet worthInvest. + cashChange
Snapshot captures the balance sheet as currently edited. Update IBKR/CPF figures first, then snapshot — monthly or quarterly is plenty.

Where the money sits

HDB loan — 91 Dawson Rd

Outstanding
Rate / payment2.60% · S$2,185/mo
Months to payoff
Projected payoff
Paid from CPF — no cash leaves the household — and split equally. Fully paid off around age 54, right when you plan to retire. If you ever sell, the "refund CPF with interest" rule just moves money from one of your own pockets to another; it doesn't make you poorer.

Where these numbers come from

  • Flat (est. S$810k): 2026 comps, Dawson Rd 3-room 2016-lease blocks: S$780–830k. Blk 91: S$825k (May 2026, storeys 28–30). Adjust for your floor.
  • IBKR: VWRA 935.06 units + 21.44 IBKR grant shares + S$4,080 cash. The account is in his name only — being fixed Q3 2026.

Money map — who pays for the household, at every age

The plan in one picture: four sources of money take turns carrying the household. Hover any bar for its job; the vertical lines are the decision dates.

Try a bad year

(playbook: cut spending to S$8k/mo)
· insurance pays S$
Either death pays S$1.2M term cover (the two policies mirror each other), the HDB loan is wiped by mortgage insurance (HPS), and the survivor's spending is taken as S$8k/mo. When this is ticked, the income-lost tick above is ignored.
CPF is untouched by market crashes (government-guaranteed ~4%) — that's the household's safety layer doing its job. The crisis playbook (plan §8): change nothing, keep investing monthly, and only ever sell investments to fund retirement.

Where you'd stand

Net worth
vs today
Investments + cash
Flat, after loan
Cash alone covers
Cash + investments cover
Retirement odds at this portfolio
To recover the same odds
Odds rows re-run the Retirement tab's simulation with the crashed portfolio as the starting pot (crash dial only — income loss and death are dollar-tested above).

For scale

Assumptions

  • Honest simplification (audited 6 Jun 2026): the OA pot is counted as a sure sum though it's really invested in shares — rounds the odds up ~1–2 points.
  • CPF LIFE is assumed to keep pace with inflation — true if the “escalating” payout option is chosen at 65; the flat option would cost ~2 points. Both documented in the plan (§5e).
  • Found 7 Jun 2026: the CPF LIFE amounts here come from CPF's standard quotes, which aren't inflation-adjusted — in today's money the inflation-protected version pays ~30% less (~S$28k/yr household, not S$40k), worth ~4–5 points; carried as a known correction until the June review re-baselines (§5e).
S$/mo,
Car money is money not invested (and, if kept for life, extra retirement spending). Jun 2026 reality check: Cat A COE S$126k; a mass-market car ≈ S$2,500/mo all-in.
in
From the June 2026 housing analysis (sell the Dawson flat, move nearby). Two costs. Every month: the bigger housing bill — ≈ +S$1,350/mo for the 5-room, +S$4,050/mo for the condo — is money that never gets invested while the new loan runs (25 years from the move; a small upkeep difference carries on for life). The move year: S$150k of renovation plus stamp duty, agent and legal fees (≈S$200k all-in for the flat, ≈S$225k for the condo) — that year’s investing is skipped entirely to pay for it, and whatever it doesn’t cover comes straight out of the pot, like selling investments to pay the renovator.
S$/mo from for yrs
Allowances or care costs for either side's parents — household total, today's S$. While you're working it's money not invested; in retirement it's extra spending. Set this dial only for costs above the ~S$2k/mo already inside the budget: today's spending includes ~S$2k/mo to parents (confirmed 7 Jun 2026), and the S$12k/mo retirement figure above carries that S$2k to age 95 — generous late in life, since allowances naturally end. What that embedded S$2k does NOT cover is care-cost escalation: nursing-level care at S$3–5k/mo would mean +S$1–3k/mo here, typically landing in his 50s — the fragile bridge decade. For scale: +S$1,000/mo for 15 years ≈ S$180k ≈ roughly 1 year later on the retirement frontier.
Two changes, both late in life. First: older people simply spend less, so from 70 the everyday spending in the simulation drifts down a little each year — by 80 it's ≈S$10.4k/mo instead of S$12k, and it never goes below ≈S$9k/mo (all in today's money; healthcare still rises per the slider above). Second: at 75 the flat gives back ≈S$250k — selling part of its lease back to HDB or moving somewhere smaller — since there are no children to leave it to. Together: retire ≈1–2 years earlier at the same confidence. It also makes a lower gauge reading acceptable: with CPF LIFE paying for life plus the flat, "the money runs out" means cutting back, not going broke — so amber (75–84) is a fair target in this mode. One honest trade-off: the same two changes could instead pay for more spending while you're young and healthy, rather than an earlier exit — they buy one or the other, not both.
probability the money lasts
(2,000 simulated paths, 17% vol, lognormal — calibrated within ~2pts of plan §5)
Pot on retirement day — typical future
"Enough forever" reached by
Pot on retirement day — unlucky (1 in 10 worse)
CPF LIFE (paid for life)

When can we go? — the frontier

Same simulator, same dials — each point re-runs the 2,000 futures with only the retirement age changed, so anything you toggle on the left bends the whole curve. The orange dot is the gauge above; green dashes = 85 of 100 (the plan's “comfortable”), amber = 75. Where the blue curve crosses the green line is the earliest comfortable retirement.

What happens to the money — 2,000 possible futures

How to read it: nobody knows how markets will do, so we simulate 2,000 different futures and show three of them: a typical one (middle of the pack), a unlucky one (markets disappoint — only 1 in 10 futures is worse), and a lucky one (1 in 4 is better). The one to watch is the red line — if it stays above the floor, the plan survives bad luck. Cross the green dashed line and you've banked 25 years of spending — "enough forever", because at that size the pot's typical growth each year is more than a year of spending takes out, so it refills itself and never needs to shrink (the "4% rule"). (Chart tracks investments only — excludes the flat, cash buffer, and CPF SA, which becomes the CPF LIFE payout.)

On track? — actual snapshots vs the original 2026 plan

Latest snapshot — IBKR investments only
Percentile among the plan's 2,000 futures
vs the plan's median path
Retirement age at this pace
How it works: the bands are simulated once from the plan as agreed in June 2026 — S$235k start, S$77k/yr + pay rises invested, retire at 54, S$12k/mo — and never move. They're the yardstick; reality is the dot. Every snapshot saved on the Overview tab lands here automatically, using the IBKR value only (matching the fan chart above — cash, CPF and the flat are excluded; snapshots saved before this card existed approximate it as investments + cash − S$45k). Above the blue line: ahead of plan. Hugging the red line: living the unlucky future. Tripwire: two consecutive snapshots below the 25th percentile (armed from Mar 2027 — the first year's readings are dominated by contribution timing, not markets) → a red do-now item appears on the Audit tab and the June review moves forward and re-check contributions, the spending cap and the retirement date — never the resolve to stay invested. The simulator's sliders don't touch this card: changing assumptions can't move the yardstick.

What spending really costs — the dollar you don't invest

Uses the growth slider above (4.5%/yr after inflation). A dollar spent is a dollar that never gets invested — its true cost is what it would have grown into.
If invested instead, worth at…Today's S$
Each S$1 today → at 55
How much later you'd retire
What it adds up to by 65

Career assumptions (the path you agreed in Jun 2026)

His salary (2025 actual)
Her salary (2025 actual)
Her age in 2026
Anchored to 2025, the last completed year; everything from 2026 onward is projection. Log each year in the Reality check below once it closes.
to S$ in
to S$ in
% at ages
% at ages
AgeHim (today's S$)Her (today's S$)Together (today's S$)Together (S$ of that year)

Projection to 55 — household income

What each pay rise buys — investing and lifestyle

Tax and CPF take ~35% of every pay-rise dollar first. The slider on the left decides how the take-home rise is divided: the invested share is what moves retirement earlier (promotions do the heavy lifting from ~40 onward), the spent share makes everyday life nicer along the way.

"send schedule to retirement" copies this page's year-by-year extra-investing amounts — at the current slider setting — into the Retirement tab's simulator, so its odds are computed from these exact numbers instead of the built-in simple guess. The Retirement tab says when it's using your sent schedule, and has a link to switch back. Re-send after moving the slider — the simulator keeps using the last schedule you sent.

Reality check — record your actual salaries each year

YearHim (actual)Her (actual)vs projection
What you log here appears as dots on the chart. If reality runs below the line for 2–3 years, the retirement date slips — re-run the June review.
Estimated value
edit on the Overview tab
Loan left today
2.6% HDB loan · S$2,185/mo from CPF
Your share of the flat
value minus loan
Recent sales (6 mo)

Keep the HDB loan, or switch to a bank loan?

Banks now charge about1.45% vs HDB's 2.60%
New monthly payment (still from CPF)
Saved over the 3-year locked-rate period
Likely saving over the whole 20-year loanS$15k–36k in most futures
Invested, that's worth at 55
Effect on the retirement date

Spare money: invest it, or pay the flat down faster?

If the loan rate is…The better home for spare money
1.45% (bank rate now)Invest — markets beat the loan in ~4 of 5 futures
2.60% (HDB today)Invest — markets win in ~3 of 4 futures
around 4%Still invest, but the edge narrows to ~2 in 3
above ~5.5%Pay the loan down — a sure saving that markets only beat half the time
The agreed rule (5 Jun 2026): keep the monthly investing going and let the loan run its course — extra repayments only start making sense if rates ever climb past ~5.5%, which would come up at the June review anyway. (Odds are over 10-year stretches; paying down also locks money into the flat, where you can't spend it.)

What flats like yours sell for

Loading live sales data from data.gov.sg…
Every dot is a real sale in your cluster — 3-room, 65 m², 2016 lease, blocks 87–93 Dawson Rd (SkyVille). Green dots are your block (91). The blue line is the median of the previous 6 months. The full sales record since 2020 is saved inside this page; each time you open this tab it also checks data.gov.sg for newer sales and adds them.

Latest sales in the cluster

MonthBlockFloorPrice
Reminder: this is an owner-occupied home, not an investment — paper value doesn't change the retirement plan. Track it for net-worth accuracy and so any future move is decided with real numbers.

His coverage (audited 5 Jun 2026 — verdict: keep all)

PolicyCoverSumS$/yr
Singlife MyProtector Term II (to 70)Death / terminal illness1,200,0002,131
— TPD Advance Cover Plus IIPermanent disability1,000,000
— CI Advance + MultiPay CI IIICritical illness300,000
GE SupremeHealth P Plus (since 2007)Hospital bills, private tier1,134
GE TotalCare Elite-P riderCovers the co-payment1,290
Total premiums~4,555
  • Death payout = 10 years of his income — generous for a household with no children. Green.
  • Critical-illness cover (S$300k) ≈ 2 years of household spending; the industry guideline suggests ~S$470k. A moderate gap that shrinks every year as your savings grow. Amber, accepted.
  • Disability cover only pays if the disability is total and permanent — it won't replace income for partial or temporary cases. Income-protection insurance was reviewed and decided against. Amber, accepted.
  • No beneficiary was ever nominated after the policy moved from Aviva to Singlife — will be handled together with the wills. Red.

Who pays if something happens?

If this happens…What paysGap?
He diesS$1.2M Singlife + her income continuespaperwork: no beneficiary named yet
She diesS$1.2M Singlife + HDB loan cleared (HPS) + his income continuespaperwork: beneficiary nomination unconfirmed
He's hospitalisedGE private-tier plan; rider covers the co-paymentcovered
She's hospitalisedHSBC Life Shield Plan A (private tier); Enhanced Care rider covers the co-paymentcovered
He gets a critical illnessS$300k payout + savingsbelow guideline, accepted
She gets a critical illnessS$300k payout + savingsbelow guideline, accepted
He's permanently disabledS$1M payoutpartial/temporary disability not covered, accepted
Either loses their jobS$45k cash + the other income; spending cut to S$8k/mo if neededcovered indefinitely
The plan leans on both incomes until ~retirement — and both sides are now insured almost identically. The remaining work is paperwork, not coverage: confirm both Singlife beneficiary nominations with the wills.

Her coverage (audited 5 Jun 2026 — verdict: keep all)

PolicyCoverSumS$/yr
Singlife MyProtector Term II (to 70)Death / terminal illness1,200,0001,844
— TPD Advance Cover Plus IIPermanent disability1,000,000
— CI Advance + MultiPay CI IIICritical illness300,000
HSBC Life Shield (Plan A, since 2019)Hospital bills, private tiernot on file
HSBC Life Enhanced Care (Plan A) riderCovers the co-payment
  • Her policies mirror his almost exactly — same insurer, same structure, same sums, to age 70, and S$287/yr cheaper. Two well-matched stacks. Green.
  • Death payout = 8 years of her income. Critical-illness S$300k vs a guideline of ~4× income — same moderate, shrinking gap as his, carried deliberately. Amber, accepted.
  • Her policy also started life at Aviva (2019) — confirm the Singlife migration records and make her beneficiary nomination together with the wills. Red, same action as his.
  • Hospital premiums aren't in the documents on file — pull the figures from the HSBC portal at the next statement and they'll be added here.

The household's insurance philosophy

  • Insurance is for catastrophes, not savings. Buy cheap term cover for the disasters you can't absorb; invest the rest. No whole-life or investment-linked policies — they bundle expensive insurance with weak investing.
  • The premiums are tiny relative to what they protect: ~S$6.4k/yr for both of you (plus her hospital premiums, figure pending) ≈ 2.4% of household income, protecting against losses in the millions.
  • Cover runs to age 70, deliberately. By then the portfolio is the insurance — you'll have more in investments than any payout. Paying for life cover past that point is buying protection you no longer need.
  • Self-insurance grows every year. Each year of saving shrinks every gap in the table above. The CI gap that's "amber" today is on track to close itself.
  • Re-review triggers: a child, an income change >20%, a property transaction, any health diagnosis, or every June — whichever comes first. You don’t need to remember this: Claude runs the check automatically every 1 June and messages you; if one of these happens mid-year, just mention it to Claude and the review runs then.

Why audit at all?

A financial plan doesn't fail on average — it fails at its weakest link. The investing can be flawless and the plan still breaks on a missed deadline, an uninsured spouse, or money stuck in the wrong name at the worst moment. The audit hunts for those weak links. Most fixes cost a few hundred dollars and an afternoon; ignoring them can cost years.

How urgency is ranked: red = a hard deadline that can never be reopened, or a cheap fix for a catastrophic risk — do these regardless of mood or market. amber = slow leaks and structural untidiness — no single deadline, but the cost compounds every month you wait, or it's a risk you've consciously chosen to carry and should re-check yearly. green = working as designed; the audit's job is to confirm it stays that way.

The list, in order of urgency

Phone copy

Bakes today's saved data into one file for private hosting; phone edits don't sync back.

The plan — agreed Jun 2026 (today's S$)

Investing floorS$77,000/yr ≈ S$6,417/mo
Spending capS$13,000/mo
Pay risesinvest the share set on the Salary tab
The floor alone supports retiring ~55; floor + invested rises ~51–52. Heads-up (re-baselined 7 Jun 2026 on 2025 actual incomes): at S$13k/mo spending, about S$73k/yr is fundable vs the S$77k floor — a ≈S$4k/yr gap, closed by banking a slice of this year's rises or bonus, gone at his 2027 step (decision pending on the Audit tab).

What to actually do — onward

In each year's own dollars — what to transfer and spend. Invest = floor + ; spend allowance = the cap + the spent share of rises. Transfers of S$5k or more keep fees negligible.
YearInvest (S$/yr)≈ /moSpend allowance (/mo)

This year so far

Invested in
Since the start of 2026 — should be in by now
Actually put in since 2026
Running gap
S$
Log each transfer to IBKR in the month it happened — as many per month as you like, each deletable. Once you've logged anything in a month, your entries replace the statement's figure for that month. History to Apr 2026 is pre-filled from the statements, and the monthly refresh adds new statement months automatically.

Month by month — what went in vs what the year needs

MonthInvestedvs needed/moSource
Months with no bar are months nothing went in — that's fine, DCA here has always been lumpy; the year total is what matters. "Needed/mo" is that year's target ÷ 12.

If history repeats — the pot from here

to S$ in
to S$ in
Median pot at 54 (today's S$)
Middle two-thirds of futures
YearHis ageInvest (S$/yr)≈ /moSpend allowance (/mo)
The sandbox: US$11.6k (≈S$15k) of pretend money — the notional pre-registered in Paper_Portfolio_vs_VWRA_Tracker.md (verdict 5 Dec 2026; every position needs a written thesis + exit criteria there first). Nothing here touches the IBKR account, the net worth, or the retirement maths. The real plan stays boring; this page keeps score on whether the aggression would actually have paid.
Open positions are re-priced from the IBKR feed each time this tab opens.
Paper portfolio
P&L since start
Paper cash
vs the boring plan
same money in VWRA

Open positions

SymbolQtyAvg costLastTodayValueP&LWeight
Everything in US$ (assumes US$-denominated instruments). Quotes via the IBKR connector — typically ~15 min delayed. A position the feed can’t price falls back to cost and gets a tag.

Trade log

DateSideSymbolQtyPriceValue
Paper fills are frictionless: no commission, no spread, no slippage — so reality would be slightly worse than whatever this page shows.

Log a paper trade

or US$ @ US$
Look up a ticker, pick the listing, and the live price pre-fills. Type either a share count or a US$ value — the other fills itself from the price (fractional paper shares are fine). Backdate the date and edit the price to log an older fill.
Starting bankroll (US$)
US$ → S$ rate (display only)

Risk check

Thresholds are sandbox-generous: biggest position green <35%, amber <60%; drawdown green <10%, amber <25%. The household rule still applies on the real side: aggression lives here, on paper, only.

Theses & exit criteria

Pre-registered 6 Jun 2026 — at-a-glance mirror of Paper_Portfolio_vs_VWRA_Tracker.md (the doc is canonical; new positions need a written thesis + exit criteria there before entry, max 8 positions total). Erratum 1 (6 Jun 2026): fills restated to official 5 Jun closes — USAR 22.47, ASTC 33.50, SPRO 2.82; VWRA baseline 187.54. Entry-day context corrected: USAR −17.1%, ASTC −12.9%.
SymbolOriginThesisExit criteria
USARMineVertically integrated US rare-earth magnet chain (mine→magnet); policy-forced re-rating on a DoD offtake / price-floor deal amid China export controls. Entered after a −17.1% day (corrected, Erratum 1) — momentum risk accepted.Broken if: major dilution without offtake progress, or policy support lapses. Review (not auto-sell) at −50%. No averaging down; no trimming before verdict.
ASTCMineMicro-cap lunar-infrastructure pivot tied to NASA Artemis; pure narrative-momentum bet. Thin liquidity, story stock — sized accordingly.Exit if no binding Artemis-linked contract by Q4 2026, or close below US$16 (−50%). No averaging down.
SPROMineBinary FDA bet: oral antibiotic for complicated UTI, PDUFA 18 Jun 2026. GSK-partnered; Phase 3 stopped early for efficacy — approval favoured and partly priced in.Event-driven: exit or re-thesis within 5 trading days of the FDA decision, either direction. No adding before the event.
House rules (no mid-test edits): no averaging down · no trimming winners before verdict · no options · no resets. Verdict 5 Dec 2026 — all three must hold: beat VWRA by ≥3 pts · max drawdown ≤1.5× VWRA's · check-ins logged ≥20 of 26 weeks. Pass → real sleeve S$5–10k cap with wife's sign-off; fail any → no sleeve until Jun 2027.

Hyper-aggressive vs the boring plan

Your return since start
Same money in VWRA
What the aggression is worth
How the benchmark works: every trade’s cash flow is mirrored into VWRA at that day’s price — buy US$10k of anything and the mirror buys US$10k of VWRA the same day; sell, and the mirror sells the same dollar amount. The blue line is exactly “what if the same money, with the same timing, had gone into the boring plan”. Red minus blue is the honest verdict on the aggression — same fees (none) on both sides, so the comparison stays fair.
One dot per day this tab is opened (prices refresh on open). Open it daily for a clean curve — gaps just mean you had a life.
Credit-card optimiser: add the cards you hold, key in monthly spend by category, and this page works out which card to swipe where, what you're leaving on the table, and which cards to add or drop — HeyMax-style, but living here. Every rate, cap and fee is click-to-edit. Defaults seeded Jun 2026 from MileLion/bank pages — banks nerf cards constantly; verify before relying on a number. Nothing on this page touches the net-worth or retirement maths.
Miles earned / month
at current spend, optimally swiped
Blended earn rate
miles per S$1 across all spend
Left on table / month
vs best cards in the library
Expiring ≤ 6 mo (≈ KF miles)
across tracked pools

Cards you hold

CardBase mpdBonusBonus cap S$/moFee S$/yr
“Bonus cap” = how much spend earns the bonus rate each month; overflow earns base. You can both hold the same card — pick his/hers in the dropdown and add it once per person (the list only hides cards that person already has). Adding a card auto-creates its points pool below. Base/cap/fee are editable; to change a bonus rate, remove and re-add after I update the library, or tell Claude.

Monthly spend by category — MCC tracker

CategoryS$/moSwipe thisMiles/mo

Optimisation guide

1 mile = ¢

MCC lookup — which card for this merchant?

Type a merchant. Known SG merchants answer instantly from the built-in table; unknown ones get a best-guess from Claude. Either way you get the likely MCC, whether it earns, and which of your cards to swipe.

MCC gotchas

  • Excluded almost everywhere: insurance (MCC 6300), utilities (4900), education (8211/8220/8299), hospitals (8062), government/AXS, e-wallet top-ups (GrabPay etc.). They earn 0 on most miles cards — don't waste bonus cap on them.
  • CardUp / ipaymy can route excluded bills through a card for a ~1.8–2.6% fee. Worth it only when earn rate × mile value beats the fee: at 4 mpd × 1.5¢ ≈ 6% value → yes; at 1.2–1.4 mpd ≈ 1.8–2.1% → borderline, usually no.
  • Contactless ≠ inserted. Cards with contactless bonuses (e.g. HSBC Revolution) pay 4 mpd only on tap / mobile wallet; chip-insert earns base.
  • Online travel is often carved out of "online" bonuses (e.g. Citi Rewards excludes travel bookings and ride-hailing). Use a general or travel card there.
  • MCCs follow the merchant's registration, not logic. A restaurant inside a hotel may code as hotel. Check an MCC before a big purchase (HeyMax's MCC lookup, or ask the bank).
  • Refunds claw back points and can strand you below a min-spend; big-ticket items near a cap are better split across cards or months.

Miles & points pools — balances and expiry

ProgrammeBalance≈ KrisFlyer (rate ×)Next expiryAmount expiringStatusNotes / expiry rule
Parking strategy: KrisFlyer miles expire end-of-month, 36 months after earning — the clock runs whether or not you fly. Bank points only start that clock on conversion, so park points bank-side and convert when you're ready to book. Watch the short bank-side fuses: UNI$ die 2 years from the quarter earned, DBS Points on Woman's World 1 year from quarter; Citi Miles, Altitude points and 90°N miles never expire. Most banks charge ~S$25–30 per conversion — convert in big blocks, not dribbles. Cards labelled “KrisFlyer (direct)” (KrisFlyer UOB, Amex Ascend) feed this same KrisFlyer pool — there is no separate balance, and their 36-month clock starts at earn, not at conversion. Tip: add the same programme twice to track separate expiry tranches (e.g. KrisFlyer miles earned in different years). The “≈ KrisFlyer” column uses typical transfer rates — UNI$ and DBS Points ×2, Citi ThankYou and HSBC points ×0.4 (2.5 points per mile), Citi Miles and 90°N ×1 — editable per row if a programme changes its rate. To move a card or pool between the two of you, remove and re-add it under the other name. The ∞ button marks a pool as never-expiring (Citi Miles, Altitude points and 90°N get this automatically) — it drops out of the expiry maths entirely; pools that DO expire but have no date show an amber “add expiry date” nudge instead.

Notes

Saves on this device as you type, and rides along in the phone copy.