Demo — invented data, read-only. Nothing here is anyone’s real spending.
RewardsMaxx
VISA SIGNATURE
•••• 5409
+ Add screenshot
Last upload 7 Aug · screenshotLast transaction 7 Aug
UNI$
2,390
Earned this cycle
4,780 mi

This cycle

10
10 days left
25 Jul24 Augstatement · monthly · by posting date
Spend
S$1,263.50
Qualifying
S$1,263.50
S$20.53 earns nothing
Earned
4,780 mi
Transactions
44
To 4.00 mpd · Overseas and foreign-currency spend
S$1,000.00
Left to bonus cap · Petrol and contactless, local
cap used up
Overseas and foreign-currency spend — needs S$1,000.00 to pay 4.00 mpdS$1,000.00 to go
S$0.00 of S$1,000.00 this cycle · until then this spend earns the base rate, not 4.00 mpd · 4.00 mpd on S$1,200.00 of it at most
Petrol and contactless, local — needs S$1,000.00 to pay 4.00 mpdopen
S$1,263.50 of S$1,000.00 this cycle · 4.00 mpd on S$1,200.00 of it at most , S$0.00 of that left
Overseas and foreign-currency spendS$0.00 of S$1,200.00 · 2,400 UNI$ cap
Petrol and contactless, localS$1,200.00 of S$1,200.00 · 2,400 UNI$ cap · used up
Over the cap — earned the floor rate+ S$63.50
This much was spent at the same merchants after the allowance was gone. Nothing about it was wrong — the cap is monthly and it filled — but every dollar of it was free to go on another card, where it would have earned more than the floor rate this one dropped it to.
S$113.50 fell short of a whole earning block and earned nothing.

Every cycle so far

Earned (UNI$)
2,545
Worth (miles)
5,090
Blended rate
2.46 mpd
Spend
S$2,066.48
Cycles
2
Lost to rounding
S$141.48
Blended rate divides by every dollar spent, including the S$141.48 that fell inside part-used S$5.00 blocks and earned nothing. That is what makes it the figure to compare cards on: it is what this card returned on everything you put through it.
S$141.48 of spend fell inside partial S$5.00 blocks and earned nothing — 57 miles at the rate each remainder actually lost. The bonus is rounded once for the whole cycle on this card, so a remainder left inside a transaction loses only the base rate — it still counts toward the cycle's bonus. It is the single remainder at the end of the cycle that costs the bonus, which is why this is worth less than the same spend at the card's headline rate.
  • Petrol and contactless, local · 4.00 mpd58%
  • Everything else · 0.40 mpd42%
CycleSpendUNI$Total rewards · milesHighest tierRateWasted
25 Jul24 AugS$1,263.502,390 *4,78095%3.78 mpdS$63.50
25 Jun24 JulS$802.98155 *3100%0.39 mpdS$802.98
Rate is total rewards over every dollar spent, so it moves with the “earned on” column rather than because the card changed. A figure marked * has no statement yet and is what we compute.

Where this cycle went

  • dining40%
  • groceries32%
  • healthcare24%
  • entertainment3%
  • transport_public1%
  • retail_instore0%

Spend, last six months

Average S$284.78 over 5 months, excluding the month still running

Transactions

MCC marked ≈ is inferred from the merchant name rather than supplied by the bank. “≈ unused” means the inference was not confident enough to unlock a bonus, and “✓ yours” is one you recorded.
Record an MCC for a merchantIf your bank's app shows the real MCC, put it here. It outranks any inference but never the code the bank printed on the statement.
56 of 56 rows
  • BUS/MRTS$1.12
    7 Augtransport_public4111contactless◷ pendingunreconciled
    0 UNI$0.00/$base
  • CROSSROADSS$14.79
    7 Augdining5814contactless◷ pendingunreconciled
    2 UNI$0.14/$base
  • KINGDOM SPAS$42.89
    7 Aughealthcare7298contactless◷ pendingunreconciled
    8 UNI$0.19/$base
  • BUS/MRTS$1.68
    6 Augtransport_public4111contactless◷ pendingunreconciled
    0 UNI$0.00/$petrol-contactless
  • ALDIS$19.52
    6 Auggroceries5411contactless◷ pendingunreconciled
    3 UNI$0.15/$petrol-contactless
  • ALDIS$11.47
    6 Auggroceries5411contactless◷ pendingunreconciled
    2 UNI$0.17/$petrol-contactless
  • CROSSROADSS$9.61
    6 Augdining5814contactless◷ pendingunreconciled
    1 UNI$0.10/$petrol-contactless
  • ALDIS$7.11
    6 Auggroceries5411contactless◷ pendingunreconciled
    0 UNI$0.00/$petrol-contactless → base
  • BUS/MRTS$1.30
    5 Augtransport_public4111contactless◷ pendingunreconciled
    0 UNI$0.00/$petrol-contactless
  • FIVE SPICES$6.26
    5 Augdining5814contactlessunreconciled
    1 UNI$0.16/$petrol-contactless
  • BUS/MRTS$1.39
    4 Augtransport_public4111contactless◷ pendingunreconciled
    0 UNI$0.00/$petrol-contactless
  • DRHAIRS$50.93
    4 Aughealthcare7298contactlessunreconciled
    10 UNI$0.20/$petrol-contactless
  • BREAKFAST GRILL EAST COAST ROADS$14.97
    4 Augdining5814contactlessunreconciled
    2 UNI$0.13/$petrol-contactless
  • WAA COW!S$26.28
    3 Augdining5812contactless◷ pendingunreconciled
    5 UNI$0.19/$petrol-contactless
  • BUS/MRTS$1.04
    2 Augtransport_public4111contactless◷ pendingunreconciled
    0 UNI$0.00/$petrol-contactless
  • TANUKI RAWS$12.64
    2 Augdining5812contactless◷ pendingunreconciled
    2 UNI$0.16/$petrol-contactless
  • PEZZOS$28.33
    2 Augdining5814contactless◷ pendingunreconciled
    5 UNI$0.18/$petrol-contactless
  • PEZZOS$9.24
    2 Augdining5814contactless◷ pendingunreconciled
    1 UNI$0.11/$petrol-contactless
  • PEZZOS$5.99
    2 Augdining5814contactless◷ pendingunreconciled
    1 UNI$0.17/$petrol-contactless
  • STEALTHS$1.37
    2 Augretail_instore5331contactless◷ pendingunreconciled
    0 UNI$0.00/$petrol-contactless

