Loading…
Loading…
How the Financial Health Check calculates its signals, and where its estimates stop.
Financial Health model 2.0. Reviewed 2026-09-09. These are NiyamFin planning benchmarks, not regulatory thresholds or a suitability assessment.
Each available signal is bounded to 0–100 (clip). Net worth is displayed but is not scored. Continuous component scores determine weighted Health Score contribution. Savings, Emergency cover and Debt burden labels follow the disclosed planning bands for those metrics; Retirement funding and Protection are Good at 80 or above, Watch at 50–79.99, and Needs attention below 50.
| Signal | Base weight | Curve |
|---|---|---|
| Savings rate | 25% | clip(100 × savings rate / 20) |
| Emergency cover | 20% | clip(100 × accessible cash / (6 × essential outflow)) |
| Debt burden | 20% | clip(100 × (60 − EMI percentage) / 45); card balance caps at 50 |
| Retirement funding | 20% | clip(100 × projected corpus / estimated need) |
| Protection | 15% | Mean of applicable cover/assumption scores, each clipped to 0–100 |
Exclude missing and N/A signals. Effective weight = base weight divided by the sum of included base weights, multiplied by 100. Overall = round(sum of sub-score times effective weight / 100). No included signals means Not scored, not a financial score of zero. Bands: Excellent 86–100, Good 66–85, Fair 41–65, Needs attention 0–40.
Unanswered fields make dependent signals missing. Confirming a step records its default and blank optional amounts as known values; skipping does not. Recorded zero differs from unknown. Existing legacy drafts without answer metadata are treated as recorded values, not retroactively marked missing.
Savings is N/A for retirees or zero recorded income. Safety is N/A when essential outflow is zero. Retirement funding is N/A when living expenses are zero. Debt-free users receive full debt points; with EMIs but zero income the ratio is treated as 100%. Any recorded credit-card balance caps debt at 50; the quick check does not know whether that balance is revolving or paid in full.
Life cover is N/A with no dependents and no liabilities; health alone determines Protection. Otherwise applicable life and health scores have equal weight. N/A is not awarded artificial points. Employment type is contextual and does not impose a self-employed penalty.
Completeness = round(100 × recorded core fields / 26). It is independent of the Financial Health Score. Optional employer-cover and employment details do not change this denominator. Core fields: age, dependents, cityTier, salary, rentalIncome, otherIncome, cashAndBank, investments, retirementSavings, monthlyEpf, monthlyNps, monthlySipExisting, property, otherAssets, livingExpenses, totalEmi, homeLoan, otherLoans, creditCardDues, lifeCover, healthCover, retireAge, lifeExpectancy, inflation, preReturn, postReturn.
Income = monthly take-home salary + rental income + other income. Essential outflow = entered living expenses + EMIs; the quick check does not split discretionary spending. Savings = income minus essential outflow. Savings rate = 100 × savings / income. Existing SIPs count as saving, not consumption; EPF/NPS payroll deductions are outside take-home income.
Assets = cash/bank + investments + retirement balances + property + other assets. Liabilities = home loan + other loans + credit-card balance. Net worth = assets minus liabilities, including negative values. Readily accessible assets = cash/bank only. Include only readily withdrawable deposits there; do not also count them as investments. Property, market investments and locked retirement accounts are not emergency cash.
Emergency months = cash/bank divided by essential outflow. Reference amounts = outflow × 3 and × 6. Needs vary with income stability, dependents, health obligations and household structure; six months is a scoring reference, not a requirement.
Years to retirement = max(0, retirement age − current age). Remaining retirement years = max(1, planning age − max(current age, retirement age)). Future annual spending = living expenses × 12 × (1 + inflation)^years to retirement. Real return = (1 + post-retirement return)/(1 + inflation) − 1. Required corpus = future annual spending × (1 − (1 + real return)^−remaining years)/real return; at zero real return, multiply spending by remaining years.
With monthly rate r = pre-retirement return/12 and n months, the entered retirement balance compounds annually while monthly EPF/NPS/SIP contributions use the beginning-of-month annuity factor ((1+r)^n−1)/r × (1+r). At r=0, contributions equal the monthly amount × n. This quick check explicitly uses one blended return and does not allocate investments. Use the source-wise retirement planner for separate assumptions. Taxes, fees, withdrawal restrictions, pension and market sequences are not modeled here.
Gap = max(0, need − projected resources). Monthly SIPs are modeled at the beginning of each month. At or past retirement, there is an immediate corpus gap rather than a new contribution runway. The source-wise retirement planner also models contributions at the beginning of each month, but separately applies entered contribution growth and source-specific return assumptions.
Life income replacement uses 70% of recorded annual income for max(5, years to retirement), discounted at the positive pre-retirement real return; if that return is nonpositive, use income times years. With dependents, add liabilities and subtract cash/bank and retirement savings, floored at zero. Without dependents, compare liabilities minus cash/bank, floored at zero. Cover score is cover divided by this estimate, clipped to 100. This simplified model does not establish insurance need or eligibility.
Health cover is compared with the editable treatment-cost assumption. New checks start with a 10 lakh assumption. Employer cover is optional and recorded separately but included in this arithmetic; absence and an explicit zero both mean no recorded employer cover. Neither optional field changes completeness. Employer cover may end with employment and policy limits can prevent full payment. Legacy profiles without a cost assumption retain the former city illustration: metro 10 lakh, tier-2 7 lakh, tier-3 5 lakh, plus 2 lakh per dependent beyond the first. Reading a legacy profile does not write the new assumption into it. Those are model assumptions, not verified treatment costs.
Areas worth reviewing show recorded metrics and their planning references, ordered by sub-score deficit. They do not tell users to buy, sell, borrow or change products. Missing inputs can inflate the score of remaining signals; always read completeness alongside it. Approximate values are not verified. Monetary inputs are bounded to 10 billion rupees; age and assumption bounds are enforced by the profile sanitizer.
All calculations run locally. Model versioning distinguishes changes in definitions; a score under version 2.0 is not directly comparable with a version 1 score. Saved local reports are not a cloud financial profile.