How it works
The rule works because it fixes the hardest part of budgeting first: deciding how much you are allowed to spend. Rather than tracking forty categories, you only have to keep three totals in line, and the 20% savings share is treated as a bill you pay yourself on salary day rather than whatever survives to month-end.
The 50/30/20 split is a starting point, not a law. On a take-home under ₹30,000 in a metro, rent alone can consume most of the needs bucket, and forcing needs down to 50% just guarantees the plan collapses in week two. Move the sliders — this calculator re-splits everything and keeps the three shares totalling 100%.
Needs = Income x 50% | Wants = Income x 30% | Savings = Income x 20%
- Income is your monthly take-home pay, after PF, professional tax and income tax
- Needs are the costs you cannot skip next month: rent, groceries, utilities, transport, EMIs, insurance
- Wants are everything you choose: dining, subscriptions, shopping, travel
- Savings covers your emergency fund, investments and any extra debt repayment above the minimum
- Start from take-home, not CTCUse the amount that actually lands in your bank account. CTC includes employer PF and gratuity you never see as spendable cash.
- Fund the 20% firstSet up an automatic transfer for the savings figure on salary day, so investing does not depend on willpower at month-end.
- Match needs against your real billsAdd up rent, groceries, utilities, transport and EMIs. If they exceed the needs figure, raise the needs slider rather than pretending.
- Let wants absorb the varianceWants is the only flexible bucket. A heavy month for dining means a lighter one for shopping — not a raid on savings.
- Recheck after every raiseWhen income rises, keep needs flat in rupee terms and push the increase into savings. That single habit is what prevents lifestyle inflation.
A worked example
Ananya takes home ₹60,000 a month in Pune. The rule gives her ₹30,000 for needs, ₹18,000 for wants and ₹12,000 for savings. Her needs break down as ₹13,200 rent, ₹6,600 groceries, ₹4,200 transport, ₹3,600 utilities and ₹2,400 health.
The ₹12,000 of savings leaves her account the day her salary arrives: ₹3,600 into an emergency fund until it holds six months of expenses, then ₹5,400 into a SIP and ₹3,000 towards retirement. Because it goes out first, she never has to find money to invest.
Common mistakes
- Budgeting from CTC instead of in-hand salary, which inflates every bucket by 15–20%
- Filing EMIs under wants — a loan repayment is a need, and hiding it distorts the whole plan
- Treating the 50/30/20 split as fixed when rent in your city makes it arithmetically impossible
- Leaving savings until month-end, which reliably turns 20% into whatever happens to be left
- Forgetting irregular costs — insurance renewals, festivals, travel — that land two or three times a year
50/30/20 versus the other budgeting methods
| Method | How it works | Best for |
|---|---|---|
| 50/30/20 | Three fixed shares of take-home pay | Anyone starting out who wants one simple rule |
| Zero-based | Every rupee assigned to a category until income minus allocations is zero | People who want tight control and will do the admin |
| Envelope | Cash or digital envelopes per category; when it is empty you stop | Curbing overspending in a few problem categories |
| Pay-yourself-first | Fix the savings number, spend the rest freely | High earners whose main risk is lifestyle inflation |
Frequently asked questions
It works well on a take-home between roughly ₹40,000 and ₹1,50,000 outside the most expensive metros. Below that, rent usually pushes needs past 50% — a 60/20/20 split is more honest. Above it, needs rarely scale with income, so 40/20/40 is often achievable.
Related calculators
Related terms
Related guides
How BudgetAnalyzer helps
These category names are the exact defaults BudgetAnalyzer creates for every new account — Rent, Groceries, Transport, Bills & Utilities, Food & Dining and the rest. Sign up and you can enter these figures as monthly budget targets in a couple of minutes, then watch budget-versus-actual fill in as the month runs.