Card facts

Counted byPosting date — the day it reached the bank, not the day you paidCycleStatement month, monthly
Income Req.S$50,000 p.a. (S$60,000 for foreigners)Points Validity2 years
Annual FeeS$196.20 (first year waived)Min. TransferUNI$50 (10,000 miles)
Miles with Annual FeeN/ATransfer Partners5
FCY Fee3.25%Transfer FeeS$25 per conversion
Local Earn0.4 mpdPoints Pool?Yes, across UOB cards
FCY Earn4 mpd on at least S$1,000 of overseas spend a month*Lounge Access?No
Special Earn4 mpd on petrol and contactless, on at least S$1,000 a month*Airport Limo?No
* * Each category needs its OWN S$1,000 and either can qualify without the other. Overseas contactless counts only as overseas, never as both.

How this card earns

TierRateCap
Overseas and foreign-currency spend4.00 mpd2,400 UNI$
Petrol and contactless, local4.00 mpd2,400 UNI$
Everything else0.40 mpduncapped
UNI$miles · no transfer block · S$25.00 fee · expires after 24 months
Rule notes and caveats
HOW IT EARNS
- Two INDEPENDENT bonus categories at 10X UNI$ per S$5 (4 mpd), each needing
  S$1,000 of ITS OWN spend per statement period:
    Overseas Spend (foreign currency, including online)
    Petrol (MCC 5541/5542) and Contactless, combined
- Each capped separately at UNI$2,400 (~S$1,200 of spend).
- Below the minimum, the WHOLE card earns 0.4 mpd.

WATCH OUT
- Either category can qualify on its own — hence `requires_tier_spend_cents`.
  A card-wide minimum would let overseas spend wrongly unlock contactless.
- Clause 2(iii): a contactless transaction made OVERSEAS counts toward
  Overseas Spend only. Tier order enforces this, and the contactless tier
  additionally requires foreign: false.
- SimplyGo counts as contactless from 1 July 2025, but the channel inference
  does not recognise SimplyGo rows specifically yet.

NOT MODELLED
- The conversion fee and minimum transfer block, taken from UOB's other cards
  in this wallet rather than this card's own documentation.
- Income requirement is from the product page, not the T&C.

EVIDENCE
- Verified 2026-07-28 against UOB's own "Terms and Conditions Governing UOB
  Visa Signature Card", read from the PDF.
- The approval date turns out not to matter: cards approved before 1 July
  2025 moved to the per-category structure from their September 2025
  statement, so the older combined UNI$4,000 cap is dead for any cycle this
  app will evaluate.

Product

Approved oni

Not printed on a statement. Yours first appears on the statement to 24 Jul, so it was approved on or before then.
Leave it blank if you are not sure. A wrong date is worse than none — an expiry predicted from a guess would read as fact.

Usually paid by

Neither statements nor most app screens print how a payment was made, so most rows arrive with no channel at all. Nothing is assumed unless you say so here — assuming online by default made this card pay 4 mpd on restaurant dinners and six statements read up to 54% above what the bank actually paid. Set it only where it is true of the card. A channel you set on a single transaction always wins, and so does one worked backwards from a statement's printed reward total — that is arithmetic on what the bank actually paid, and this is a habit.“Only rows no statement has claimed” keeps the assumption to the cycle nothing else can speak for — app screenshots of spend the statement has not reached yet. When that statement arrives it supersedes those rows and the assumption is taken back off them, leaving the printed reward total to settle the channel. Use it on a card that prints one; use “every row” on a card where the habit is simply true of how you pay.

Cycle

Read off your statement where one has been imported. Only used by cards billed on a statement cycle rather than a calendar month.

Add from a screenshot

The current cycle has no statement yet, so nothing else can tell you how close you are to a minimum or a cap. Screenshot the transaction list in your banking app and upload it here — several consecutive scrolls are fine, in order.A points balance or expiry schedule works too — the yuu app's home and Expiring Points screens are read as readily as a transaction list. Reading them takes about half a minute per image: they go through the local model one at a time, so the page will sit still for a while. It is working.
7 Aug · 4 images · 17 rows read · images not kept for this upload
3 Aug · 8 images · 33 rows read · images not kept for this upload
Read on this machine by the local model — the images are never uploaded anywhere else. Rows land marked as coming from a screenshot, and the statement replaces them when it arrives rather than adding to them.

Statements

  • 2026-07-24
    eStatement UOB Jul 26.pdf
    coordinatenot kept
The original PDFs, kept so you can check any figure here against the document it came from.

Terms and conditions

The documents this card's rules were written from, kept as downloaded. A T&C is revised in place — the page a rate was read off in March may say something else today and nothing here would change — so what is linked is OUR copy, with the date the issuer printed on it.Commentary is linked but deliberately not archived — it is someone else's writing, and a local copy of it is neither ours to keep nor evidence of anything. Refresh with npx tsx scripts/fetch-terms.ts --all.
RewardsMaxx