← All posts

2026-05-01

How we built Kira: the credit card matcher that doesn't get paid to lie to you

Most Malaysian credit card comparison sites get paid different amounts for different cards. Here's how we built Kira to refuse that.

Malaysia has dozens upon dozens of credit cards on the market. We loaded the major ones into a database — Maybank, CIMB, Public Bank, HLB, RHB, UOB, AmBank, HSBC, Standard Chartered, Alliance, Bank Islam, and more. Then we did the one thing the comparison sites won't do.

We ranked them by what you actually earn.

That sounds obvious. It isn't how this industry works. So let us walk you through how Kira got built — not the feature list, but the handful of decisions that explain how we think. By the end you'll either trust us or you won't, and either way you'll know exactly why.

Start with the lie

Open a typical Malaysian comparison site. Look at the card sitting at #1.

It might be there because the bank pays the most commission for it. We can't see their books, so we can't say for certain. But here's what we do know about how these sites work: they earn money when you sign up, and they earn more for some cards than others. When the thing ranking the cards is also being paid different amounts per card, you have to wonder whether the ranking you're looking at is a ranking of value — or a ranking of payouts. The "best card" may just be the best card for them.

We didn't start Kira with a design or a colour palette. We started with that one fact, and a single refusal: we would not let commission touch the ranking. Everything you'll see below flowed from that one decision. When you build around a refusal, the refusal makes your choices for you.

So here's the first thing to focus on. A headline cashback rate is almost always a lie of omission. A card advertises "8% cashback" and your eye stops at the 8. It doesn't stop at the RM30 monthly cap. It doesn't stop at the RM3,000 minimum spend. It doesn't stop at the RM150 annual fee that quietly eats the first five months of rewards.

The headline says RM480 a year. The cap says RM360. The fee says RM210 net. That gap — between what's advertised and what lands in your pocket — is the entire reason Kira exists.

Make the page look like a tool, not a trap

You know the fintech look. Neon gradients. A pulsing APPLY NOW button. Three popups before you've read a sentence. That design has a job, and the job is to rush you past the thinking.

We went the other way on purpose. Calm, editorial, a lot of whitespace. One clear button — "Kira my cards." And a "Methodology" link sitting in the navigation from the very first version we shipped, before we'd written a single blog post.

That link mattered. If we're putting our methodology right there in the menu from day one, the methodology has to actually exist from day one. You can't fake that. It's a promise we have to keep. A page that looks like a calm reference tool is telling you what it's for — and we wanted that to be true before you'd even clicked.

Meet the user where they actually are

Here's a tension we hit early. Ask someone "how much do you spend on dining each month," and you split into two kinds of people.

One kind knows. RM800 dining, RM400 petrol, RM1,200 groceries — they track it, they'll type it in, they want precision. The other kind has no idea. They know roughly RM4,000 goes out the door and that's the end of their self-knowledge.

If we'd built only the detailed version, the second kind of person gives up at the first question and leaves. If we'd built only the rough version, the careful spenders feel talked down to. So we built both. You can enter your spending category by category if you know it, or just give us one number — your rough monthly total — and we'll split it across categories using realistic Malaysian spending patterns.

The idea underneath: never make you do work the tool can do for you, and never take away precision from someone who has it. Two ways in, same engine, nobody gets stuck at the door.

And before any of that scoring runs, eligibility gates the results. Your annual income. Whether you're Malaysian, PR, or a foreigner. Whether you want cashback, miles, an Islamic card, or don't care. We decided early that eligibility couldn't be a footnote — it had to filter before the ranking. There is nothing more useless than a #1 recommendation for a card you legally cannot get. We'd rather show you the best card you can actually hold than the best card in an abstract universe where your income doesn't matter.

The decision that costs us, and why we made it anyway

This is the one we'd point to if you only had thirty seconds to decide whether to trust Kira.

Some cards are genuinely hard to score. Tiered cards like UOB ONE, where your cashback rate depends on hitting total spend thresholds. Cards that only pay on Fridays, like Maybank Islamic Ikhwan. Cards with rates locked to specific merchants. Cards with per-category minimums. Cards that earn you nothing at all until you cross a line.

When the math is ambiguous, you have a choice. You can give the card the benefit of the doubt — assume the user hits every tier, every minimum, every condition — and the card scores high. Or you can assume they don't.

We chose to under-credit. Every time. When we're unsure, we assume the less favourable outcome for the card — and we write down that assumption in plain sight, so it's not hidden.

Think about what that costs us. The cards we're cautious about score lower, which means a more impressive-looking card sits above them, which arguably makes our results look less exciting. We deliberately made our own product look less flashy to keep it honest. We'd rather you open a card and find it beats our estimate than open one and feel cheated. Under-promise in the ranking, over-deliver in your wallet. A comparison site paid by commission would never make that trade. We're not paid by commission, so we did.

The check that earns the whole thing

Card details change constantly. A bank adjusts a cap, we correct a number, a new card launches. And here's the quiet danger: one wrong figure buried in one card's details can quietly reshuffle the entire ranking. The top card changes and nobody notices, because who re-checks every card by hand every single time?

We do. After every change to a card's details, we run a set of test profiles through the matcher — a big spender, someone who only eats out, a frequent traveller, someone on a tight budget — and sanity-check that nothing moved in the ranking that shouldn't have. If a small edit accidentally pushes the wrong card to the top, this is where we catch it before it reaches you.

We mention it because the work isn't visible from the outside, and the discipline is what keeps the ranking honest. Anyone can claim they're unbiased. Far fewer check themselves on every edit.

And the ranking itself runs on one number, and one number only: what you'd actually earn in a year after every cap, every minimum spend, and the annual fee. No thumb on the scale for cards that pay us more — because nothing in our ranking is wired to pay us more. That number is the whole ballgame.

What's free, and where we draw the line

Your top three matches are free. No email, no signup, no wall. We think you should be able to get real value from Kira before you give us anything.

If you want more, you give us an email and we show you up to ten. Not all sixty-plus — we thought about it and decided dumping the full list on you is noise dressed up as generosity. Ten ranked, relevant cards is a decision aid. Sixty is a spreadsheet. And our email sits in the footer — hello.kiramy@gmail.com — if you'd rather just talk to a human.

The full methodology is published at /methodology. Not a summary. The actual logic, the actual assumptions. If we ever change how we rank, that page changes, in public.

That's how we built Kira. We started by refusing the one thing the incumbents depend on, and let that refusal make every decision after it. The math is on the table. The assumptions are in the notes. The methodology is public.

Run your numbers. Then go check our work — we built it expecting you would.