r/rupeeStories rupeestories.substack.com

NRI Retirement Path Optimizer

Compare US retirement, India return, and split-life paths before you make the move. This is a planning tool, not a tax calculator.

🔒 No login 📡 No data collected Runs in your browser
Uses simplified 2026 US tax constants, RMD overlay, optional state-tax stress, optional Social Security input, India tax stress assumptions, RNOR estimate, ACA premium-pressure testing, and split-life housing/travel assumptions. Split Life assumes US tax residency unless you separately model a full India return. Treat the output as a planning prompt, not advice.

Updated with accuracy fixes: today's-dollar Social Security, marginal relief on India tax, gross-up pull no longer double-counts, and Social Security during working years is now banked into taxable brokerage. Numbers may differ from previous saved scenarios or screenshots from older versions of the tool.
📖 Read me first — how this model uses your inputs click to toggle

What this tool does

Compares three retirement strategies side by side using your numbers. Inputs for your situation are blank by default. Modeling assumptions (growth, inflation, brackets) come prefilled with reasonable starting values that you can override.

Recent accuracy update: today's-dollar Social Security, marginal relief on India tax, gross-up pull no longer double-counts, and Social Security during working years is now banked into taxable brokerage. Numbers may differ from previous saved scenarios or screenshots from older versions of the tool.

Your personal inputs

Blank by default. The model will not run until these are filled in.

  • Current age + Years to target — defines retirement age. Projection runs from your current age through age 85 minimum.
  • Filing status — sets US tax brackets and standard deduction. MFJ uses $32,200; Single uses $16,100.
  • Base retirement spend / yr — in today's dollars. For Split Life, enter the recurring base spend excluding seasonal housing, storage, local transport, and extra travel costs entered below. The model inflates it each year. Example: $100k spend at 2.5% inflation becomes about $128k in year 10.
  • Household income / yr — working-years only. Used to size 401k contributions and taxable surplus.
  • Savings / yr — splits between 401k and taxable based on path. Path A maxes 401k first; Paths B and C cap 401k at the match and route the rest to taxable.
  • 401k match % — employer match. Prefilled at 4% as a generic default. Match dollars are capped at the contribution limit.
  • Account balances — starting amounts. Use 0 if you don't have that account yet.

How each editable assumption is used

  • Growth % (default 7%) — applied annually to 401k and Roth balances. Taxable accounts grow at growth − taxDrag. Cash grows at a fixed 4% (HYSA proxy) regardless of this input.
  • Taxable drag % (default 1%) — subtracted from growth on taxable accounts only. Simulates dividend and distribution taxes during accumulation.
  • Inflation % (default 2.5%) — inflates retirement spending and Social Security each year. Tax brackets, RMD tables, and the standard deduction are not inflated in this model.
  • INR / USD (default 90.5) — used in ROR years to convert 401k withdrawals and Social Security to INR for India tax.
  • Taxable gain % (default 50%) — portion of your taxable balance treated as unrealized gains. Affects withdrawal taxation. Example: pulling $10k from taxable with gain%=50% triggers LTCG on $5k.
  • Roth basis % (default 60%) — portion of your Roth that is contributions. Contributions are tax-free even before 59.5. Especially important in RNOR years — the model pulls Roth basis first.
  • State tax % (default 0%) — flat rate applied to ordinary income (401k withdrawals, Roth conversions, capital gains, taxable SS) in US retirement years only. Use 0 for TX/FL; try 9.3 for a CA-style stress test.
  • Social Security claim age (default 67) — year SS income turns on. The model uses your Estimated SS / yr as-is starting at this age, then inflates yearly.
  • Estimated SS / yr (default $30k) — annual Social Security estimate in today's dollars. The model inflates it forward to the claiming age and then keeps inflating it yearly. Simplified — not based on a real SSA earnings record. Use SSA's own tools for an accurate estimate.
  • Roth India stress (default Yes) — if on, applies a flat 30% tax on annual Roth balance growth during ROR years. Worst-case stress test, not a definitive tax answer.

