Tab 1

Projection Chart

The main view of the Projections page. A chart-dominant layout showing projected net worth growth over 30 years with interactive controls and milestone markers.

New page at /projections. Uses projection-engine.ts for compound growth math. Chart data computed via computeProjectionCurve(currentValue, monthlyContribution, annualReturn, years). Milestones stored in app_settings as a JSON preference — no new DB table needed.
📊
All Assets
Full portfolio · ₹9,00,000
Portfolio Scope
📊
All Assets
Projects growth across everything you own — the most realistic overall picture
₹9,00,000
18 assets
💰
Investable Only
Only liquid/investable assets — what you can actually grow with SIPs and returns
₹6,80,000
14 assets
📈
Net Worth
True net worth projection — factors in debt paydown alongside asset growth
₹5,20,000
18 assets · 3 debts
By Asset Type
📉
Stocks
Individual equities only — useful if you have a separate strategy for direct stocks
₹3,40,000
8 stocks
📦
ETFs
Track your passive index strategy — typically steadier, more predictable growth
₹1,80,000
3 ETFs
🏦
Mutual Funds
SIP-driven mutual fund growth — your most autopilot investments
₹1,60,000
3 funds
By Account
🟢
Zerodha
Project one brokerage independently — when does this account alone hit your milestones?
₹4,20,000
7 assets
🔵
Groww
Your SIP platform — how do regular contributions compound in this account?
₹1,60,000
3 assets
👤
Personal
Property, gold, PPF — assets that grow differently from market investments
₹3,20,000
4 assets
Monthly Contribution ₹25,000
Annual Return 12%
Annual Step-Up 10%
₹25,000/mo from 3 SIP rules View rules →
Current Value
₹9,00,000
Projected (30Y)
₹2,15,00,000
at 12% · ₹25K/mo
Next Milestone
Aug 2027
Emergency Fund · ₹5L · 17 mo away
Crorepati Needs
₹52,800/mo
to reach by Jan 2037
Impact of changes
Crorepati Nov 2038 → Jun 2035 3.4 yrs faster
Half Crore Mar 2034 → Sep 2032 1.5 yrs faster
Emergency Fund Aug 2027 → Mar 2027 5 mo faster
₹0 ₹5L ₹10L ₹50L ₹1Cr ₹2Cr 2026 2031 2036 2041 2046 2051 2056 ₹5L ₹50L ₹1Cr ₹2Cr −₹25L withdraw
Emergency Fund
Net Worth
Target
₹5,00,000
Current
₹3,60,000 (72%)
Remaining
₹1,40,000
ETA
Aug 2027 (17 mo)

Reach it faster
Increase SIP by ₹5,000/mo → reach in 12 mo 5 mo faster
%
If returns hit 15% instead of 12% → reach in 15 mo 2 mo faster
$
One-time ₹50,000 lump sum → reach in 14 mo 3 mo faster
Half Crore
Net Worth
Target
₹50,00,000
Current
₹9,00,000 (18%)
Remaining
₹41,00,000
ETA
Mar 2034 (8 yrs)
+2.8 yrs delayed by Down Payment withdrawal (₹25L in Sep 2030). Original ETA: Jun 2031 → Now: Mar 2034

Reach it faster
Increase SIP by ₹10,000/mo → reach by Oct 2032 1.4 yrs faster
%
If returns hit 15% instead of 12% → reach by Jun 2033 9 mo faster
$
One-time ₹2,00,000 lump sum → reach by Nov 2033 4 mo faster
Crorepati
Net Worth
Target
₹1,00,00,000
Current
₹9,00,000 (9%)
Remaining
₹91,00,000
ETA
Nov 2038 (12.7 yrs)
+1.8 yrs delayed by Down Payment withdrawal (₹25L in Sep 2030). Original ETA: Jan 2039 → Now: Aug 2040

