Where every number
comes from.
A rewards app is only as good as its inputs. Here is exactly how Cardful sources card terms, values points, computes each verdict, and handles your data — including the parts we'd rather you audit than take on faith.
Every card carries the date we last checked it.
Cardful ships with a curated catalog of the cards this community actually carries. Each one stores its annual fee, its earning categories, every statement credit with its cadence and reset rule, and its welcome-bonus terms — and each one carries a verified-on date, stamped the last time those terms were checked against the issuer's own page.
That date is not buried in a database. It's printed at the bottom of the card's detail screen in the app, so you always know how fresh the terms you're looking at are.
- Terms are read from the issuer's own page, not copied from an aggregator or a blog.
- The full catalog is re-audited on a quarterly cycle, and immediately when an issuer change is reported.
- When a benefit is renamed, existing users keep their logged history — the row moves with the rename rather than resetting.
- Found something wrong? There's a report path in the app, and we'd genuinely rather hear it.
Illustrative record. Real dates vary per card and are visible in the app.
Frequent Miler's RRV by default, and you can override all of it.
Every points number in Cardful — the portfolio total, the best-card ranking, the fee payback — depends on one input: what a point is worth. We default to Frequent Miler's Reasonable Redemption Values, which are built from what a point realistically fetches on ordinary redemptions rather than from cherry-picked outliers.
You can switch the whole portfolio to The Points Guy's valuations in one tap, or enter your own cents-per-point for any program. Everything downstream — rankings, totals, verdicts — recalculates from your choice.
- The active source is labelled on screen. You always know which numbers you're looking at.
- Cash-back currencies are valued at exactly 1.00¢ — no flattering multiplier.
- A valuation is an estimate, not a price. It is not a promise about what you'll get.
- Frequent Miler and The Points Guy are independent publications with no relationship to Cardful; their names are used only to identify whose figures you've selected.
Figures shown are examples of the default source as it appears in the app. Published valuations change; the app follows the source you pick.
The calculations
Four formulas, written out
These are the whole of it. There is no hidden weighting and no scoring model you can't reconstruct with a calculator.
Best card
effective value = earn multiplier × cents-per-point of that currency
Computed for every card you hold, then sorted. A card the merchant won't accept is excluded rather than ranked low. Active offers are shown beside the ranking as a separate boost — they're temporary, and folding a promo into a permanent ranking produces bad habits.
Money on the table
unused = Σ (credit value − amount logged this period)
Summed across every credit in every card, for the period that is current right now. Status is derived from that arithmetic — available, used, expiring, expired — and never stored, so it can't drift out of sync with what you logged.
Fee payback
net = credits captured + vault value + points earned − annual fee
Only value you actually logged counts; unused credits contribute nothing. Positive means keep. Negative means Cardful names a downgrade product where one exists before it suggests cancelling, because closing a card affects your average account age and your available credit.
5/24
count = personal cards opened in the last 24 months that report
Business cards are excluded because most issuers don't report them to personal credit. Authorized-user cards are a setting, because issuers treat them inconsistently and only you know your situation. The result shows the rule that produced it, not just a colour.
Honest limits
What we don't claim
No invented social proof
Cardful launched this month. You won't find testimonials, user counts, star ratings, press logos or awards on this site, because we don't have them yet and inventing them would tell you everything about how we treat numbers.
No paid placement in your rankings
We may earn a commission if you apply for a card through a link and are approved. That link never changes the order of the cards in your wallet, which is produced entirely by the valuation engine. The disclosure spells this out.
Not financial advice
Cardful is a tracking and arithmetic tool. Card recommendations are general, not personalised financial advice, and approval, terms and pricing are always the issuer's decision. Verify anything material on the issuer's own page before you act on it.
What leaves your phone, and what never does.
Cardful works entirely from what you enter, because there is nothing to link: the app has no bank-connection feature and uses no bank-data aggregator. Cardful never sees, receives, or stores a bank username, password, or full card number, and it has no ability to move money or change anything at a financial institution.
The assistant runs on-device
It uses Apple's on-device models. Your wallet isn't sent to us or to any model provider to answer a question — which is also why it's free.
Location never leaves the phone
Nearby best-card uses your approximate location on device to look up venues. It isn't transmitted to us and isn't stored on our servers.
No card numbers, ever
Cardful stores which card you hold, not its number. There is no field for one. Face ID can lock the app on top of that.
The math is separated from the app so it can be proved.
Every calculation lives in a pure function with no network, no database and no clock of its own — ranking, 5/24, cents-per-point, keep-or-cancel, money-on-the-table, and valuation. Because they're pure, they're fully covered by unit tests: the same inputs always produce the same output, and a change that would alter your numbers fails the build.
- Money is stored as whole cents. Never a floating-point number, so totals can't drift.
- Benefit periods are recomputed on the device as well as on the server, so a missed server tick can't show you a wrong total.
- A corrupted offline cache is discarded and refetched rather than shown — the app doesn't guess.
- If a save can't reach the server, you get a visible "not saved — retry". Nothing is dropped silently.
"Pure" means no input other than its arguments: no network, no database, no hidden state. That's what makes full test coverage meaningful rather than decorative.
Numbers you can argue with.
That's the whole idea. If you find something wrong on this page or in the app, tell us and we'll fix it.
This page last reviewed 13 August 2026