Our principles
Four ideas drive every decision in our methodology. Disagree with them? Don't trust our rankings.
1. Math, not vibes.
The card with the higher TopRates Score has more total points after our rubric runs. Full stop. Our editors don't override the algorithm to "promote" a card we're paid more for. (If they did, we'd note it on the card page — and we'd lose the right to use the word "independent.")
2. Real dollars, not "up to" hypotheticals.
When we say "year-1 value of $728," we mean: at the StatsCan median Canadian household spend, what's the dollar return after the annual fee. No best-case scenarios where you have to spend $5,000 in the first month to unlock a welcome bonus that gets devalued in year 2.
3. The reader is the customer.
The bank pays us referral fees. The reader doesn't pay us anything. That's a structural problem we manage by: (a) running the algorithm blind to the referral payout, (b) publishing every input to the score, (c) flagging cards that aren't in our affiliate network so you know we have no financial incentive to recommend them.
4. We say what we wouldn't.
Most "best card" lists rank everything. We don't. There are 72 cards. We don't write reviews for the cards we'd never tell our family to apply for. We'll explain why on the methodology page (this one) — but we won't write a soft puff piece that ends with "Apply now ↓".
The 5-step process
How a card goes from "new product announcement" to "ranked on TopRates."
Data entry
A senior analyst inputs all 126 features from the issuer's published terms into our database. Pull request goes to a second analyst for fact-check.
Score
Our algorithm calculates a raw score (0–1000) based on the weights you see at the top of this page. Some features are conditional — caps reduce the rewards multiplier proportionally.
Editor read
The editor reviews the resulting score against their qualitative read of the card. If they disagree, they file a 'score appeal' — which goes back to the algorithm team, not into the score.
Publish
Card review goes live with the score visible. Affiliate partnership status (yes / no) is shown next to the score.
Weighting, in detail
We've talked to a lot of Canadians about what they actually care about in a credit card. The weights below reflect what consistently surfaces.
Rewards (30%) is the heaviest weight because, for most readers, it's the only thing that determines whether the card returns more dollars than it costs. We use a spending-profile-weighted reward velocity: a card that pays 5% on groceries is worth more to a grocery-heavy household than a card that pays 5% on transit, and the score reflects that.
Fees (20%) isn't just the annual fee — it's the foreign transaction fee, the supplementary card fee, the over-limit fee, and the cash advance fee, all blended. A card with a $0 annual fee but a 3% FX markup is not a "$0 fee" card to a traveller.
Insurance (15%) captures the full bundle: mobile device, rental car CDW, trip cancellation, out-of-province emergency medical, baggage, purchase protection, extended warranty. Dollar-coverage is part of the score; deductible isn't (because nobody knows their deductible until they file a claim).
Perks (15%) is the discretionary stuff: lounge access, Nexus credit, concierge, hotel status, free supplementary cards. We discount perks aggressively if they require triggering events most readers won't hit ("airport lounge access after $50k spend" — we score that as zero for typical readers).
Eligibility (10%) rewards cards with lower income requirements, faster approvals, and newcomer-friendly paths. It's a smaller weight because most readers self-filter to cards they'd qualify for.
Interest rates (10%) only matters if you carry a balance. We tag cards with "carries-a-balance friendly" if APR is under 12%, and the weight kicks up for those readers.
From points to dollars
The trickiest part of our scoring is normalizing points-based cards (Aeroplan, Scene+, BMO Rewards, Amex MR) against pure cash-back cards. Comparing 5% cash to "5× points" is meaningless without a points-to-dollar conversion.
We publish our point valuations and refresh them quarterly. Here's the table.
The 126 features, grouped
The full list is too long to display inline. Here are the 12 groups we track, with feature counts.
Card basics 9
- Issuer
- Network
- Card name
- Sub-product family
- Visa/MC tier
- Material (plastic/metal)
- Contactless
- Chip + PIN
- Apple/Google Pay
Rewards 22
- Base rate
- Category bonuses (×7)
- Caps (×7)
- Welcome bonus value
- Welcome earn window
- Welcome unlock spend
- Reward currency
- Currency transferability
- Devaluation rate (3yr avg)
Fees 11
- Annual fee
- Supplementary card fee
- Foreign transaction fee
- Cash advance fee
- Balance transfer fee
- Over-limit fee
- NSF fee
- Inactivity fee
- Statement copy fee
- Fee waivers (×2)
Interest rates 7
- Purchases APR
- Cash advance APR
- Balance transfer APR
- Promotional rate (if any)
- Promo length
- Grace period
- Min payment
Eligibility 11
- Min personal income
- Min household income
- Credit score guidance
- Newcomer-friendly
- Student-friendly
- Secured deposit needed
- Time-in-Canada requirement
- Application channel
- Approval time
- SIN required
- Co-applicant accepted
Insurance 19
- Mobile device
- Trip cancellation
- Trip interruption
- Trip delay
- Baggage delay
- Lost baggage
- Out-of-province medical
- Out-of-country medical
- Rental car CDW
- Hotel/Motel burglary
- Common carrier accident
- Purchase protection
- Extended warranty
- Price protection
- Plus 5 coverage limits
Travel perks 14
- Lounge program
- Lounge visits/yr
- Lounge guest policy
- Hotel elite status
- Hotel night certificate
- Rental car status
- Concierge
- Nexus rebate
- Global Entry rebate
- Boingo wifi
- FX-free transactions
- Travel medical age limit
- Trip-length cap
- Annual travel credit
Lifestyle perks 9
- Streaming credit
- Uber/Eats credit
- Grocery credit
- Movie credit
- Fitness credit
- Telecom credit
- Birthday bonus
- Anniversary bonus
- Refer-a-friend
Data sources
Every input to our score comes from one of these sources. Issuer-published terms always win conflicts.
Primary sources (used in ranking)
Secondary sources (used for context, not score)
Editorial independence
We're an affiliate. The bank pays us a referral fee — typically $40–$180 per approved application — when a reader applies through our link. That payment does not flow into the algorithm. Here's how we structurally enforce that:
- The scoring engine runs in a separate code path from the affiliate management. The scoring code has no read access to the affiliate payout table.
- Editor compensation is salaried, not commissioned. An editor's pay doesn't change based on which card the reader applies for.
- Non-affiliate cards are ranked too. If a non-paying card wins its category, we publish that — and you'll see it labelled "No affiliate partnership — independent recommendation" next to the score.
- The data refresh is automated. When an issuer updates terms, our scrapers pick it up and rescore. An editor can't quietly hold a stale score because the affiliate payout went up.
What you're really asking
Is this enough to fully eliminate bias? No, probably not. Choosing what to write about, what to feature prominently, and what to ignore is itself editorial influence — and we have affiliate-driven incentives there. We try to publish those choices openly (which cards aren't reviewed and why) so you can adjust for them.
The team
Three people own the credit-card vertical. Two are credentialed; one is an editor.
Devesh Mehta
Senior Money Editor11 years writing about Canadian credit cards. RIBO + LLQP licensed. Previously at Money Sense.
Priya Nair
Algorithm LeadDesigned v6 and v7 of the scoring engine. Former data scientist at Borrowell. CFA Level III.
Marc Carrière
Editor-in-ChiefReviews every card review before publish. 15 years in personal finance journalism. Globe + Toronto Star alum.
External reviewers
Quarterly auditAn external CFP-credentialed reviewer audits 10 random card scores per quarter. Findings published to the changelog below.
Algorithm changelog
Every change to the scoring methodology is logged here.