Reach it faster
Increase SIP by ₹15,000/mo → reach by Sep 2036 2.2 yrs faster
%
If returns hit 15% instead of 12% → reach by Jan 2037 1.8 yrs faster
$
One-time ₹5,00,000 lump sum → reach by Mar 2038 8 mo faster
Annual 10% SIP step-up → reach by Apr 2035 3.6 yrs faster
Two Crore
Net Worth
Target
₹2,00,00,000
Current
₹9,00,000 (4.5%)
Remaining
₹1,91,00,000
ETA
Dec 2048 (22.8 yrs)

Reach it faster
Increase SIP by ₹25,000/mo (double) → reach by Feb 2043 5.8 yrs faster
%
If returns hit 15% instead of 12% → reach by Aug 2044 4.3 yrs faster
Annual 10% SIP step-up → reach by Jun 2040 8.5 yrs faster
Down Payment
↓ Withdrawal
Withdrawal
−₹25,00,000
Portfolio Before
₹28,50,000
Portfolio After
₹3,50,000
When
Sep 2030

Cascading impact
Half Crore delayed by +2.8 yrs (Dec '31 → Mar '34)
Crorepati delayed by +3.1 yrs (Sep '35 → Nov '38)
Offset: increase SIP to ₹35,000/mo to keep original dates
Half Crore — original position
Without withdrawal: Mar 2034
After ₹25L withdrawal: Dec 2036 +2.8 yrs

Keep original date (Mar 2034)
Increase SIP by ₹8,500/mo after withdrawal offsets delay
$
One-time ₹4,20,000 lump sum post-withdrawal recovers timeline
Add 12% annual step-up starting 2031 closes gap
Crorepati — original position
Without withdrawal: Nov 2038
After ₹25L withdrawal: Aug 2040 +1.8 yrs

