earnrate 0.2.17 → 0.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/data/CHANGELOG.md +19 -1
- package/data/VERSION +1 -1
- package/data/cards/amex-business-gold.yaml +1 -0
- package/data/cards/amex-platinum.yaml +1 -1
- package/data/cards/chase-freedom-flex.yaml +3 -6
- package/data/cards/chase-ihg-one-rewards-premier.yaml +2 -0
- package/data/cards/chase-united-business.yaml +3 -0
- package/data/cards/chase-united-club-business.yaml +5 -0
- package/data/cards/citi-aadvantage-business.yaml +5 -0
- package/data/cards/citi-aadvantage-executive.yaml +2 -0
- package/data/cards/citi-aadvantage-globe.yaml +2 -0
- package/data/cards/citi-aadvantage-mileup.yaml +4 -0
- package/data/cards/citi-aadvantage-platinum-select.yaml +4 -0
- package/data/cards/citi-costco-anywhere-visa-business.yaml +2 -0
- package/data/cards/citi-costco-anywhere-visa.yaml +2 -0
- package/data/cards/citi-custom-cash.yaml +8 -10
- package/data/cards/citi-double-cash.yaml +1 -0
- package/data/cards/citi-my-best-buy-visa.yaml +1 -0
- package/data/cards/citi-strata-elite.yaml +2 -0
- package/data/cards/citi-strata-premier.yaml +2 -0
- package/data/cards/td-bank-nordstrom-credit-card.yaml +1 -0
- package/data/cards/td-bank-nordstrom-visa.yaml +1 -0
- package/data/changes.yaml +2840 -0
- package/dist/cli/offers.js +21 -5
- package/dist/cli/run.js +14 -3
- package/dist/cli/wallet.js +28 -3
- package/dist/data/change-integrity.js +105 -0
- package/dist/data/file-store.js +5 -2
- package/dist/data/integrity.js +7 -0
- package/dist/data/load.js +5 -0
- package/dist/data/store.js +4 -1
- package/dist/data/wallet-edit.js +16 -5
- package/dist/engine/changes.js +124 -0
- package/dist/engine/checklist.js +18 -3
- package/dist/engine/explore.js +28 -9
- package/dist/engine/offers.js +52 -3
- package/dist/engine/periods.js +7 -0
- package/dist/engine/renewal.js +101 -0
- package/dist/engine/rule-text.js +2 -7
- package/dist/engine/setup.js +6 -3
- package/dist/engine/simulate.js +14 -7
- package/dist/engine/text.js +64 -0
- package/dist/engine/wallet-change.js +16 -8
- package/dist/engine/wallet-summary.js +4 -0
- package/dist/format/card-text.js +9 -2
- package/dist/format/offers.js +5 -3
- package/dist/format/wallet-yaml.js +3 -0
- package/dist/format/wallet.js +6 -1
- package/dist/mcp/context.js +11 -3
- package/dist/mcp/inputs.js +3 -1
- package/dist/mcp/prompts.js +3 -3
- package/dist/mcp/schemas.js +24 -0
- package/dist/mcp/tools/answers.js +42 -24
- package/dist/mcp/tools/wallet.js +28 -8
- package/dist/schema/card.js +7 -0
- package/dist/schema/changes.js +73 -0
- package/dist/schema/wallet.js +5 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -62,7 +62,9 @@ Options: `--online` or `--in-store`, `--paying card|apple-pay|google-pay|paypal`
|
|
|
62
62
|
|
|
63
63
|
`earnrate cheatsheet` prints the card to use for each everyday kind of purchase this quarter (groceries, dining, gas, Amazon, Costco, travel, streaming, drugstores, everything else), with your caps, picks and activations as they are now. `--cards` uses cards you name instead, and `--every-card` picks from every card to show what's worth getting. It's also in the My wallet tab on [earnrate.dev](https://earnrate.dev).
|
|
64
64
|
|
|
65
|
-
`earnrate todo` lists what your saved cards need this quarter, soonest first: bonuses to activate (with Chase's deadline), categories to pick, caps running low, welcome bonuses to finish, spend bonuses you're close to, statement credits to enroll in or use,
|
|
65
|
+
`earnrate todo` lists what your saved cards need this quarter, soonest first: bonuses to activate (with Chase's deadline), categories to pick, caps running low, welcome bonuses to finish, spend bonuses you're close to, statement credits to enroll in or use, first-year rates ending, and a renewal check for each fee card in the month before its anniversary. `--ics earnrate.ics` also writes the dates as a calendar file with reminders. My wallet on earnrate.dev shows the same list as "To do now", with an "Add the dates to your calendar" button.
|
|
66
|
+
|
|
67
|
+
The renewal check weighs your wallet with the card against your wallet without it, where your other cards pick up its spending: "Amex Gold renews around Nov 20 ($325 fee). At typical spending, it earns about $30 a year more than your other cards would, plus $184 in credits you use: about $111 a year short of the fee." A card that's well ahead gets one short line. It uses your My spending amounts on earnrate.dev and typical amounts elsewhere, and needs the card's anniversary (`earnrate update amex-gold --anniversary 11-20`) or its opening date. It gives the math, not a downgrade recommendation: issuers don't publish downgrade paths or retention offers.
|
|
66
68
|
|
|
67
69
|
`earnrate missed` lists the stores earnrate didn't recognize when you asked here, most asked about first. They're kept only on your computer; [open an issue](https://github.com/cwasley/earnrate/issues) to suggest one for the data.
|
|
68
70
|
|
|
@@ -187,7 +189,11 @@ earnrate simulate groceries=600 other=1000 --wallet # what a new card would ad
|
|
|
187
189
|
earnrate offers --cash
|
|
188
190
|
```
|
|
189
191
|
|
|
190
|
-
Ranks the
|
|
192
|
+
Ranks the cards you don't have by their first two years together, to answer "which card next?": what each adds to your cards at typical spending (it takes the purchases where it earns more than they do), plus its welcome bonus at your point values in year one if the minimum spend fits in the window with all your spending on it, less each year's annual fee and any membership it needs. Each card shows year one, year two, how many weeks of spending the minimum takes, and the bonus alone. Year one counts the card at its standard rates.
|
|
193
|
+
|
|
194
|
+
If you can't or won't get cards from an issuer (Chase, over its 5/24 rule), `earnrate skip-issuers chase` saves that, and next-card answers here, in "would another card help?" and in Claude leave its cards out; `--skip-issuer chase` does it for one answer, and `--none` clears the list. earnrate never assumes an issuer's application rules, since they aren't published as terms it can quote.
|
|
195
|
+
|
|
196
|
+
An offer the issuer rules out because of a card in your wallet (or one you name with `--cards`) is marked "likely not eligible" and listed last. `--points`, `--no-fee` and `--business` narrow it down. Each offer is the public one on the issuer's page, checked weekly like the earning rules, with the issuer's eligibility rules in its note. Offers can differ by person and by how you apply, and it covers only the cards earnrate knows. There are no affiliate or apply links.
|
|
191
197
|
|
|
192
198
|
### Import a statement
|
|
193
199
|
|
|
@@ -321,7 +327,7 @@ earnrate needs no account. The local version has no telemetry; the hosted server
|
|
|
321
327
|
- **What it stores locally:** your wallet, a YAML file on your computer (`~/.earnrate/wallet.yaml` unless you set `EARNRATE_WALLET`). It lists cards by product ID, like `amex-gold`, plus your category picks, activations and how much you've spent toward caps. earnrate never asks for or stores card numbers, expiry dates, security codes or bank logins. When you ask about a store earnrate doesn't recognize, its name goes in `~/.earnrate/missed-merchants.json` (`earnrate missed` lists them; `EARNRATE_MISSED_MERCHANTS=off` keeps no list).
|
|
322
328
|
- **What the local version sends:** nothing, by default. The optional merchant lookup (off unless you turn it on with your own Anthropic API key) sends only the name of a store earnrate doesn't recognize to Anthropic's API, and saves the answer in `~/.earnrate/merchant-cache.json`.
|
|
323
329
|
- **AI assistants:** when you use earnrate through Claude or another assistant, that assistant's provider sees the conversation, including earnrate's answers, under its own privacy policy.
|
|
324
|
-
- **earnrate.dev:** everything you enter on the site stays in your browser, except when you add the cheat sheet to Apple Wallet: then pass.earnrate.dev receives what the pass needs (card IDs, picks, activations, checkout names, memberships and the date) and keeps none of it. If you turn on syncing with Claude, the wallet (cards, picks, activations, memberships, point values, cap and spending totals, credits used and not used, opening dates) goes to mcp.earnrate.dev and is stored encrypted, like the connector's; a purchase you record is sent so its totals can be updated, and only the totals are kept. Searches, stores and amounts you ask about still never leave the browser. The sign-in stays in a cookie the page's scripts can't read. The site counts which of its parts get used, by name only, and counts visits with Cloudflare Web Analytics, without cookies.
|
|
330
|
+
- **earnrate.dev:** everything you enter on the site stays in your browser, except when you add the cheat sheet to Apple Wallet: then pass.earnrate.dev receives what the pass needs (card IDs, picks, activations, checkout names, memberships and the date) and keeps none of it. If you turn on syncing with Claude, the wallet (cards, picks, activations, memberships, point values, cap and spending totals, credits used and not used, opening dates, issuers left out of next-card answers) goes to mcp.earnrate.dev and is stored encrypted, like the connector's; a purchase you record is sent so its totals can be updated, and only the totals are kept. Searches, stores and amounts you ask about still never leave the browser. The sign-in stays in a cookie the page's scripts can't read. The site counts which of its parts get used, by name only, and counts visits with Cloudflare Web Analytics, without cookies.
|
|
325
331
|
- **Retention:** locally, your data lives only in files you control, for as long as you keep them. Delete the wallet file, or clear the site's data in your browser, to remove it. A saved wallet on mcp.earnrate.dev lasts until you delete it or leave it unused for 13 months (a week, if it's never used); the record that an app is connected goes after 90 days unused.
|
|
326
332
|
- **Terms:** [earnrate.dev/terms](https://earnrate.dev/terms).
|
|
327
333
|
- **Contact:** [hello@earnrate.dev](mailto:hello@earnrate.dev).
|
package/data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
# Data changelog
|
|
2
2
|
|
|
3
|
-
Every change to card rules, merchants, categories or currencies under `data/`. Bump `data/VERSION` (`YYYY.MM.DD`, plus `.N` for a second release on the same day) and add a section here in the same commit. Each row cites the issuer page the new value came from.
|
|
3
|
+
Every change to card rules, merchants, categories or currencies under `data/`. Bump `data/VERSION` (`YYYY.MM.DD`, plus `.N` for a second release on the same day) and add a section here in the same commit, with the same release's entries in `data/changes.yaml` (the structured record, each change tagged by cause). Each row cites the issuer page the new value came from.
|
|
4
|
+
|
|
5
|
+
## 2026.11.07.3
|
|
6
|
+
|
|
7
|
+
- `chase-freedom-flex`: the limited-time $250 welcome offer has ended; it's $200 after $500 in purchases in the first 3 months again. A card-page quote that ran two category names together ("Dining American Red Cross") is removed; the Q4 dining rule keeps its quotes from Chase's learn-more page. Source: [Chase](https://creditcards.chase.com/cash-back-credit-cards/freedom/flex).
|
|
8
|
+
- `amex-platinum`: the Equinox credit quotes Amex's new wording (still up to $300 each calendar year). Source: [Amex terms](https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0).
|
|
9
|
+
|
|
10
|
+
## 2026.11.07.2
|
|
11
|
+
|
|
12
|
+
- `citi-custom-cash` and `amex-business-gold`: their bonus categories are marked `automatic: true`, since the issuer applies the bonus to the categories with the most spending each billing period; the cardholder doesn't pick. Answers and pages now say "the category you spend the most in each month" instead of "the category you pick". No rate changes. Sources: [Citi ThankYou terms](https://www.thankyou.com/ccterms), [Amex offer terms](https://www.americanexpress.com/en-us/credit-cards/apply/terms/business/prospect/businessgold-card/64573-9-0#offer-terms).
|
|
13
|
+
|
|
14
|
+
## 2026.11.07.1
|
|
15
|
+
|
|
16
|
+
Evidence quotes only; no rates, fees, offers or credits changed. No issuer changes.
|
|
17
|
+
|
|
18
|
+
- 39 quotes on 16 cards live in popups the page builds from its embedded data only when opened. Each now has `in_popup: true`, after the quote was seen in the open popup: Chase's benefit popups (`chase-ihg-one-rewards-premier`, `chase-united-business`, `chase-united-club-business`), Citi's "Additional Information" panel (`citi-aadvantage-business`, `citi-aadvantage-executive`, `citi-aadvantage-globe`, `citi-aadvantage-mileup`, `citi-aadvantage-platinum-select`, `citi-costco-anywhere-visa`, `citi-costco-anywhere-visa-business`, `citi-double-cash`, `citi-my-best-buy-visa`, `citi-strata-elite`, `citi-strata-premier`) and Nordstrom's "Terms Apply" popup (`td-bank-nordstrom-credit-card`, `td-bank-nordstrom-visa`).
|
|
19
|
+
- `citi-custom-cash`: the card page shows only that applications closed on May 28, 2026, so its 1% base rate and 5% top-category quotes now come from the card's ThankYou terms ("1 ThankYou Point for each $1 you spend on purchases", "5 ThankYou Points for each $1 You spend in Your highest eligible spend category each billing cycle"), and the Citi Travel rule keeps only its ThankYou terms quote. Same rates. Source: [ThankYou terms](https://www.thankyou.com/ccterms).
|
|
4
20
|
|
|
5
21
|
## 2026.11.07
|
|
6
22
|
|
|
@@ -663,6 +679,8 @@ Cards can name a paid membership they need (`requires_membership`). Costco Anywh
|
|
|
663
679
|
| citi-costco-anywhere-visa, citi-costco-anywhere-visa-business | requires_membership | Costco membership, $65 a year | [Citi card page](https://www.citi.com/credit-cards/citi-costco-anywhere-visa-credit-card), [Costco membership page](https://www.costco.com/join-costco.html) |
|
|
664
680
|
| citi-aadvantage-globe | evidence | quotes follow Citi's new wording (same rates) | [card page](https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard) |
|
|
665
681
|
|
|
682
|
+
Recorded late: changes made on 2026-10-31 without a section of their own, first shipped in this release. New public welcome offers: Atmos Rewards Ascent 70,000 points after $2,500 (was 50,000 after $1,500) and Summit 80,000 after $4,000 (was 70,000 after $3,000); Southwest Plus 80,000 (was 50,000), Premier 85,000 after $2,000 (was 55,000 after $1,500) and Priority 90,000 after $3,000 (was 60,000 after $2,000), all limited-time; Southwest Premier Business back to 60,000 (was a limited-time 80,000); AAdvantage Business 75,000 after $5,000 in 5 months (was 65,000 after $4,000 in 4); AAdvantage Platinum Select 50,000 after $2,500 in 3 months (was a limited-time 80,000 after $3,500 in 4). Each card was re-checked against its issuer's page. The five Amex "as high as" offers take `varies: true`; Blue Cash Preferred, Blue Cash Everyday and Costco Anywhere Business quotes follow their pages' new wording; Freedom Flex's Q4 dining note says the stacking with 3% is unstated; Costco.com takes Visa and Mastercard. Sources: each card's `welcome_offer` evidence.
|
|
683
|
+
|
|
666
684
|
## 2026.10.30.3
|
|
667
685
|
|
|
668
686
|
More everyday words find categories, for questions asked without a store name ("coffee shop", "dinner", "train"). Each maps to the category those purchases already fall under. No rates changed.
|
package/data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2026.11.07
|
|
1
|
+
2026.11.07.3
|
|
@@ -202,7 +202,7 @@ evidence:
|
|
|
202
202
|
quote: 'The Wall Street Journal, YouTube Premium, and YouTube TV.'
|
|
203
203
|
- rule: equinox
|
|
204
204
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
205
|
-
quote: '
|
|
205
|
+
quote: 'Enrolled Basic Card Members can earn up to $300 in statement credits each calendar year'
|
|
206
206
|
- rule: oura
|
|
207
207
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
208
208
|
quote: 'Enrolled Basic Card Members can receive up to $200 in statement credits each calendar year'
|
|
@@ -16,10 +16,10 @@ base_rate: 1
|
|
|
16
16
|
annual_fee: 0
|
|
17
17
|
foreign_transaction_fee: 0
|
|
18
18
|
welcome_offer:
|
|
19
|
-
dollars:
|
|
19
|
+
dollars: 200
|
|
20
20
|
spend: 500
|
|
21
21
|
months: 3
|
|
22
|
-
note: '
|
|
22
|
+
note: 'Chase: "available to you if you do not have this card and have not received a new cardmember bonus for this card in the past 24 months."'
|
|
23
23
|
# Its cash back is earned as points, which Chase lets you move to another
|
|
24
24
|
# Ultimate Rewards card on your account.
|
|
25
25
|
pools_into:
|
|
@@ -152,9 +152,6 @@ evidence:
|
|
|
152
152
|
- rule: q4-2026-dining
|
|
153
153
|
url: https://www.chase.com/personal/credit-cards/freedom/flex-learnmore
|
|
154
154
|
quote: 'For Dining purchases, you will earn 7% cash back (3% Dining cash back + 4% bonus category cash back)'
|
|
155
|
-
- rule: q4-2026-dining
|
|
156
|
-
url: https://creditcards.chase.com/cash-back-credit-cards/freedom/flex
|
|
157
|
-
quote: 'Dining American Red Cross'
|
|
158
155
|
- rule: q4-2026-dining
|
|
159
156
|
url: https://creditcards.chase.com/cash-back-credit-cards/freedom/flex
|
|
160
157
|
quote: '5% Cash Back rewards total for each $1 spent until $1,500 is spent'
|
|
@@ -187,7 +184,7 @@ evidence:
|
|
|
187
184
|
quote: 'Annual Membership Fee None'
|
|
188
185
|
- rule: welcome_offer
|
|
189
186
|
url: https://creditcards.chase.com/cash-back-credit-cards/freedom/flex
|
|
190
|
-
quote: 'Earn a $
|
|
187
|
+
quote: 'Earn a $200 bonus after you spend $500 on purchases in the first 3 months from account opening'
|
|
191
188
|
- rule: foreign_transaction_fee
|
|
192
189
|
url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC65280.html
|
|
193
190
|
quote: 'Foreign Transactions None Penalty Fees'
|
|
@@ -113,6 +113,7 @@ evidence:
|
|
|
113
113
|
- rule: spend-15k
|
|
114
114
|
url: https://creditcards.chase.com/travel-credit-cards/ihg-rewards-club/premier
|
|
115
115
|
quote: 'Earn 15,000 bonus points after you spend $15,000 on purchases each calendar year.'
|
|
116
|
+
in_popup: true
|
|
116
117
|
- rule: spend-15k
|
|
117
118
|
url: https://creditcards.chase.com/travel-credit-cards/ihg-rewards-club/premier
|
|
118
119
|
quote: 'will qualify for Platinum Elite Status, 5 Elite Night credits and 15,000 bonus points'
|
|
@@ -128,6 +129,7 @@ evidence:
|
|
|
128
129
|
- rule: instacart
|
|
129
130
|
url: https://creditcards.chase.com/travel-credit-cards/ihg-rewards-club/premier
|
|
130
131
|
quote: 'Active Instacart+ membership is required to receive your $10 monthly credit.'
|
|
132
|
+
in_popup: true
|
|
131
133
|
todo:
|
|
132
134
|
- The $100 airline statement credit (after $250 on flights bought directly each calendar year, through 12/31/27) isn't modeled.
|
|
133
135
|
- "The issuer's terms don't say whether purchases a credit pays for earn rewards. Its credits are modeled as earning the card's rate on the whole purchase, with the credit on top."
|
|
@@ -129,9 +129,12 @@ evidence:
|
|
|
129
129
|
- rule: rideshare
|
|
130
130
|
url: https://creditcards.chase.com/business-credit-cards/united/united-business-card
|
|
131
131
|
quote: 'up to $8 back as a statement credit each month from January through November'
|
|
132
|
+
in_popup: true
|
|
132
133
|
- rule: rideshare
|
|
133
134
|
url: https://creditcards.chase.com/business-credit-cards/united/united-business-card
|
|
134
135
|
quote: 'Yearly opt-in is required.'
|
|
136
|
+
in_popup: true
|
|
135
137
|
- rule: jsx
|
|
136
138
|
url: https://creditcards.chase.com/business-credit-cards/united/united-business-card
|
|
137
139
|
quote: 'Get up to $100 back as a statement credit each anniversary year when you book flights directly with JSX'
|
|
140
|
+
in_popup: true
|
|
@@ -106,18 +106,23 @@ evidence:
|
|
|
106
106
|
- rule: spend-50k
|
|
107
107
|
url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
|
|
108
108
|
quote: 'Receive United Club All Access Membership after spending $50,000 in a calendar year'
|
|
109
|
+
in_popup: true
|
|
109
110
|
- rule: instacart
|
|
110
111
|
url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
|
|
111
112
|
quote: 'you can receive two (2) $10 credits in your Instacart account each month'
|
|
112
113
|
- rule: rideshare
|
|
113
114
|
url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
|
|
114
115
|
quote: 'up to $12 back as a statement credit each month from January through November'
|
|
116
|
+
in_popup: true
|
|
115
117
|
- rule: rideshare
|
|
116
118
|
url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
|
|
117
119
|
quote: 'Yearly opt-in is required.'
|
|
120
|
+
in_popup: true
|
|
118
121
|
- rule: jsx
|
|
119
122
|
url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
|
|
120
123
|
quote: 'Get up to $200 back as a statement credit each anniversary year when you book flights directly with JSX'
|
|
124
|
+
in_popup: true
|
|
121
125
|
- rule: renowned-hotels-credit
|
|
122
126
|
url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
|
|
123
127
|
quote: 'Receive up to $200 back in statement credits each anniversary year on hotel accommodations'
|
|
128
|
+
in_popup: true
|
|
@@ -60,27 +60,32 @@ evidence:
|
|
|
60
60
|
- rule: american-airlines
|
|
61
61
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
62
62
|
quote: 'Eligible American Airlines purchases are items billed by American Airlines as the merchant of record.'
|
|
63
|
+
in_popup: true
|
|
63
64
|
- rule: american-airlines
|
|
64
65
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
65
66
|
quote: 'Products or services that do not qualify are car rentals booked through aadvantagecars.com'
|
|
67
|
+
in_popup: true
|
|
66
68
|
- rule: car-rentals
|
|
67
69
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
68
70
|
quote: 'Earn 2 AAdvantage® miles for your business on every $1 spent at car rental merchants and gas stations'
|
|
69
71
|
- rule: car-rentals
|
|
70
72
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
71
73
|
quote: 'purchases made through travel agencies, tour operators, and online third party travel sites'
|
|
74
|
+
in_popup: true
|
|
72
75
|
- rule: gas-stations
|
|
73
76
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
74
77
|
quote: 'Earn 2 AAdvantage® miles for your business on every $1 spent at car rental merchants and gas stations'
|
|
75
78
|
- rule: gas-stations
|
|
76
79
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
77
80
|
quote: 'purchases made at warehouse clubs that do not code gas station purchases under a gas station code'
|
|
81
|
+
in_popup: true
|
|
78
82
|
- rule: telecom-cable-satellite
|
|
79
83
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
80
84
|
quote: 'Earn 2 AAdvantage® miles for your business on every $1 spent at telecommunications merchants and cable and satellite providers'
|
|
81
85
|
- rule: telecom-cable-satellite
|
|
82
86
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
83
87
|
quote: 'Cable and satellite providers are classified as merchants that provide the connection and ongoing delivery of television'
|
|
88
|
+
in_popup: true
|
|
84
89
|
- rule: annual_fee
|
|
85
90
|
url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
|
|
86
91
|
quote: 'The annual fee is $99. However, this fee is waived for the first 12 months.'
|
|
@@ -59,12 +59,14 @@ evidence:
|
|
|
59
59
|
- rule: aadvantage-cars
|
|
60
60
|
url: https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard
|
|
61
61
|
quote: 'Payless car rentals will not qualify.'
|
|
62
|
+
in_popup: true
|
|
62
63
|
- rule: american-airlines
|
|
63
64
|
url: https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard
|
|
64
65
|
quote: 'Earn 4 AAdvantage® miles for every $1 spent on eligible American Airlines purchases'
|
|
65
66
|
- rule: american-airlines
|
|
66
67
|
url: https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard
|
|
67
68
|
quote: 'Eligible American Airlines purchases are items billed by American Airlines as the merchant of record.'
|
|
69
|
+
in_popup: true
|
|
68
70
|
- rule: american-airlines
|
|
69
71
|
url: https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard
|
|
70
72
|
quote: 'After you spend $150,000 in purchases in a calendar year, earn a total of 5 AAdvantage® miles'
|
|
@@ -48,6 +48,7 @@ evidence:
|
|
|
48
48
|
- rule: american-airlines
|
|
49
49
|
url: https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard
|
|
50
50
|
quote: 'Eligible American Airlines purchases are items billed by American Airlines as the merchant of record.'
|
|
51
|
+
in_popup: true
|
|
51
52
|
- rule: restaurants
|
|
52
53
|
url: https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard
|
|
53
54
|
quote: 'Earn 2 AAdvantage® miles for every $1 spent at restaurants, including takeout and delivery'
|
|
@@ -57,6 +58,7 @@ evidence:
|
|
|
57
58
|
- rule: rides-and-rails
|
|
58
59
|
url: https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard
|
|
59
60
|
quote: 'passenger railways, bridge and road tolls, parking lots'
|
|
61
|
+
in_popup: true
|
|
60
62
|
- rule: annual_fee
|
|
61
63
|
url: https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard
|
|
62
64
|
quote: 'Annual fee: $350. Minimum interest charge $0.50.'
|
|
@@ -40,18 +40,22 @@ evidence:
|
|
|
40
40
|
- rule: american-airlines
|
|
41
41
|
url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
|
|
42
42
|
quote: 'Eligible American Airlines purchases are items billed by American Airlines as the merchant of record.'
|
|
43
|
+
in_popup: true
|
|
43
44
|
- rule: grocery-stores
|
|
44
45
|
url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
|
|
45
46
|
quote: 'Earn 2 AAdvantage® miles for each $1 spent at grocery stores, including grocery delivery services'
|
|
46
47
|
- rule: grocery-stores
|
|
47
48
|
url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
|
|
48
49
|
quote: 'convenience stores, markets, specialty vendors, and bakeries'
|
|
50
|
+
in_popup: true
|
|
49
51
|
- rule: grocery-stores
|
|
50
52
|
url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
|
|
51
53
|
quote: 'discount superstores, wholesale'
|
|
54
|
+
in_popup: true
|
|
52
55
|
- rule: grocery-stores
|
|
53
56
|
url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
|
|
54
57
|
quote: 'confectionery stores, cafes, bars, lounges, and fast food restaurants'
|
|
58
|
+
in_popup: true
|
|
55
59
|
- rule: annual_fee
|
|
56
60
|
url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
|
|
57
61
|
quote: 'Annual Fee - None. Fee for Foreign Purchases - 3%'
|
|
@@ -53,18 +53,21 @@ evidence:
|
|
|
53
53
|
- rule: american-airlines
|
|
54
54
|
url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
|
|
55
55
|
quote: 'Eligible American Airlines purchases are items billed by American Airlines as the merchant of record.'
|
|
56
|
+
in_popup: true
|
|
56
57
|
- rule: restaurants
|
|
57
58
|
url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
|
|
58
59
|
quote: 'Earn 2 AAdvantage® miles for every $1 spent at restaurants, including takeout'
|
|
59
60
|
- rule: restaurants
|
|
60
61
|
url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
|
|
61
62
|
quote: 'restaurants (including cafes, bars, lounges, and fast food restaurants) and at gas stations'
|
|
63
|
+
in_popup: true
|
|
62
64
|
- rule: gas-stations
|
|
63
65
|
url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
|
|
64
66
|
quote: 'Earn 2 AAdvantage® miles for every $1 spent at gas stations'
|
|
65
67
|
- rule: gas-stations
|
|
66
68
|
url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
|
|
67
69
|
quote: 'purchases made at warehouse clubs that do not code gas station purchases under a gas station code'
|
|
70
|
+
in_popup: true
|
|
68
71
|
- rule: annual_fee
|
|
69
72
|
url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
|
|
70
73
|
quote: 'Annual fee - $99, waived for the first 12 months.'
|
|
@@ -86,3 +89,4 @@ evidence:
|
|
|
86
89
|
- rule: spend-20k
|
|
87
90
|
url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
|
|
88
91
|
quote: 'Earn a $125 American Airlines Flight Discount certificate (the “Flight Discount”) after you spend $20,000 or more in purchases'
|
|
92
|
+
in_popup: true
|
|
@@ -69,6 +69,7 @@ evidence:
|
|
|
69
69
|
- rule: gas-and-ev-charging
|
|
70
70
|
url: https://www.citi.com/credit-cards/costco-anywhere-visa-business-card
|
|
71
71
|
quote: 'for gas or EV charging purchased at some superstores, supermarkets and warehouse clubs other than Costco'
|
|
72
|
+
in_popup: true
|
|
72
73
|
- rule: restaurants
|
|
73
74
|
url: https://www.citi.com/credit-cards/costco-anywhere-visa-business-card
|
|
74
75
|
quote: '3% cash back on restaurant purchases (including cafes, bars, lounges, and fast food restaurants)'
|
|
@@ -84,6 +85,7 @@ evidence:
|
|
|
84
85
|
- rule: restaurants
|
|
85
86
|
url: https://www.citi.com/credit-cards/costco-anywhere-visa-business-card
|
|
86
87
|
quote: 'for purchases made at bakeries and certain restaurants'
|
|
88
|
+
in_popup: true
|
|
87
89
|
- rule: costco
|
|
88
90
|
url: https://www.citi.com/credit-cards/costco-anywhere-visa-business-card
|
|
89
91
|
quote: '2% cash back on all other purchases from Costco and Costco.com'
|
|
@@ -68,6 +68,7 @@ evidence:
|
|
|
68
68
|
- rule: gas-and-ev-charging
|
|
69
69
|
url: https://www.citi.com/credit-cards/citi-costco-anywhere-visa-credit-card
|
|
70
70
|
quote: 'for gas or EV charging purchased at some superstores, supermarkets and warehouse clubs other than Costco'
|
|
71
|
+
in_popup: true
|
|
71
72
|
- rule: restaurants
|
|
72
73
|
url: https://www.citi.com/credit-cards/citi-costco-anywhere-visa-credit-card
|
|
73
74
|
quote: '3% cash back on restaurant purchases (including cafes, bars, lounges, and fast food restaurants)'
|
|
@@ -83,6 +84,7 @@ evidence:
|
|
|
83
84
|
- rule: restaurants
|
|
84
85
|
url: https://www.citi.com/credit-cards/citi-costco-anywhere-visa-credit-card
|
|
85
86
|
quote: 'for purchases made at bakeries and certain restaurants'
|
|
87
|
+
in_popup: true
|
|
86
88
|
- rule: costco
|
|
87
89
|
url: https://www.citi.com/credit-cards/citi-costco-anywhere-visa-credit-card
|
|
88
90
|
quote: '2% cash back on all other purchases from Costco and Costco.com'
|
|
@@ -4,12 +4,12 @@ color: '#3a7d8c'
|
|
|
4
4
|
issuer: citi
|
|
5
5
|
network: mastercard
|
|
6
6
|
currency: cash
|
|
7
|
-
last_verified: 2026-11-
|
|
7
|
+
last_verified: 2026-11-07
|
|
8
8
|
verified_by: claude
|
|
9
9
|
applications_closed: 2026-05-28
|
|
10
10
|
# Existing cardmembers keep the card and its rewards. The card page no longer
|
|
11
|
-
#
|
|
12
|
-
# ThankYou terms (Sept 2026).
|
|
11
|
+
# states any earning terms, so the rates and definitions come from the card's
|
|
12
|
+
# current ThankYou terms (Sept 2026).
|
|
13
13
|
source_urls:
|
|
14
14
|
- https://www.citi.com/credit-cards/citi-custom-cash-credit-card
|
|
15
15
|
- https://www.thankyou.com/ccterms
|
|
@@ -28,6 +28,7 @@ choices:
|
|
|
28
28
|
- id: top-category
|
|
29
29
|
pick: 1
|
|
30
30
|
period: month
|
|
31
|
+
automatic: true
|
|
31
32
|
options:
|
|
32
33
|
restaurants: [dining]
|
|
33
34
|
gas-stations: [gas]
|
|
@@ -107,14 +108,14 @@ todo:
|
|
|
107
108
|
# Issuer text backing each rule; `yarn check-sources` checks it weekly.
|
|
108
109
|
evidence:
|
|
109
110
|
- rule: base_rate
|
|
110
|
-
url: https://www.
|
|
111
|
-
quote: '
|
|
111
|
+
url: https://www.thankyou.com/ccterms
|
|
112
|
+
quote: '1 ThankYou Point for each $1 you spend on purchases'
|
|
112
113
|
- rule: base_rate
|
|
113
114
|
url: https://www.thankyou.com/ccterms
|
|
114
115
|
quote: 'You can combine them into one ThankYou Account'
|
|
115
116
|
- rule: top-category
|
|
116
|
-
url: https://www.
|
|
117
|
-
quote: '
|
|
117
|
+
url: https://www.thankyou.com/ccterms
|
|
118
|
+
quote: '5 ThankYou Points for each $1 You spend in Your highest eligible spend category each billing cycle'
|
|
118
119
|
- rule: top-category
|
|
119
120
|
url: https://www.thankyou.com/ccterms
|
|
120
121
|
quote: 'After the first $500 spent in that category during the billing cycle'
|
|
@@ -148,9 +149,6 @@ evidence:
|
|
|
148
149
|
- rule: citi-travel-hotels-cars-attractions
|
|
149
150
|
url: https://www.thankyou.com/ccterms
|
|
150
151
|
quote: 'only the portion paid with your card will earn points'
|
|
151
|
-
- rule: citi-travel-hotels-cars-attractions
|
|
152
|
-
url: https://www.citi.com/credit-cards/citi-custom-cash-credit-card
|
|
153
|
-
quote: 'additional 4% cash back on hotels, car rentals, and attractions booked with Citi Travel'
|
|
154
152
|
- rule: citi-travel-hotels-cars-attractions
|
|
155
153
|
url: https://www.thankyou.com/ccterms
|
|
156
154
|
quote: '4 additional ThankYou Points for each $1 spent on hotels, car rentals, and attractions'
|
|
@@ -56,6 +56,7 @@ evidence:
|
|
|
56
56
|
- rule: citi-travel-hotels-cars-attractions
|
|
57
57
|
url: https://www.citi.com/credit-cards/citi-double-cash-credit-card
|
|
58
58
|
quote: 'this totals 5 ThankYou Points per dollar'
|
|
59
|
+
in_popup: true
|
|
59
60
|
- rule: citi-travel-hotels-cars-attractions
|
|
60
61
|
url: https://www.thankyou.com/dcterms
|
|
61
62
|
quote: '3 additional ThankYou Points for each $1 spent on hotels, car rentals and attractions booked with Citi Travel'
|
|
@@ -43,6 +43,7 @@ evidence:
|
|
|
43
43
|
- rule: best-buy
|
|
44
44
|
url: https://www.citi.com/credit-cards/citi-best-buy-credit-cards
|
|
45
45
|
quote: 'are only awarded when you select Standard Credit'
|
|
46
|
+
in_popup: true
|
|
46
47
|
- rule: gas
|
|
47
48
|
url: https://www.citi.com/credit-cards/citi-best-buy-credit-cards
|
|
48
49
|
quote: 'per $1 spent at gas stations (3% back in rewards)'
|
|
@@ -66,6 +66,7 @@ evidence:
|
|
|
66
66
|
- rule: citi-travel-hotels-cars-attractions
|
|
67
67
|
url: https://www.citi.com/credit-cards/citi-strata-elite-credit-card
|
|
68
68
|
quote: 'only the portion paid with your card will earn points'
|
|
69
|
+
in_popup: true
|
|
69
70
|
- rule: citi-travel-air
|
|
70
71
|
url: https://www.citi.com/credit-cards/citi-strata-elite-credit-card
|
|
71
72
|
quote: '6 points per dollar spent on Air Travel booked on cititravel.com'
|
|
@@ -78,6 +79,7 @@ evidence:
|
|
|
78
79
|
- rule: restaurants
|
|
79
80
|
url: https://www.citi.com/credit-cards/citi-strata-elite-credit-card
|
|
80
81
|
quote: 'Excludes purchases at bakeries, caterers, and restaurants located inside another business'
|
|
82
|
+
in_popup: true
|
|
81
83
|
- rule: restaurants
|
|
82
84
|
url: https://www.thankyou.com/terms
|
|
83
85
|
quote: '3 ThankYou Points for each $1 spent at restaurants, including restaurant delivery services'
|
|
@@ -85,9 +85,11 @@ evidence:
|
|
|
85
85
|
- rule: travel-agencies
|
|
86
86
|
url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
|
|
87
87
|
quote: 'Includes purchases at airlines, hotels (not booked through the Citi Travel site via'
|
|
88
|
+
in_popup: true
|
|
88
89
|
- rule: travel-agencies
|
|
89
90
|
url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
|
|
90
91
|
quote: '), and travel agencies.'
|
|
92
|
+
in_popup: true
|
|
91
93
|
- rule: restaurants
|
|
92
94
|
url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
|
|
93
95
|
quote: '3 points per dollar spent at Restaurants'
|
|
@@ -74,6 +74,7 @@ evidence:
|
|
|
74
74
|
- rule: not_with
|
|
75
75
|
url: https://www.nordstrom.com/becomecardmember
|
|
76
76
|
quote: 'Current and previous Nordstrom credit cardmembers and Nordstrom employees are not eligible for this offer'
|
|
77
|
+
in_popup: true
|
|
77
78
|
- rule: nordstrom
|
|
78
79
|
url: https://www.nordstrom.com/browse/nordy-club/faq
|
|
79
80
|
quote: "If you use your Nordstrom card via Google Pay or Apple Pay, you'll earn your standard Nordy Club base points"
|
|
@@ -114,6 +114,7 @@ evidence:
|
|
|
114
114
|
- rule: not_with
|
|
115
115
|
url: https://www.nordstrom.com/becomecardmember
|
|
116
116
|
quote: 'Current and previous Nordstrom credit cardmembers and Nordstrom employees are not eligible for this offer'
|
|
117
|
+
in_popup: true
|
|
117
118
|
- rule: nordstrom
|
|
118
119
|
url: https://www.nordstrom.com/browse/nordy-club/faq
|
|
119
120
|
quote: "If you use your Nordstrom card via Google Pay or Apple Pay, you'll earn your standard Nordy Club base points"
|