Methodology
How we value points and rank cards.
Every verdict on this site is the output of arithmetic you can check. This page shows the arithmetic: the ₹/point anchor, the ranking engine, the verdict scale, where the data comes from, and exactly how much of the site a machine writes.
Last reviewed 2026-09-25
00 the numbers · 01 valuations · 02 rankings · 03 verdicts · 04 the score · 05 sources · 06 automation · 07 money · 08 nerf risk
00 · The numbers
What the number on a card page means
New to any of this? Start here first — this section assumes you already know what a point is. A card page leads with a percentage, the board leads with a rupee figure, and the two disagree on purpose. Three numbers, three different questions, defined once.
Headline earn rate — a %
What ₹100 of ordinary spend earns back, valued at our house ₹ per point. Before milestones, before any portal accelerator, before the fee. Infinia's 3.3% means ₹100 of groceries buys ₹3.30 of airline miles — not ₹3.30 off your bill, and you still have to fly them.
printed on card pages and the index, /compare and the program hubs
Net annual value — a ₹ a year
A whole year of that rate at a stated spend, plus milestones and monthly bonuses, minus the fee. Zero accelerator credit. The conservative number: what the card pays if you never chase a bank portal.
marked data-value-model="nav" · /calculator, /plan, the score, first-card
Ranking value — a ₹ a year
The same arithmetic PLUS ~20% of spend routed through the card's best accelerator. It orders the board. It is always the higher of the two, and the accelerator credit is the entire difference — why the site keeps both.
marked data-value-model="ranking" · /compare, /best/business
Which is why a card can print one number and pay another, in both directions. Axis Magnus for Burgundy earns 4.8% on the swipe and returns 11.24% net of fee at ₹5L a month, because its milestones and monthly bonuses do work the swipe rate never sees. It runs the other way too: HSBC Privé prints 3.3% and reads −19.59% at ₹1L a month, because its fee eats a small spender alive. The percentage is the engine. The rupee figure is the engine minus the fee, at your spend — which is the one the calculator exists to give you.
You can check us on this without taking our word for it. Every annual-₹
figure the site renders carries data-value-model in the markup — the string
nav or the string ranking, on the figure itself where the server
writes it and on the container where a tool fills it in your browser. View source on any
card page, any board row, any calculator result. If a rupee figure anywhere carries neither,
that is a bug and the report form is how you tell us.
01 · Valuations
The ₹1-per-mile anchor
Transferable bank currencies are anchored at the community standard of 1 partner airline mile ≈ ₹1 — the same basis the rest of the Indian points ecosystem quotes when it says "Atlas 4%, Infinia 3.3%". We use it deliberately: our headline reward rates are comparable with every number you'll read elsewhere, and the anchor itself is conservative — saver business-class redemptions routinely clear ₹2 per mile.
The single house value never tells the whole story, so every one of the 164 currencies in the Valuation Index also carries a floor (the guaranteed portal/cashback rate — what you get with zero effort) and a ceiling (the realistic best-case sweet spot — not a unicorn redemption). Discipline and sweet spots live in that range, not in an inflated headline. Marketing rates don't appear anywhere on this site.
One invariant runs through every card file
Each card's effective earn (earn.base, points per ₹100) times its currency's
house ₹/point equals its headline reward rate: base × value ≈
rate. Redemption haircuts and transfer markups are baked into the base, so the
headline is honest by construction. Two live examples:
- HDFC Regalia Gold earns 2.5 RP per ₹100, but its points cap out at ₹0.50–0.65 against HDFC's ₹1.00 house value — a 35–50% haircut. We book the base at 1.63, so 1.63 × ₹1.00 ≈ 1.6%. The haircut is priced in, and the card page says so.
- Axis Magnus for Burgundy earns 6 EDGE RP per ₹100 but transfers at 5:4 — double the standard 5:2 — so its base is booked at 12 against the ₹0.40 house value: 12 × ₹0.40 = 4.8%. The velvet-rope premium is priced into the card, not smuggled into the currency.
02 · Rankings
Fair value, then judgment
The ranking starts with a computed realistic annual value at three spend profiles — ₹1L, ₹3L and ₹5L a month — using each card's real earn tiers, milestone and monthly bonuses and fee waiver, valued at the house ₹/point. On top of the everyday rate we credit each card's best accelerator (SmartBuy, iShop, 5X online, app-hotel portals) on a realistic ~20% of spend — less for narrow or capped boosters — because a disciplined cardholder really does route some spend there. We assume 20%, disclosed, not the issuer's "up to" fantasy applied to everything; the calculator shows your everyday value and lets you tune the mix to your own wallet.
On top of the fair-value math we weigh currency quality (transferable beats closed-loop), transfer-partner strength (all 154 live routes are in the optimizer), lounge and premium benefits, and access gates — a card you can't get, or can only hold behind a relationship threshold, ranks accordingly. Hypothetical "up to" numbers count for nothing. When an issuer nerfs a card, its rank moves; the tracker is the audit trail.
Three value models, and which page runs which
The site computes a card's annual ₹ three ways, on purpose, and every annual-₹ headline says which one it is (in the markup, as data-value-model — on the figure itself where the server renders it, and on the container the tool fills where the number is computed in your browser):
- Net annual value — earn, milestones and bonuses, no accelerator (nav). Everyday spend at the card's own rate, plus milestones and monthly/quarterly bonuses, minus the fee — no accelerator credit at all. This is what every card page's three spend profiles, the calculator, the deck planner, the Portfolio Score and /best/first-travel-card print. It is the conservative number: what the card pays if you never chase a portal.
- Ranking value (ranking). The same arithmetic PLUS the uplift from routing ~20% of spend (less for narrow or capped boosters) through the card's best accelerator. It drives the called winner on /compare and the order of /best/business.
The value engine — your mix, your spend (engine).
The third model, and the one the site now leads with: valueAt(card, spend) in
src/lib/value-engine.ts prices a card on a STATED mix of spend —
30% groceries, 10% utilities, 20% travel, 6% fuel, 34% everything else, the calculator's own
seed — at a stated monthly figure, MCC-aware, each category at the card's own published
rate for that category, capped where the issuer caps it, plus milestones and monthly
bonuses, minus the fee. No accelerator credit. It is what every card page's value block,
the board (at your spend band's low end) and its six
band pages, /best/high-spenders
(at ₹5L a month on the same mix), the calculator
and the wallet print, marked
data-value-model="engine"; the break-even a card page ends on is the first
rung of a stated ladder at which this engine's net reaches ₹0. One card, one number,
everywhere it appears — npm run qa's check 19 recomputes it independently
for every priced card at three spends and fails the build on a rupee of disagreement.
So the same card shows two different ₹ — IDFC FIRST Private at ₹3L/month reads ₹2,15,030 on its card page and ₹3,11,028 on the board. Neither is wrong; the accelerator credit is the whole difference, and a reader who never touches a bank portal should read the card page's number as theirs.
A third label sits next to these and means something else again: a card's headline earn rate is a percentage — what a rupee of ordinary spend earns at our house ₹/point, before milestones, accelerators and the fee. Where a page instead says "X% net of fee at ₹5L/mo spend", that is net annual value divided by the spend that produced it.
Bundled memberships are surfaced, never counted. Club Marriott, Accor Plus, Epicure and friends appear on card pages and in the membership matrix at honest ₹ values — but none of that ₹ enters net annual value or a rank. A dining club is worth ₹0 to a holder who never uses it, and folding opt-in perks into the headline would quietly reorder the rankings on usage assumptions we can't defend. The math above counts only what every holder earns.
03 · Verdicts
The verdict scale, disclosed
Every card gets exactly one of three calls — no fence-sitting. Because our card pages publish machine-readable review markup, the scale behind those stars is disclosed here: the Review structured data on each card page maps our verdict onto a 5-point rating exactly as follows.
One org-authored review per card, no invented star counts, no aggregate ratings we don't have. The rating you may see in search results is this editorial verdict — nothing else.
04 · The Score
The Portfolio Score, derived
The Portfolio Score grades your whole deck — not one card — on a 0–100 scale. It is one published formula, three pillars, no black box:
Score = round(100 × (0.60 × E + 0.20 × C + 0.20 × R))
E is earning efficiency — your deck's rupees against the best deck's. C is coverage — how much of your spend earns full rate. R is resilience — whether the points will still be worth something when you redeem them. The grade scale is below; the full derivation of all three is one tap away.
S ≥ 90 · A ≥ 75 · B ≥ 60 · C ≥ 45 · D ≥ 30 · F below
All three pillars derived, a worked two-card deck, and why the weights are 60/20/20
E — Earning efficiency (60%)
Your deck's net annual ₹ at your spend, divided by the best possible deck's. We allocate each spend category to whichever of your cards earns most on it, run the same tiered-earn + milestone + monthly-bonus engine as the calculator, and subtract fees — a fee counts as waived only when the spend we actually routed to that card clears its waiver, not when your total spend does. The denominator is the best same-size deck buildable from the full catalog, found by exhaustive enumeration up to size four. E is clamped to [0,1].
C — Coverage (20%)
The spend-weighted share of the 12 MCC categories — fuel, rent, government, utilities, insurance, education, wallet loads, groceries, telecom, jewellery, forex, UPI — where your deck earns fully. A category scores 1 when at least one card earns full rate (or better — an accelerated card covers a category at least as well as a full earner), 0.5 when the best treatment is reduced or capped, and 0 when it's excluded — or when the issuer never published the rule, because an unpublished rule is a rule you can't rely on. Weights are the picker's standard spend mix, so a hole in groceries costs you more than a hole in jewellery.
R — Resilience (20%)
Whether the points you're earning will still be worth something when you redeem them. R = 1 − 0.7 × d − 0.3 × x, where d is the share of your earn flowing into currencies that took a program-wide devaluation in the last 18 months (per our tracker — dated, sourced events, not vibes) and x is the share flowing into currencies whose points die within roughly 24 months of earning them.
Percentile and leak
Your percentile is your score's position among every deck of your size drawn from the strongest 34 cards at your spend band — 52,955 enumerated decks of size 1–4 per band, scored at build time (the pool cap keeps the arithmetic honest AND tractable). It is arithmetic, not survey data; nobody was polled. Your leak is the ₹ gap between your deck's net annual value and the optimal same-size deck's — the rupees you're leaving on the table per year by holding these cards instead of those.
Worked example — illustrative
Take a common two-card deck: HDFC Infinia + Axis Atlas, ₹2L/month spend. The numbers below are illustrative — a plausible walk-through, not your statement.
Why these weights
Earning is 60% because it is the only pillar denominated in rupees — it's the thing you actually take home. Coverage and resilience are risk modifiers: they tell you how fragile that rupee number is across your categories and across time, so they split the remaining 40%. That's an editorial choice, not a law of nature — we made it, we own it, and if we ever change it, the tracker and this page change on the same day.
What the score does not know
- Your actual category mix — unless you set it, we assume the standard mix.
- Lounge usage. Doors you walk through are value the score doesn't count.
- Welcome bonuses in year one. The score prices the steady state, not the sign-up sugar.
- Rules issuers never published. MITC-unpublished treatment is counted as zero — if the issuer won't put it in writing, neither will we.
The whole thing runs in your browser. Your spend, your deck, your score — nothing is uploaded, logged or stored anywhere but your own tab.
05 · Sources
Where the data comes from
Everything the site shows lives as version-controlled, human-curated data — every edit is a reviewable diff. Official issuer terms come first: card facts are verified against T&C and MITC PDFs and program pages, not forum hearsay. The devaluation tracker holds 376 dated events spanning 1961–2026, and every single one carries a source URL you can click.
Valuation history is held to the same standard: a historical ₹/point is published only when a tracked event quantifies the change, each point names its event and shows its arithmetic, and we always take the most conservative figure in a stated range. Currencies with no quantified history get a single current point — we never invent a curve to make a sparkline look busy.
06 · Automation
The robot, honestly
Our news desk is AI-written, and we'd rather tell you than have you guess. It is a phraser over a fact base, not a writer: the generator turns our own curated tracker events into posts and has no license to state anything that isn't already in the data — no invented cards, rates, fees, partners or dates.
Five fences, in order, every run:
- Grounded — input is our curated tracker facts, nothing else.
- Schema-valid — output that fails validation is discarded.
- Cited — no source URL, no post.
- Deduped — near-duplicates of recent items are skipped.
- Audited — every attempt is logged with model, prompt hash and decision; rollback is a delete.
Rankings, valuations, verdicts and every number on this page are human-curated data — the machine phrases; it never decides.
07 · Money
How we make money: we don't
No affiliate links. No display ads — not now, not later. Nobody pays for a rank, a verdict, or a kind word; rankings are derived from the data above and nothing else. That's a locked, written decision (ADR 0003), not a vibe. If that ever changes, the rule is already on the record: prominent disclosure on every page carrying a link, zero commercial influence on rankings or verdicts, and this page updates first. Until then, the only thing we're selling is the verdict.
08 · Nerf risk
The track-record grade, derived
Every program hub and the valuation index carry a nerf-risk chip: stable · watch · elevated · high. It is not a prediction and not an opinion — it is a weighted sum over the 376 dated, sourced events in the devaluation tracker, attached to each currency by the same inference that builds its nerf log. Same data, same page, one number.
In one line: score = max(0, Σ cuts − Σ buffs − quiet), where each cut-side event contributes kind × severity × attach × decay. Recent major devaluations weigh most; buffs earn credit back; a long quiet streak earns credit too. Thresholds: below 1 stable, below 2.5 watch, below 4.5 elevated, 4.5 or above high.
Every weight in that formula, and what each one is worth
- Kind — devaluations count 1.0; a hostile partner event (a purge, a cut, a ratio clipped) also counts 1.0, because losing a transfer route IS a devaluation of transfer value; fee hikes 0.5; lounge cuts 0.4. Additive partner news, launches and mergers count zero.
- Severity — major 3, moderate 1.5, minor 0.6, exactly the tracker's own severity call.
- Attach — a first-party program event weighs 1.0; an issuer-wide change 0.75; a single-card event reaching the currency through its issuer 0.4; a bystander mention inside another ecosystem's event 0.5.
- Decay — a half-life of 18 months: the last 12 months weigh most (≥0.63), a 5-year-old cut is worth about a tenth of a fresh one. Age is measured to today, and floored at zero — so a devaluation an issuer has announced but not yet made counts as fresh, and never as fresher than one that has actually landed.
Buffs earn back 0.4× their weight — credit, never a full pardon. A quiet streak earns 0.25 per year since the last major cut, capped at 1.5; a never-nerfed program gets the full cap.
Today that grades the 164 currencies as 135 stable, 8 watch, 2 elevated and 19 high (anchored to 2026-09-30). Every chip's one-line "why" names the driving events — and names as "latest" only what is already in force, counting anything an issuer has announced for a future date separately, because a change that has not happened is not a cut this program has made. npm run qa recomputes every grade independently, and fails the build both when a rendered chip disagrees with this formula and when the day it was anchored to has drifted from the clock.
The honest caveat: past cuts are not future cuts. This is a track-record grade — how a program has actually treated its members, weighted for recency — not a forecast. A clean sheet can end overnight; Axis proved that in April 2026 with zero days' notice. Read it the way you'd read an issuer's history before signing up: as character evidence, not prophecy.