Methodology
Symmetric framing
Both households start with the same liquid wealth Wโ = down payment + buy-side closing costs. At t = 0 the renter invests Wโ; the buyer spends it on the purchase. Each month, the side with the lower outflow invests the differential. Annual tax effects (HRA refund, MID benefit, mutuo deduction, EWF add-back, Box 3 drag, IT bollo) are netted into the buy-side cash flow once a year so they ripple through the differential.
Net worth definitions (asymmetric on purpose)
- Buy:
(V โ L) + P_buy. The accounting view of home equity plus portfolio. We do not subtract sale-side transaction costs or a notional home capital-gains tax โ if you sold today, ~6โ10% in agent/notary/ transfer costs would come off. - Rent:
P_rent โ unrealizedCGT(P_rent). The country-specific capital-gains tax that would be owed on liquidation is subtracted (US LTCG ยฑ NIIT, IT 26%/12.5%, NL 0% because Box 3 is paid annually).
Mortgage
Annuity (standard amortization): M = Lโ ยท r / (1 โ (1 + r)^โn) with r = monthly rate, n = term in months. Monthly split: interest = balance ร r; principal = M โ interest.
Portfolio
Two buckets: equity ETF and government bonds, allocation slider, monthly returns via (1 + annual)^(1/12) โ 1, annual rebalance to target. Cost basis is tracked per bucket so realization tax is computed correctly.
United States
- Closing costs default 3% of price.
- Property tax = rate ร home value (annual, applied monthly).
- PMI = pmiRate ร original loan, while LTV > 80%.
- Itemize vs standard each year. Itemized = deductible mortgage interest (interest scaled by min(1, $750k/avgBalance)) + min($10k SALT cap, property + state-local income). If itemized > standard deduction (2025: $15k single / $30k MFJ), we apply the federal marginal rate to the excess.
- Realization tax on rent portfolio: LTCG rate (default 15%) + NIIT 3.8% if toggled.
Netherlands
- One-time: 2% transfer tax (overdrachtsbelasting), or 0% for first-time buyers below the threshold (~โฌ525k); ~1.5% notary + advisor; NHG premium 0.6% of loan when applicable.
- Recurring: OZB ~0.1% ร WOZ; Eigenwoningforfait at 0.35% of WOZ (2.35% above ~โฌ1.31M).
- HRA: deductible at min(marginal rate, ceiling โ 36.97%) โ only for annuity products. Net annual buy-side tax effect =
min(marginal, ceiling) ร interestPaid โ marginal ร EWF. - Box 3: 2025 transition deemed yield ร 36% on portfolio above the per-person threshold (~โฌ57k single, doubled if partnered). v1 treats the whole portfolio as the "investments" bucket.
Italy
- One-time (prima casa, private seller, non-luxury A/2โA/7):
- Imposta di registro: 2% ร cadastral value
- Imposta ipotecaria + catastale: โฌ100 fixed (โฌ50 + โฌ50)
- Notary 1.5% (parameter)
- Real-estate agent 3% + 22% IVA (parameter)
- Recurring: TARI flat (annual); IMU exempt (prima casa, non-luxury).
- Mutuo deduction: 19% ร min(interest paid in year, โฌ4,000) โ credit against IRPEF, prima casa only.
- 0.2% bollo on portfolio market value, annually.
- Realization (rent-side CGT): 26% on equity ETF gains, 12.5% on Italian/EU government bond gains.
Policy simulation (v1.1)
Several thresholds are inflation-indexed in real life: the NL Box 3 allowance, the US standard deduction and SALT cap, the IT mutuo cap, etc. Each of those exposes a sibling annual-growth field. At year tick N, the engine evaluates the parameter as base ร (1 + growth)^(N โ 1), so year 1 always matches the base value and growth compounds geometrically afterwards.
Set the growth to 0% for "frozen at today's value" (this is what historic IT mutuo caps look like). Use 2% to approximate CPI indexation. Negative values let you simulate cuts (e.g. SALT cap halving in year 5 โ though we only support smooth compounding, not step changes; that's a v2 feature).
One-time costs (transfer tax, registration tax, NHG/first-time-buyer thresholds, cadastral value for closing) aren't escalated since they only fire at t = 0.
Open assumptions (v1)
- Dividend withholding tax on equity ETFs ignored.
- NL Box 3: whole portfolio in the "investments" bucket โ bond/cash distinction is v2.
- IT: distributions ignored, taxes only at realization.
- Maintenance is a flat % of value โ no shock years.
- HOA / TARI / insurance are flat โ no inflation modeled.
- NL partnered case uses the same marginal rate for both partners (v1 simplification).
- Italy luxury homes (A/1, A/8, A/9) are excluded โ IMU exemption assumed.
- Annual rebalance treated as cost-basis-preserving (a v1 simplification).