What the three paths actually do during retirement

  • Path A — Status Quo: maxes 401k contributions during working years. In retirement, withdraws cash, then taxable, then 401k as needed, with iterative gross-up so high withdrawals are not stuck at a flat 22% tax assumption.
  • Path B — Asset Location Pivot: contributes only enough to capture 401k match; routes the rest to taxable. In retirement, drains taxable and cash before 401k when below 59.5, then income-stacks 401k up to the standard deduction in normal years.
  • Path C — Optimized: same working-years pivot as Path B, plus retirement-phase strategies:
    • US path: income-stacks 401k withdrawals up to the standard deduction. Runs small Roth conversions filling the 12% bracket between 59.5 and 67. Drains taxable and cash before 65 to keep ACA MAGI down.
    • India path, RNOR years: pulls Roth basis tax-free, fills US 12% bracket with 401k withdrawals, builds taxable surplus.
    • India path, ROR years: spends taxable first, then pulls 401k using the editable US-India pension withholding assumption. India tax stress estimate uses simplified new-regime slabs, marginal relief near the rebate threshold, and US withholding credit.

Modeling rules baked in

  • RMDs start at age 73 — forced ordinary income from 401k. Can push you into higher brackets and re-trigger ACA / IRMAA-style pressure.
  • ACA premium pressure test (US and Split Life paths) — runs from retirement through age 65. MAGI-based premium pressure only. It does not use household size, state, benchmark Silver premiums, or real Premium Tax Credit rules.
  • Early-withdrawal penalty — 10% on all 401k withdrawals before 59.5. Does not model exceptions like Rule of 55, SEPP, or Roth ladder.
  • RNOR window (India path) — estimated as 2 or 3 years from "years outside India". Heuristic only. Real RNOR depends on actual presence tests in the prior 7-10 years and prior residency history.
  • ROR phase (India path) — after RNOR ends, 401k and IRA distributions are treated as India-taxable with US withholding credit. Roth growth optionally stress-tested at 30%. India tax includes a simple marginal-relief guard near the ₹12L rebate threshold. This is an India tax stress estimate, not final tax advice.

What is not modeled

  • IRMAA Medicare surcharges (high income after 65)
  • ACA subsidy and Premium Tax Credit calculations
  • Foreign tax credit details and Form 1116 mechanics
  • Treaty benefits beyond simple withholding offsets
  • Real Social Security benefit calculations (use SSA tools)
  • State-specific retirement income exclusions
  • HSA, 529, NUA, Rule of 55, SEPP, Roth ladders, backdoor Roth
  • PFIC treatment of non-US investments
  • Form 10-EE election or specific Section 89A relief
  • Tax bracket and standard deduction inflation over time

How to read the year-by-year table

  • Working years are dimmed gray. Retirement years are highlighted.
  • India path: green rows = RNOR (India tax-free window). Red rows = ROR (India taxable). The "India tax starts here" marker shows the transition.
  • Cash flow columns (Spend, SS) show what was needed and what came in.
  • Withdrawal columns (401k wd, RMD, Roth wd, Tax wd, Cash wd, Roth conv) show what each path pulled from each account that year. Sum withdrawals + SS to roughly match Spend (with rounding and tax payments).
  • RMD is a subset of 401k wd — it shows the forced portion only. The rest is discretionary or covers tax payments.
  • Tax columns show modeled liability based on that year's withdrawals. US tax is federal + state + LTCG + NIIT + early-withdrawal penalty (if any), summed.
  • Total tax / premium pressure (highlighted column) combines the two preceding columns. India path: US tax + India tax stress estimate. US and Split Life paths: US tax + ACA premium pressure. ACA premium is technically a healthcare cost, not a tax, but it is a MAGI-driven cash outflow during the pre-Medicare window.
  • Shortfall is non-zero only if all accounts were exhausted before the year's spend was met.
  • Balance columns (rightmost) show end-of-year values after withdrawals and growth.
Fill in your details on the left, then click Run all 3 paths to compare Path A, Path B, and Path C.