{% extends "base.html" %}
{% from "_notes.html" import fine_print %}
{% block title %}{{ page_title }} · Networthy HQ{% endblock %}
{% block main_class %}wide{% endblock %}
{% block content %}
{% if user %}
{% endif %}
How do I get to ₹10 crore?
Anyone can name a target and a date. The question nobody checks is what annual return
that combination quietly assumes — and whether it's a rate any portfolio actually
delivers. Put in where you are and where you want to be.
{% if not user %}It's all worked out in your browser; nothing you type is sent to us.{% endif %}
{% if mix %}
{# Only a tracker can do this half: the reader's real allocation, and what it
plausibly earns. A generic calculator has to ask; this already knows. #}
What your current mix would plausibly earn
Weighted across what you actually hold. These are deliberately unexciting long-run
assumptions — the numbers you'd defend to a sceptic, not the ones a brochure prints.
Holding
Share
Assumed return
{% for b in mix %}
{{ b.label }}
{{ "%.1f"|format(b.pct) }}%
{{ "%g"|format(b.assumed) }}%
{% endfor %}
Blended
{{ "%.1f"|format(blended) }}%
{% endif %}
{# ---------------------------------------------------------------------------
Server-rendered reference tables — the indexable half, and what a reader
without JS sees.
--------------------------------------------------------------------------- #}
What each target demands, starting from ₹1 crore
Compounding ₹1 crore to ₹10 crore in 20 years takes
12.2% a year — right at the edge of what a diversified Indian
portfolio has managed over long periods. Wanting it in 10 years instead takes
25.9%, which nothing delivers for a decade.
Target
{% for y in years_cols %}
in {{ y }} yrs
{% endfor %}
{% for row in grid %}
₹{{ row.target }} crore
{% for c in row.cells %}
{{ c.label }}
{% endfor %}
{% endfor %}
Starting from ₹1 crore with nothing added, so the table shows the shape of compounding
rather than any one person's numbers. Adding savings lowers every figure — that's the
calculator above.
How to read a required return
If you need
It's
What that means
{% for ceiling, label, note in bands %}
{% if ceiling == 6.0 %}under 6%{% elif ceiling|string == 'inf' %}15%+{% else %}up to {{ "%g"|format(ceiling) }}%{% endif %}
{{ label }}
{{ note }}
{% endfor %}
Where these numbers come from
The arithmetic
One equation: today's corpus compounds for the period, savings are added at each year
end, and the required return is the rate that lands exactly on the target. With savings
in the mix there's no closed form for that rate, so it's found by bisection — the
balance rises monotonically with the return, which is all that needs.
The per-asset assumptions
Long-run nominal INR expectations, before tax and costs: equity 12%, mutual funds 11%,
fixed income 7%, gold 8%, real estate 7% (capital only — rent is separate), cash 4%.
Crypto is carried at 12%, which is not a forecast so much as a placeholder for
"high and unknowable". These are judgements, not measurements, and a point of
conservatism is the safer error: it flags a stretch as a stretch.
What this can't tell you
A single rate is an assumption, not a measurement, and it is doing all the work: over
twenty years the gap between 9% and 12% on the same starting pot is enormous. That's
why the calculator shows a band rather than a number.
Volatility costs you even when the average holds — what compounds is
the geometric mean, which sits below the simple average by roughly half the variance.
(If you're adding nothing and withdrawing nothing, the order of returns
genuinely doesn't matter; only the product does. Sequence risk is a retiree's problem,
not an accumulator's.)
No tax is modelled, so every figure here is somewhat optimistic —
capital gains alone take a bite out of what you actually keep.
{{ fine_print("Estimates for planning, not a projection of your returns.") }}
{% if not user %}
Then check it against what you actually hold
Signed in, this page reads your real allocation and tells you whether the return you
need is one your current mix could plausibly deliver — which is usually the more
uncomfortable half of the answer.