Keep original date (Nov 2038)
Increase SIP by ₹5,200/mo after withdrawal offsets delay
$
One-time ₹3,50,000 lump sum post-withdrawal recovers timeline
Add 10% annual step-up starting 2031 closes gap
Projected growth (12% return)
Without withdrawals
Withdrawal event
Original position (hover for details)
₹5L
₹50L
₹1Cr
₹2Cr
Milestones
4 of 7 on chart
Emergency Fund
₹5,00,000
72% · ETA Aug 2027 (Jul '27 – Oct '27) · ₹14,500/mo to reach by Jun 2027
Half Crore
₹50,00,000
18% · ETA Mar 2034 (Jan '33 – Sep '35) · ₹38,200/mo to reach by Dec 2032
↓ +2.8 yrs from Down Payment withdrawal
Crorepati
₹1,00,00,000
9% · ETA Nov 2038 (Feb '36 – Apr '42) · ₹52,800/mo to reach by Jan 2037
↓ +1.8 yrs from Down Payment withdrawal
Lean FIRE
₹90,00,000
10% · ETA Jul 2042 (Mar '39 – Jan '47)
Regular FIRE
₹1,20,00,000
7.5% · ETA Jan 2046 (May '42 – 2050+)
Down Payment
₹25,00,000
↓ Withdraw
36% · ETA Sep 2030 (Mar '29 – Feb '32) · Withdraws ₹25L from Investable
Kids' Education
₹30,00,000
↓ Withdraw
0% · ETA 2040 · Withdraws ₹30L from All Assets on reaching
Withdrawal Impact on Milestones
Emergency Fund
Aug 2027 Aug 2027
No impact Reached before withdrawal
Down Payment
Sep 2030 Sep 2030
Withdrawal source ₹25L withdrawn here
Half Crore
Mar 2034 Dec 2036
+2.8 yrs ← Down Payment
Crorepati
Nov 2038 Aug 2040
+1.8 yrs ← Down Payment
Group + toggle + withdrawal pattern: Each milestone belongs to one group and can optionally be a withdrawal event. When withdrawal: true, reaching the milestone triggers a deduction from the portfolio. The projection curve shows a visible dip at that point and continues from the reduced amount. A faint ghost line shows what growth would've been without the withdrawal. Cascading impact is shown three ways: (1) ghost dots on the SVG chart at original milestone positions with connecting lines to shifted positions, (2) .mpi-delay badges on affected milestone picker items, and (3) a .withdrawal-impact-panel summary table showing before → after ETAs with delay tags. Stored as { ...milestone, group, showOnChart, withdrawal: boolean, withdrawalAmount?, withdrawalScope? }.
Scope filtering: When a specific asset type or account is selected in the scope picker, the projection uses only matching assets and auto-applies contribution rules targeting that scope. Uses matchesFilter(asset, filterKey) from dashboard-aggregation.ts. For example, selecting "Zerodha" shows only Zerodha assets and auto-applies the 3 SIP rules totaling ₹18,000/mo that target that account. Selecting "Investable Only" excludes property and vehicles, projecting only liquid/investable growth.
Tab 2

Milestone Library

Create, organize, and manage all your financial milestones. Group them by category, toggle chart visibility, and configure withdrawal events that impact your projection curve.

Storage: Milestones stored in app_settings as JSON preference — no new DB table needed. Each milestone has { id, label, target, group, color, showOnChart, withdrawal?, withdrawalAmount?, withdrawalScope? }. The showOnChart flag controls which milestones appear as reference lines on the projection chart (Tab 1).
7 milestones across 3 groups
Net Worth
3 milestones
Emergency Fund On chart
₹5,00,000
72%
Current: ₹3,60,000 ETA: Aug 2027 (Jun '27 – Jan '28)
→ Needs ₹10,400/mo
Half Crore On chart
₹50,00,000
18%
Current: ₹9,00,000 ETA: Mar 2034 (Jan '33 – Sep '35)
+2.8 yrs delayed by Down Payment withdrawal (₹25L in Sep 2030). Without withdrawal: Dec 2031
→ Needs ₹52,800/mo
Crorepati On chart
₹1,00,00,000
9%
Current: ₹9,00,000 ETA: Nov 2038 (Mar '37 – Aug '40)
+3.1 yrs delayed by Down Payment withdrawal (₹25L in Sep 2030). Without withdrawal: Sep 2035
→ Needs ₹38,200/mo
FIRE
2 milestones
Lean FIRE Hidden
₹90,00,000
Current: ₹9,00,000 ETA: Jul 2042
Based on 25× annual expenses (₹3,60,000/yr)
Regular FIRE Hidden
₹1,20,00,000
Current: ₹9,00,000 ETA: Jan 2046
Based on 25× annual expenses (₹4,80,000/yr)
Life Goals
2 milestones
Down Payment ↓ Withdrawal On chart
₹25,00,000
Current: ₹9,00,000 ETA: Sep 2030 Withdraws ₹25L at target
Withdrawal Config
Amount: ₹25,00,000 Scope: All investable Trigger: At target
Impact: Delays Half Crore by +2.8 yrs, Crorepati by +3.1 yrs
Kids' Education ↓ Withdrawal Hidden
₹30,00,000
Current: ₹9,00,000 ETA: 2040 Withdraws ₹30L at target
Add Milestone
Implementation: This tab provides the full CRUD interface for milestones. The compact milestone picker on the Projection Chart tab shows a subset with quick toggles. showOnChart syncs between both views — toggling a milestone's chart visibility in either place updates both. The "Reach by" date calculator uses calculateRequiredContribution(currentValue, targetValue, annualReturn, monthsRemaining) from projection-engine.ts.
Tab 3

AI Suggestions

Use templates or free-text to generate milestone suggestions powered by AI. Leverages the existing chat AI infrastructure.

Uses existing AI infrastructure. Template buttons pre-fill a prompt, then send to the same POST /api/chat endpoint. The AI reads current portfolio data (net worth, expenses, asset allocation) to generate personalized milestones. Results are returned as a structured list of { label, target, category } objects.
AI Milestone Suggestions
AI-Powered
Choose a template or describe your financial goals.