earnrate 0.2.5 → 0.2.7
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 +25 -18
- package/data/CHANGELOG.md +56 -0
- package/data/VERSION +1 -1
- package/data/cards/amex-blue-business-plus.yaml +14 -6
- package/data/cards/amex-blue-cash-everyday.yaml +12 -3
- package/data/cards/amex-blue-cash-preferred.yaml +17 -3
- package/data/cards/amex-gold.yaml +19 -3
- package/data/cards/amex-platinum.yaml +19 -3
- package/data/cards/bank-of-america-atmos-rewards-ascent.yaml +10 -2
- package/data/cards/bank-of-america-atmos-rewards-business.yaml +14 -3
- package/data/cards/bank-of-america-atmos-rewards-summit.yaml +4 -1
- package/data/cards/bank-of-america-customized-cash-rewards.yaml +10 -5
- package/data/cards/bilt-obsidian.yaml +4 -3
- package/data/cards/capital-one-kohls-card.yaml +11 -2
- package/data/cards/capital-one-kohls-rewards-visa.yaml +8 -2
- package/data/cards/capital-one-savor.yaml +32 -10
- package/data/cards/capital-one-venture-x.yaml +19 -4
- package/data/cards/capital-one-venture.yaml +19 -5
- package/data/cards/chase-aeroplan.yaml +15 -3
- package/data/cards/chase-freedom-flex.yaml +49 -10
- package/data/cards/chase-freedom-unlimited.yaml +6 -2
- package/data/cards/chase-ihg-one-rewards-business.yaml +18 -2
- package/data/cards/chase-ihg-one-rewards-premier-select.yaml +14 -2
- package/data/cards/chase-ihg-one-rewards-premier.yaml +15 -2
- package/data/cards/chase-ihg-one-rewards.yaml +8 -2
- package/data/cards/chase-ink-business-cash.yaml +7 -3
- package/data/cards/chase-ink-business-preferred.yaml +9 -2
- package/data/cards/chase-prime-visa.yaml +24 -5
- package/data/cards/chase-sapphire-preferred.yaml +59 -6
- package/data/cards/chase-sapphire-reserve.yaml +12 -2
- package/data/cards/chase-southwest-performance-business.yaml +22 -4
- package/data/cards/chase-southwest-plus.yaml +13 -3
- package/data/cards/chase-southwest-premier-business.yaml +22 -5
- package/data/cards/chase-southwest-premier.yaml +13 -3
- package/data/cards/chase-southwest-priority.yaml +18 -2
- package/data/cards/chase-united-business.yaml +5 -2
- package/data/cards/chase-united-club-business.yaml +2 -2
- package/data/cards/chase-united-club.yaml +16 -3
- package/data/cards/chase-united-explorer.yaml +5 -2
- package/data/cards/chase-united-gateway.yaml +2 -2
- package/data/cards/chase-united-quest.yaml +12 -3
- package/data/cards/citi-aadvantage-business.yaml +10 -4
- package/data/cards/citi-aadvantage-executive.yaml +8 -8
- package/data/cards/citi-aadvantage-mileup.yaml +7 -4
- package/data/cards/citi-aadvantage-platinum-select.yaml +1 -1
- package/data/cards/citi-costco-anywhere-visa-business.yaml +5 -2
- package/data/cards/citi-costco-anywhere-visa.yaml +6 -3
- package/data/cards/citi-custom-cash.yaml +43 -12
- package/data/cards/citi-double-cash.yaml +9 -3
- package/data/cards/citi-my-best-buy-visa.yaml +6 -3
- package/data/cards/citi-strata-elite.yaml +12 -2
- package/data/cards/citi-strata-premier.yaml +24 -2
- package/data/cards/sofi-unlimited-2.yaml +17 -3
- package/data/cards/td-bank-nordstrom-credit-card.yaml +12 -3
- package/data/cards/td-bank-nordstrom-visa.yaml +19 -3
- package/data/cards/td-bank-target-circle-card.yaml +13 -4
- package/data/cards/usbank-cash-plus.yaml +29 -7
- package/data/cards/wells-fargo-active-cash.yaml +9 -2
- package/data/cards/wells-fargo-autograph.yaml +31 -7
- package/data/issuers.yaml +32 -0
- package/data/merchants/seed.yaml +7 -0
- package/dist/brand.js +1 -0
- package/dist/cli/bin.js +10 -1
- package/dist/cli/cheatsheet.js +10 -5
- package/dist/cli/explore.js +6 -13
- package/dist/cli/import.js +2 -2
- package/dist/cli/missed.js +65 -0
- package/dist/cli/offers.js +17 -7
- package/dist/cli/run.js +29 -17
- package/dist/cli/todo.js +62 -0
- package/dist/cli/wallet.js +9 -6
- package/dist/data/file-store.js +6 -7
- package/dist/data/integrity.js +4 -0
- package/dist/data/load.js +4 -1
- package/dist/data/store.js +6 -22
- package/dist/data/wallet-edit.js +38 -13
- package/dist/engine/cheat-sheet.js +14 -6
- package/dist/engine/checklist.js +152 -0
- package/dist/engine/compare.js +2 -0
- package/dist/engine/evaluate.js +16 -11
- package/dist/engine/explore.js +6 -38
- package/dist/engine/memberships.js +1 -1
- package/dist/engine/offers.js +2 -1
- package/dist/engine/periods.js +18 -0
- package/dist/engine/recommend.js +21 -20
- package/dist/engine/rule-text.js +47 -0
- package/dist/engine/setup.js +14 -24
- package/dist/engine/simulate.js +7 -6
- package/dist/engine/text.js +13 -1
- package/dist/engine/wallet-change.js +10 -12
- package/dist/engine/wallet-summary.js +80 -65
- package/dist/format/card-text.js +7 -20
- package/dist/format/explore.js +2 -2
- package/dist/format/offers.js +2 -2
- package/dist/format/recommendation.js +2 -2
- package/dist/format/wallet.js +7 -1
- package/dist/import/analyze.js +2 -1
- package/dist/mcp/context.js +38 -13
- package/dist/mcp/inputs.js +1 -1
- package/dist/mcp/schemas.js +9 -0
- package/dist/mcp/serve.js +4 -0
- package/dist/mcp/server.js +8 -2
- package/dist/mcp/tools/account.js +44 -16
- package/dist/mcp/tools/answers.js +58 -19
- package/dist/mcp/tools/wallet.js +64 -25
- package/dist/merchants/cache.js +0 -10
- package/dist/merchants/missed.js +78 -0
- package/dist/merchants/resolve.js +81 -4
- package/dist/schema/card.js +4 -1
- package/dist/schema/issuer.js +8 -0
- package/dist/schema/wallet.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ I wanted a ghost card: one card that always charges the best of my cards. The ca
|
|
|
9
9
|
|
|
10
10
|
**earnrate is the best-card decision layer for people and AI agents.** Give it a merchant, and it tells you which card earns the most there, from your own cards or from every card it knows, and why. Save your cards and it tracks your caps and chosen categories. It's valuation-aware and transparent about its assumptions. It never sees a card number.
|
|
11
11
|
|
|
12
|
-
- Runs on your machine, in your browser at [earnrate.dev](https://earnrate.dev), or in Claude as a connector at `https://mcp.earnrate.dev`, with nothing to install. No account and no affiliate links; the hosted server counts requests by tool name, nothing about what you ask. See the [privacy page](https://earnrate.dev/privacy).
|
|
12
|
+
- Runs on your machine, in your browser at [earnrate.dev](https://earnrate.dev) (which you can add to your phone's Home Screen and use offline), or in Claude as a connector at `https://mcp.earnrate.dev`, with nothing to install. No account and no affiliate links; the hosted server counts requests by tool name, nothing about what you ask. See the [privacy page](https://earnrate.dev/privacy).
|
|
13
13
|
- U.S. cards and U.S. merchants, for now.
|
|
14
14
|
|
|
15
15
|
> **Status:** early, and it works: the engine, CLI, optional Claude merchant lookup, MCP server and the hosted Claude connector. See [the benchmark](docs/benchmark.md) (run 2026-10-24) for how it compares to an existing card-picking MCP server.
|
|
@@ -33,7 +33,7 @@ earnrate add amex-gold
|
|
|
33
33
|
earnrate whole foods 80
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
Adding a card tells you anything else it needs to earn correctly, such as the categories you picked on Cash+, Amazon Prime for Prime Visa's 5%, or which rotating categories you've activated. `earnrate update`
|
|
36
|
+
Adding a card tells you anything else it needs to earn correctly, such as the categories you picked on Cash+, Amazon Prime for Prime Visa's 5%, or which rotating categories you've activated. `earnrate update` and `earnrate memberships` set those. Memberships and point values (`earnrate values`) can be saved without any cards, and every answer uses them. Using an AI assistant instead? [Add earnrate to it](#use-it-in-an-ai-assistant-mcp) and ask; name your cards or save them there.
|
|
37
37
|
|
|
38
38
|
With the [example wallet](wallet.example.yaml), it prints:
|
|
39
39
|
|
|
@@ -43,22 +43,27 @@ Whole Foods Market · $80
|
|
|
43
43
|
Use Blue Cash Preferred: 6% back, about $4.80. High confidence.
|
|
44
44
|
|
|
45
45
|
1. Blue Cash Preferred 6% $4.80
|
|
46
|
-
6% cash back
|
|
46
|
+
6% cash back on supermarkets. ...
|
|
47
47
|
2. Prime Visa 5% $4.00
|
|
48
|
-
5% cash back
|
|
48
|
+
5% cash back on Whole Foods Market, with Amazon Prime. ...
|
|
49
49
|
3. Amex Gold 4% $3.20
|
|
50
|
-
4x Amex Membership Rewards
|
|
50
|
+
4x Amex Membership Rewards on supermarkets. ...
|
|
51
51
|
Valued at 1¢ per point: 4% back.
|
|
52
52
|
+ 6 more cards (--all lists them)
|
|
53
53
|
|
|
54
|
-
Amex Gold beats Blue Cash Preferred here if Amex Membership Rewards (MR) points are worth 1.5¢
|
|
54
|
+
Amex Gold beats Blue Cash Preferred here if Amex Membership Rewards (MR) points are worth more than 1.5¢ (you value them at 1¢).
|
|
55
55
|
|
|
56
56
|
Assumes Whole Foods Market codes as supermarkets (MCC 5411).
|
|
57
|
+
Values points at: Amex Membership Rewards (MR) at 1¢, SoFi Member Rewards at 1¢, Chase Ultimate Rewards (UR) at 1¢.
|
|
57
58
|
```
|
|
58
59
|
|
|
59
60
|
Options: `--online` or `--in-store`, `--valuation flat|points-heavy`, `--all`, `--json`, `--date`, `--country`. Run `earnrate --help` for details. To keep the wallet somewhere else, set `EARNRATE_WALLET` to its path.
|
|
60
61
|
|
|
61
|
-
`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. It's also in the My wallet tab on [earnrate.dev](https://earnrate.dev).
|
|
62
|
+
`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).
|
|
63
|
+
|
|
64
|
+
`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 and welcome bonuses to finish. `--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.
|
|
65
|
+
|
|
66
|
+
`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.
|
|
62
67
|
|
|
63
68
|
### Your wallet
|
|
64
69
|
|
|
@@ -114,7 +119,7 @@ While the bonus is open and you're behind an even pace to the deadline, that car
|
|
|
114
119
|
|
|
115
120
|
### Which new card?
|
|
116
121
|
|
|
117
|
-
These compare every card earnrate knows:
|
|
122
|
+
These compare every card earnrate knows that's open to new applicants:
|
|
118
123
|
|
|
119
124
|
```sh
|
|
120
125
|
earnrate best groceries # every card, ranked for one purchase
|
|
@@ -122,13 +127,13 @@ earnrate simulate groceries=600 dining=300 other=1000 # best cards and pairs for
|
|
|
122
127
|
earnrate simulate groceries=600 other=1000 --wallet # what a new card would add to yours
|
|
123
128
|
```
|
|
124
129
|
|
|
125
|
-
`best` ranks every card earnrate knows for a merchant or a category, each set up at its best (the right category pick, activated, cap unused), with its annual fee and what earning the rate takes. Rates that need a membership like Amazon Prime are listed separately unless you pass `--member amazon-prime`, and a card that needs a membership to get (Costco Anywhere) says so. `simulate` spends your monthly amounts for a year, applying caps as they fill and reset, and ranks single cards and two-card pairs by rewards minus annual fees, counting the cost of a membership a card needs (Costco's, for Costco Anywhere) unless you
|
|
130
|
+
`best` ranks every card earnrate knows for a merchant or a category, each set up at its best (the right category pick, activated, cap unused), with its annual fee and what earning the rate takes. Rates that need a membership like Amazon Prime are listed separately unless you've saved it (`earnrate memberships amazon-prime`) or pass `--member amazon-prime`, and a card that needs a membership to get (Costco Anywhere) says so. `simulate` spends your monthly amounts for a year, applying caps as they fill and reset, and ranks single cards and two-card pairs by rewards minus annual fees, counting the cost of a membership a card needs (Costco's, for Costco Anywhere) unless you have it or spend at Costco. Both take `--no-fee`, `--cash` or `--points`, `--issuer`, `--business` and `--valuation`. Welcome bonuses are left out of both; for those:
|
|
126
131
|
|
|
127
132
|
```sh
|
|
128
133
|
earnrate offers --cash
|
|
129
134
|
```
|
|
130
135
|
|
|
131
|
-
Ranks the welcome offers on cards you don't have by first-year value: the bonus at your point values minus the first year's annual fee (and a membership the card needs, if you don't have it). An offer the issuer rules out because of a card in your wallet 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.
|
|
136
|
+
Ranks the welcome offers on cards you don't have by first-year value: the bonus at your point values minus the first year's annual fee (and a membership the card needs, if you don't have it). 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.
|
|
132
137
|
|
|
133
138
|
### Import a statement
|
|
134
139
|
|
|
@@ -142,9 +147,9 @@ earnrate import gold.csv:amex-gold sapphire.csv:chase-sapphire-preferred
|
|
|
142
147
|
It totals what each card earned against the best card in your wallet for each purchase, lists the merchants where another card would have earned the most, and flags merchants your issuer codes differently than earnrate assumes. Name several statements, each with its card, to get one report across them. It reads Amex and Chase activity CSVs. Download the CSV rather than a PDF statement: Chase's PDFs print the full card number in the payment coupon, and earnrate never handles card numbers.
|
|
143
148
|
|
|
144
149
|
- It's a dry run unless you pass `--apply`, which records cap usage for the current period and spending toward an open welcome bonus in your wallet. Refunds lower both.
|
|
145
|
-
- Only the date, description, amount, category and (for Chase) transaction type columns are read. The statements themselves are never stored: `--apply` writes cap and bonus totals
|
|
150
|
+
- Only the date, description, amount, category and (for Chase) transaction type columns are read. The statements themselves are never stored: `--apply` writes cap and bonus totals to your wallet, and a hash of each recorded purchase to `imported.json` beside it, so importing the same file twice never counts twice.
|
|
146
151
|
- For a merchant earnrate doesn't know, it uses the statement's category and marks the row, since another issuer may code it differently.
|
|
147
|
-
- `--valuation points-heavy` values points at transfer rates instead of your wallet's values, which can change which card wins.
|
|
152
|
+
- `--valuation points-heavy` values Amex and Chase points at transfer rates instead of your wallet's values, which can change which card wins.
|
|
148
153
|
|
|
149
154
|
## Supported cards
|
|
150
155
|
|
|
@@ -176,16 +181,18 @@ claude mcp add --transport http earnrate https://mcp.earnrate.dev
|
|
|
176
181
|
|
|
177
182
|
Or install it as a Claude Code plugin, which connects Claude Code and Cowork to the same server: `/plugin marketplace add cwasley/earnrate`, then `/plugin install earnrate@earnrate`.
|
|
178
183
|
|
|
184
|
+
Use the connector (or plugin) or the local extension, not both: each keeps its own wallet, and with both connected Claude may answer from either. Each one says which wallet it used.
|
|
185
|
+
|
|
179
186
|
**Or run it on your computer:** `earnrate mcp` runs earnrate as a local MCP server over stdio, with 14 tools (the connector has the same ones, plus `export_wallet`, `import_wallet`, `delete_wallet` and `switch_wallet` for its saved wallets):
|
|
180
187
|
|
|
181
188
|
- `best_card_for_purchase`: which card to use, with reasons
|
|
182
189
|
- `best_cards_for` and `simulate_spending`: compare every card earnrate knows, for one purchase or a year of spending, with no wallet needed
|
|
183
190
|
- `resolve_merchant`: how a merchant was identified
|
|
184
|
-
- `list_wallet`: your cards, caps left this period, chosen categories, welcome-bonus progress and the point values you've set
|
|
191
|
+
- `list_wallet`: a to-do list for your cards right now, then your cards, caps left this period, chosen categories, welcome-bonus progress and the point values you've set
|
|
185
192
|
- `cheat_sheet`: the card to use for each everyday kind of purchase this quarter
|
|
186
193
|
- `compare_welcome_offers`: the best public sign-up offers on cards you don't have
|
|
187
194
|
- `record_purchase`: books a purchase against its cap and any open welcome bonus in your wallet file, keeping your comments
|
|
188
|
-
- `search_cards`, `add_card`, `update_card`, `remove_card`, `set_memberships` and `set_point_values`: set up the wallet in conversation, including what your points are worth
|
|
195
|
+
- `search_cards`, `add_card`, `update_card`, `remove_card`, `set_memberships` and `set_point_values`: set up the wallet in conversation, including what your points are worth (memberships and point values need no cards)
|
|
189
196
|
|
|
190
197
|
Saving cards is optional: name them in the conversation for one answer, or ask the assistant to save them, and it finds them, adds them, and asks about anything a card needs, like this quarter's Cash+ picks.
|
|
191
198
|
|
|
@@ -225,7 +232,7 @@ merchant text
|
|
|
225
232
|
- **Merchants resolve to a category plus the assumption behind it.** "Whole Foods codes as a supermarket (MCC 5411)" is stated in the answer, and venues that can code more than one way (a restaurant inside a stadium or hotel) come back at medium confidence with the alternative spelled out. Unknown merchants fall back to base rates, or to an opt-in, cached and labeled Claude guess.
|
|
226
233
|
- **The engine is pure and deterministic.** Given a purchase, a date and a set of cards (yours, or every card), it checks every rule against network acceptance, the date window, caps already used (split when a purchase straddles one), quarterly picks and activations, then values points at your cents-per-point, including pooling (Freedom Unlimited points are worth Sapphire points when you hold both). Ties, the valuation at which the runner-up would win, stale data, and a rotating card whose new quarter isn't in the data yet all show up in the answer.
|
|
227
234
|
- **Wallet edits keep your file intact.** Adding or changing a card, or recording a purchase, splices in only the lines that changed and checks the result before saving, so comments and formatting in your YAML survive.
|
|
228
|
-
- **Drift detection.** A weekly GitHub Action opens each issuer page in a headless browser, checks every quote is still there, and opens an issue when terms move. It stores only hashes of issuer text.
|
|
235
|
+
- **Drift detection.** A weekly GitHub Action opens each issuer page in a headless browser, checks every quote is still there, and opens an issue when terms move. It stores only hashes of issuer text. An hourly check confirms earnrate.dev and the hosted server are up, and a daily one checks them end to end (a browser load of the site, sign in, ask, save a card, delete the wallet, and the server's error counts), opening an issue if anything fails.
|
|
229
236
|
- **Tested end to end.** Golden cases written from issuer terms, CLI snapshot tests, an MCP round trip over real stdio, an install test that packs and installs the npm package, and a check that no committed file contains a card number. CI runs all of it on every push.
|
|
230
237
|
|
|
231
238
|
The code is TypeScript run directly by Node 24 (`src/`), with the engine in `src/engine/`, merchant resolution in `src/merchants/`, and the CLI and MCP server as thin layers over them. `site/` is earnrate.dev, which runs the same engine in the browser, and `remote/` is the hosted server at mcp.earnrate.dev.
|
|
@@ -243,10 +250,10 @@ Rotating categories (Freedom Flex) are added each quarter once the issuer posts
|
|
|
243
250
|
|
|
244
251
|
## Privacy Policy
|
|
245
252
|
|
|
246
|
-
earnrate needs no account. The local version has no telemetry; the hosted server counts requests by method
|
|
253
|
+
earnrate needs no account. The local version has no telemetry; the hosted server counts requests and errors by method, tool name or page only, never what was asked. The full policy is at [earnrate.dev/privacy](https://earnrate.dev/privacy); in short:
|
|
247
254
|
|
|
248
|
-
- **The Claude connector:** earnrate's server at mcp.earnrate.dev receives each question Claude asks it (a store or kind of purchase, and any amount, spending or cards you gave) and answers without keeping it; request logging is off. It counts requests by method
|
|
249
|
-
- **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.
|
|
255
|
+
- **The Claude connector:** earnrate's server at mcp.earnrate.dev receives each question Claude asks it (a store or kind of purchase, and any amount, spending or cards you gave) and answers without keeping it; request logging is off. It counts requests and errors by method, tool name or page only. Connecting it starts an anonymous wallet (a recovery code, no email). It holds only what you save: card IDs and the details you gave, memberships and point values, never card numbers, and is encrypted with its own key that only your recovery code or your connected apps can unlock. Delete it any time; it's deleted automatically after 13 months unused, or a week if it's never used.
|
|
256
|
+
- **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).
|
|
250
257
|
- **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`.
|
|
251
258
|
- **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.
|
|
252
259
|
- **earnrate.dev:** everything you enter on the site stays in your browser. The site counts visits with Cloudflare Web Analytics, without cookies.
|
package/data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,62 @@
|
|
|
2
2
|
|
|
3
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.
|
|
4
4
|
|
|
5
|
+
## 2026.11.02.4
|
|
6
|
+
|
|
7
|
+
Customized Cash's todo about purchases that cross the $2,500 quarterly cap is resolved: past the cap, a BofA Rewards tier's boosted base rate now applies. No rates changed.
|
|
8
|
+
|
|
9
|
+
| Card | Field | Old → new | Source |
|
|
10
|
+
| --------------------------------------- | ----- | ----------------------------- | ------ |
|
|
11
|
+
| bank-of-america-customized-cash-rewards | todo | removed the cap-crossing note | n/a |
|
|
12
|
+
|
|
13
|
+
## 2026.11.02.3
|
|
14
|
+
|
|
15
|
+
The engine now prices spending past a cap at the card's best uncapped rate for that purchase when it beats the cap's own rate, so Freedom Flex's todo about crossing its $1,500 quarterly cap is resolved. No rates changed.
|
|
16
|
+
|
|
17
|
+
| Card | Field | Old → new | Source |
|
|
18
|
+
| ------------------ | ----- | ----------------------------- | -------------------------------------------------------------------------------------- |
|
|
19
|
+
| chase-freedom-flex | todo | removed the cap-crossing note | [Freedom Flex FAQ](https://www.chase.com/personal/credit-cards/freedom/flex-learnmore) |
|
|
20
|
+
|
|
21
|
+
## 2026.11.02.2
|
|
22
|
+
|
|
23
|
+
Rules can carry `activate_by`, the issuer's activation deadline, so answers mention it only while a bonus isn't activated. No rates changed.
|
|
24
|
+
|
|
25
|
+
| Card | Field | Old → new | Source |
|
|
26
|
+
| ------------------ | --------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
27
|
+
| chase-freedom-flex | q4-2026-*.activate_by | "Activate by December 14, 2026" in each note → `activate_by: 2026-12-14` | [Freedom Flex FAQ](https://www.chase.com/personal/credit-cards/freedom/flex-learnmore): "This quarter, the deadline for activation is December 14, 2026" |
|
|
28
|
+
|
|
29
|
+
## 2026.11.02.1
|
|
30
|
+
|
|
31
|
+
A fine-print pass: every card was checked against all of its issuer's pages (card page, rates and fees, rewards and offer terms, FAQ), and the readable ones were added to `source_urls` so the weekly check watches them. All 57 cards are now `verified_by: claude`, last verified 2026-11-01. Most changes add fine-print quotes and exclusions to notes; these change answers:
|
|
32
|
+
|
|
33
|
+
| Card | Field | Old → new | Source |
|
|
34
|
+
| ----------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
35
|
+
| chase-freedom-flex | q4-2026-dining.rate | 5 → 7 | [Freedom Flex FAQ](https://www.chase.com/personal/credit-cards/freedom/flex-learnmore): "For Dining purchases, you will earn 7% cash back" |
|
|
36
|
+
| chase-freedom-flex | q1-2027-streaming.match | streaming category → Chase's 18 listed services | [rewards category FAQ](https://www.chase.com/personal/credit-cards/rewards-category-faq) |
|
|
37
|
+
| chase-sapphire-preferred | streaming.match | streaming category → Chase's 18 listed services | [rewards category FAQ](https://www.chase.com/personal/credit-cards/rewards-category-faq) |
|
|
38
|
+
| chase-sapphire-preferred | peloton (new) | 5x through 2027-12-31, U.S. | [card page](https://creditcards.chase.com/rewards-credit-cards/sapphire/preferred) |
|
|
39
|
+
| chase-prime-visa | whole-foods.geography | worldwide → us_only | [card page](https://creditcards.chase.com/cash-back-credit-cards/amazon-prime-rewards) |
|
|
40
|
+
| amex-platinum | prepaid-car-rental-amex-travel (new) | 1x → 2x on prepaid Amex Travel car rentals | [offer terms](https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms) |
|
|
41
|
+
| amex-blue-cash-preferred | us-streaming.exclude | + Fandango at Home (not on Amex's list) | [Amex rewards categories](https://www.americanexpress.com/us/content/rewards-info/retail.html) |
|
|
42
|
+
| amex-blue-cash-everyday | us-online-retail.match | + superstores and drugstores, online | [Amex rewards categories](https://www.americanexpress.com/us/content/rewards-info/retail.html) |
|
|
43
|
+
| capital-one-savor | grocery-stores.exclude | + warehouse clubs, convenience stores | [disclosures](https://disclosures.capitalone.com/disclosure.42167.en-US.html) |
|
|
44
|
+
| citi-custom-cash | top-category | restaurants pick split out; Dodger Stadium and Bellagio earn 5% under their own picks | [Custom Cash terms](https://www.thankyou.com/ccterms) |
|
|
45
|
+
| citi-aadvantage-executive | welcome_offer | 125,000 / $15,000 / 5 months → 80,000 / $8,000 / 3 months | [card page](https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard) |
|
|
46
|
+
| usbank-cash-plus | five-percent.exclude, two-percent.exclude | + parking and tolls; + fast food at 2% | [sample merchants](https://cashplus.usbank.com/cash-plus/samplemerchants) |
|
|
47
|
+
| wells-fargo-autograph | dining.exclude, gas.exclude | + DoorDash, Uber Eats; + superstore and grocery-store gas | [Autograph terms](https://www.wellsfargo.com/credit-cards/autograph-visa/terms/) |
|
|
48
|
+
| bank-of-america-atmos-rewards-ascent, -business | 2x rules exclude | + parking (MCC 7523) | [Ascent terms](https://www.bankofamerica.com/credit-cards/terms-and-conditions/?campaignid=4081060&productoffercode=RS&locale=en_US) |
|
|
49
|
+
| td-bank-nordstrom-visa | caterers (new) | 2x at caterers (MCC 5811) | [Nordstrom Visa terms](https://www.nordstrom.com/browse/nordy-club/terms-conditions) |
|
|
50
|
+
| merchants/seed.yaml | peacock, showtime (new) | streaming merchants on Chase's list | [rewards category FAQ](https://www.chase.com/personal/credit-cards/rewards-category-faq) |
|
|
51
|
+
|
|
52
|
+
## 2026.11.02
|
|
53
|
+
|
|
54
|
+
Issuer names and the words people search for them by (`bofa`, `amex`) move from code to `data/issuers.yaml`; every card's issuer must be listed there. Cash+'s annual fee quote now matches both layouts of U.S. Bank's page. No rates changed.
|
|
55
|
+
|
|
56
|
+
| File or card | Field | Old → new | Source |
|
|
57
|
+
| ---------------- | ------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------ |
|
|
58
|
+
| issuers.yaml | (new) | names and search words for the 10 issuers | n/a |
|
|
59
|
+
| usbank-cash-plus | annual_fee evidence | "ANNUAL FEE $0 Annual fee" → "$0 Annual fee" | [card page](https://www.usbank.com/credit-cards/cash-plus-visa-signature-credit-card.html) |
|
|
60
|
+
|
|
5
61
|
## 2026.11.01.7
|
|
6
62
|
|
|
7
63
|
Currencies can name how a redemption reads (`redemption_names`), so a wallet valuing SoFi points by redeeming into a SoFi account says so. No rates changed.
|
package/data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2026.11.
|
|
1
|
+
2026.11.02.4
|
|
@@ -3,10 +3,11 @@ name: American Express Blue Business Plus Credit Card
|
|
|
3
3
|
issuer: amex
|
|
4
4
|
network: amex
|
|
5
5
|
currency: MR
|
|
6
|
-
last_verified: 2026-
|
|
7
|
-
verified_by:
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
|
+
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.americanexpress.com/us/credit-cards/business/business-credit-cards/american-express-blue-business-plus-credit-card-amex/
|
|
10
|
+
- https://www.americanexpress.com/en-us/credit-cards/apply/terms/business/prospect/bluebusinessplus-credit-card/45094-9-0
|
|
10
11
|
base_rate: 1
|
|
11
12
|
business: true
|
|
12
13
|
annual_fee: 0
|
|
@@ -15,7 +16,7 @@ welcome_offer:
|
|
|
15
16
|
spend: 5000
|
|
16
17
|
months: 3
|
|
17
18
|
varies: true
|
|
18
|
-
note: 'The public offer is "as high as" 50,000 points; Amex shows the exact amount after you apply.
|
|
19
|
+
note: 'The public offer is "as high as" 50,000 points; Amex shows the exact amount after you apply and before you accept. Not available if you have or have had this Card or previous versions of it, and Amex may also decline based on your card history. One offer per Card Account.'
|
|
19
20
|
rules:
|
|
20
21
|
- id: amex-travel
|
|
21
22
|
match:
|
|
@@ -29,7 +30,7 @@ rules:
|
|
|
29
30
|
amex-travel-cruises,
|
|
30
31
|
]
|
|
31
32
|
rate: 2
|
|
32
|
-
note:
|
|
33
|
+
note: Scheduled flights, prepaid hotels, prepaid car rentals, cruises and prepaid Airbnb stays booked on AmexTravel.com or the Amex Travel app. Non-prepaid hotels and car rentals earn 1X. They don't count toward the $50,000 cap.
|
|
33
34
|
- id: everyday-purchases
|
|
34
35
|
match: { any: true }
|
|
35
36
|
rate: 2
|
|
@@ -50,14 +51,21 @@ evidence:
|
|
|
50
51
|
- rule: amex-travel
|
|
51
52
|
url: https://www.americanexpress.com/us/credit-cards/business/business-credit-cards/american-express-blue-business-plus-credit-card-amex/
|
|
52
53
|
quote: 'Eligible purchases on AmexTravel.com also earn 2X points and will not count toward the first $50,000'
|
|
54
|
+
- rule: amex-travel
|
|
55
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/business/prospect/bluebusinessplus-credit-card/45094-9-0
|
|
56
|
+
quote: 'Eligible travel bookings do NOT include non-prepaid car rentals, non-prepaid hotels'
|
|
57
|
+
- rule: everyday-purchases
|
|
58
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/business/prospect/bluebusinessplus-credit-card/45094-9-0
|
|
59
|
+
quote: 'For the first $50,000 in eligible purchases in each calendar year you also earn one additional point'
|
|
53
60
|
- rule: annual_fee
|
|
54
61
|
url: https://www.americanexpress.com/us/credit-cards/business/business-credit-cards/american-express-blue-business-plus-credit-card-amex/
|
|
55
62
|
quote: 'Annual Fee: $0'
|
|
63
|
+
- rule: welcome_offer
|
|
64
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/business/prospect/bluebusinessplus-credit-card/45094-9-0
|
|
65
|
+
quote: 'if you have or have had this Card or previous versions of this Card'
|
|
56
66
|
- rule: welcome_offer
|
|
57
67
|
url: https://www.americanexpress.com/us/credit-cards/business/business-credit-cards/american-express-blue-business-plus-credit-card-amex/
|
|
58
68
|
quote: 'AS HIGH AS 50,000 Membership Rewards® Points'
|
|
59
69
|
- rule: welcome_offer
|
|
60
70
|
url: https://www.americanexpress.com/us/credit-cards/business/business-credit-cards/american-express-blue-business-plus-credit-card-amex/
|
|
61
71
|
quote: 'after you spend $5,000 in purchases on your new Card within the first 3 months of Card Membership'
|
|
62
|
-
todo:
|
|
63
|
-
- 'The offer-terms page (https://www.americanexpress.com/en-us/credit-cards/apply/terms/business/prospect/bluebusinessplus-credit-card/53591-9-0) returned only 735 characters to the headless browser, so it was not checked. Rates come from the card page only; what counts as an eligible purchase is unconfirmed.'
|
|
@@ -3,11 +3,12 @@ name: American Express Blue Cash Everyday Card
|
|
|
3
3
|
issuer: amex
|
|
4
4
|
network: amex
|
|
5
5
|
currency: cash
|
|
6
|
-
last_verified: 2026-
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
7
|
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.americanexpress.com/us/credit-cards/card/blue-cash-everyday/
|
|
10
10
|
- https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-everyday-credit-card/25330-10-0
|
|
11
|
+
- https://www.americanexpress.com/us/content/rewards-info/retail.html
|
|
11
12
|
base_rate: 1
|
|
12
13
|
annual_fee: 0
|
|
13
14
|
welcome_offer:
|
|
@@ -30,6 +31,8 @@ rules:
|
|
|
30
31
|
categories:
|
|
31
32
|
[
|
|
32
33
|
online_retail,
|
|
34
|
+
superstore,
|
|
35
|
+
drugstore,
|
|
33
36
|
department_store,
|
|
34
37
|
clothing,
|
|
35
38
|
electronics,
|
|
@@ -41,7 +44,7 @@ rules:
|
|
|
41
44
|
channel: online
|
|
42
45
|
geography: us_only
|
|
43
46
|
cap: { amount: 6000, period: calendar_year, then_rate: 1 }
|
|
44
|
-
note: U.S. merchants selling physical goods, paid on their website or app. Not restaurants, supermarkets, gas, car dealers, travel, entertainment or services. Ordered online but paid in store, in-store mobile wallet, phone or mail orders, and buy-now-pay-later don't count.
|
|
47
|
+
note: U.S. merchants selling physical goods, paid on their website or app, such as Amazon.com, Walmart.com, Chewy.com, Wayfair.com and drugstore sites. Not restaurants, supermarkets, gas, car dealers, travel, entertainment or services, and not online grocery orders, food delivery, rideshare, streaming or wireless bills. Ordered online but paid in store, in-store mobile wallet, phone or mail orders, and buy-now-pay-later don't count.
|
|
45
48
|
- id: us-gas
|
|
46
49
|
match: { categories: [gas] }
|
|
47
50
|
exclude: { categories: [gas.grocery_store, gas.superstore] }
|
|
@@ -68,6 +71,12 @@ evidence:
|
|
|
68
71
|
- rule: us-online-retail
|
|
69
72
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-everyday-credit-card/25330-10-0
|
|
70
73
|
quote: 'from a U.S. retail merchant that sells physical goods or merchandise directly to consumers'
|
|
74
|
+
- rule: us-online-retail
|
|
75
|
+
url: https://www.americanexpress.com/us/content/rewards-info/retail.html
|
|
76
|
+
quote: 'Major retailers (e.g., Amazon.com, Walmart.com)'
|
|
77
|
+
- rule: us-online-retail
|
|
78
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-everyday-credit-card/25330-10-0
|
|
79
|
+
quote: 'Basic Card Members will not receive 3% cash back for purchases ordered online but paid for in store'
|
|
71
80
|
- rule: us-gas
|
|
72
81
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-everyday-credit-card/25330-10-0
|
|
73
82
|
quote: '3% cash back on the first $6,000 of purchases of gasoline at gas stations'
|
|
@@ -87,4 +96,4 @@ evidence:
|
|
|
87
96
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-everyday-credit-card/25330-10-0
|
|
88
97
|
quote: 'if you have or have had this Card, the Cash Magnet® Card, the Blue Cash Preferred® Card'
|
|
89
98
|
todo:
|
|
90
|
-
- '
|
|
99
|
+
- "Amex's online retail examples name Walmart.com and drug stores, so superstore and drugstore sites earn 3% here; online grocery orders don't, but a grocery order on walmart.com or target.com can't be told apart from other purchases there. Warehouse club sites (costco.com, samsclub.com) aren't named, so they aren't modeled."
|
|
@@ -3,11 +3,12 @@ name: American Express Blue Cash Preferred Card
|
|
|
3
3
|
issuer: amex
|
|
4
4
|
network: amex
|
|
5
5
|
currency: cash
|
|
6
|
-
last_verified: 2026-
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
7
|
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.americanexpress.com/us/credit-cards/card/blue-cash-preferred/
|
|
10
10
|
- https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
11
|
+
- https://www.americanexpress.com/us/content/rewards-info/retail.html
|
|
11
12
|
base_rate: 1
|
|
12
13
|
annual_fee: 95
|
|
13
14
|
first_year_fee: 0
|
|
@@ -27,13 +28,14 @@ rules:
|
|
|
27
28
|
note: Superstores, convenience stores, warehouse clubs and meal-kit delivery services are not supermarkets.
|
|
28
29
|
- id: us-streaming
|
|
29
30
|
match: { categories: [streaming] }
|
|
31
|
+
exclude: { merchants: [fandango-at-home] }
|
|
30
32
|
rate: 6
|
|
31
33
|
geography: us_only
|
|
32
|
-
note:
|
|
34
|
+
note: Only providers on Amex's Select U.S. Streaming Subscriptions list (americanexpress.com/rewards-info), such as Netflix, Hulu, Disney+, HBO Max, Spotify, Apple Music, YouTube TV and SiriusXM. Subscriptions bundled with or billed by another company (cable, phone, a car maker) may not count.
|
|
33
35
|
- id: transit
|
|
34
36
|
match: { categories: [transit] }
|
|
35
37
|
rate: 3
|
|
36
|
-
note: Trains, taxis, rideshare, ferries, tolls, parking, buses and subways. Airfare, car rental and
|
|
38
|
+
note: Trains, taxis, rideshare, ferries, tolls, parking, buses and subways. Airfare, car rental, cruises and trams aren't transit.
|
|
37
39
|
- id: us-gas
|
|
38
40
|
match: { categories: [gas] }
|
|
39
41
|
exclude: { categories: [gas.grocery_store, gas.superstore] }
|
|
@@ -48,15 +50,27 @@ evidence:
|
|
|
48
50
|
- rule: us-supermarkets
|
|
49
51
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
50
52
|
quote: 'at supermarkets located in the U.S. (superstores, convenience stores, warehouse clubs,'
|
|
53
|
+
- rule: us-supermarkets
|
|
54
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
55
|
+
quote: '6% cash back on the first $6,000 of eligible purchases in a calendar year'
|
|
51
56
|
- rule: us-streaming
|
|
52
57
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
53
58
|
quote: '6% cash back on eligible purchases of U.S. streaming subscriptions'
|
|
59
|
+
- rule: us-streaming
|
|
60
|
+
url: https://www.americanexpress.com/us/content/rewards-info/retail.html
|
|
61
|
+
quote: 'must be made from a provider that is included on our list of Select U.S. Streaming Subscriptions'
|
|
54
62
|
- rule: transit
|
|
55
63
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
56
64
|
quote: '3% cash back on eligible purchases on transit, including trains,'
|
|
65
|
+
- rule: transit
|
|
66
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
67
|
+
quote: '(airfare, car rental and cruises are not considered transit)'
|
|
57
68
|
- rule: us-gas
|
|
58
69
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
59
70
|
quote: 'purchases of gasoline at gas stations located in the U.S.'
|
|
71
|
+
- rule: us-gas
|
|
72
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/blue-cash-preferred-credit-card/25330-10-0#offer-terms
|
|
73
|
+
quote: 'superstores, supermarkets and warehouse clubs that sell gasoline are not considered gas stations'
|
|
60
74
|
- rule: annual_fee
|
|
61
75
|
url: https://www.americanexpress.com/us/credit-cards/card/blue-cash-preferred/
|
|
62
76
|
quote: '$0 intro annual fee for the first year, then $95'
|
|
@@ -3,11 +3,12 @@ name: American Express Gold Card
|
|
|
3
3
|
issuer: amex
|
|
4
4
|
network: amex
|
|
5
5
|
currency: MR
|
|
6
|
-
last_verified: 2026-
|
|
7
|
-
verified_by:
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
|
+
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.americanexpress.com/us/credit-cards/card/gold-card/
|
|
10
10
|
- https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/gold-card/25330-10-0#offer-terms
|
|
11
|
+
- https://www.americanexpress.com/us/content/rewards-info/retail.html
|
|
11
12
|
base_rate: 1
|
|
12
13
|
annual_fee: 325
|
|
13
14
|
welcome_offer:
|
|
@@ -23,7 +24,7 @@ rules:
|
|
|
23
24
|
rate: 4
|
|
24
25
|
cap: { amount: 50000, period: calendar_year, then_rate: 1 }
|
|
25
26
|
exclude: { merchants: [dodger-stadium, bellagio], mccs: [5813] }
|
|
26
|
-
note: Worldwide. Not at restaurants inside hotels, casinos or event venues, or at bars, bakeries, cafeterias or
|
|
27
|
+
note: Worldwide, fast food included. Not at restaurants inside hotels, casinos or event venues, at events or for event tickets, or at bars, nightclubs, breweries, bakeries, cafeterias, caterers, theatre clubs or meeting venues. Third-party delivery counts only in the U.S.
|
|
27
28
|
- id: us-supermarkets
|
|
28
29
|
match: { categories: [grocery.supermarket] }
|
|
29
30
|
exclude: { categories: [superstore, warehouse_club, convenience_store] }
|
|
@@ -64,12 +65,27 @@ evidence:
|
|
|
64
65
|
- rule: restaurants
|
|
65
66
|
url: https://www.americanexpress.com/us/credit-cards/card/gold-card/
|
|
66
67
|
quote: '4X POINTS At Restaurants Worldwide, on up to $50K'
|
|
68
|
+
- rule: restaurants
|
|
69
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/gold-card/25330-10-0#offer-terms
|
|
70
|
+
quote: 'on the first $50,000 of eligible purchases per calendar year at restaurants worldwide'
|
|
71
|
+
- rule: restaurants
|
|
72
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/gold-card/25330-10-0#offer-terms
|
|
73
|
+
quote: 'purchases at bars, nightclubs, cafeterias, caterers, theatre clubs, breweries, bakeries, and meeting venues'
|
|
74
|
+
- rule: restaurants
|
|
75
|
+
url: https://www.americanexpress.com/us/content/rewards-info/retail.html
|
|
76
|
+
quote: 'fast food restaurants are included in the global restaurants rewards category'
|
|
67
77
|
- rule: us-supermarkets
|
|
68
78
|
url: https://www.americanexpress.com/us/credit-cards/card/gold-card/
|
|
69
79
|
quote: '4X POINTS On Groceries At U.S. supermarkets, on up to $25K'
|
|
80
|
+
- rule: us-supermarkets
|
|
81
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/gold-card/25330-10-0#offer-terms
|
|
82
|
+
quote: 'warehouse clubs, and meal-kit delivery services are not considered supermarkets'
|
|
70
83
|
- rule: flights
|
|
71
84
|
url: https://www.americanexpress.com/us/credit-cards/card/gold-card/
|
|
72
85
|
quote: '3X POINTS On Flights Booked through AmexTravel.com or Amex Travel App™'
|
|
86
|
+
- rule: flights
|
|
87
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/gold-card/25330-10-0#offer-terms
|
|
88
|
+
quote: 'charged directly with passenger airlines (charter flights and private jet flights are excluded)'
|
|
73
89
|
- rule: prepaid-hotels-amex-travel
|
|
74
90
|
url: https://www.americanexpress.com/us/credit-cards/card/gold-card/
|
|
75
91
|
quote: '5X Points per dollar spent on Prepaid Hotels booked through AmexTravel.com'
|
|
@@ -3,8 +3,8 @@ name: The Platinum Card from American Express
|
|
|
3
3
|
issuer: amex
|
|
4
4
|
network: amex
|
|
5
5
|
currency: MR
|
|
6
|
-
last_verified: 2026-
|
|
7
|
-
verified_by:
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
|
+
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.americanexpress.com/us/credit-cards/card/platinum/
|
|
10
10
|
- https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
@@ -37,10 +37,14 @@ rules:
|
|
|
37
37
|
match: { merchants: [airbnb-amex-travel] }
|
|
38
38
|
rate: 5
|
|
39
39
|
note: Prepaid Airbnb stays booked through Amex Travel, with your Airbnb account linked to Amex.
|
|
40
|
+
- id: prepaid-car-rental-amex-travel
|
|
41
|
+
match: { merchants: [amex-travel-car-rentals] }
|
|
42
|
+
rate: 2
|
|
43
|
+
note: Prepaid car rentals only.
|
|
40
44
|
- id: cruises-amex-travel
|
|
41
45
|
match: { merchants: [amex-travel-cruises] }
|
|
42
46
|
rate: 2
|
|
43
|
-
note:
|
|
47
|
+
note: Cruises booked and charged through AmexTravel.com or by phone with Amex Travel. Payments made directly to the cruise line don't count.
|
|
44
48
|
# Issuer text backing each rule; `yarn check-sources` checks it weekly.
|
|
45
49
|
evidence:
|
|
46
50
|
- rule: base_rate
|
|
@@ -49,6 +53,15 @@ evidence:
|
|
|
49
53
|
- rule: flights
|
|
50
54
|
url: https://www.americanexpress.com/us/credit-cards/card/platinum/
|
|
51
55
|
quote: '5X POINTS On Flights Booked directly with airlines or through'
|
|
56
|
+
- rule: flights
|
|
57
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
58
|
+
quote: 'air tickets on scheduled flights, of up to $500,000 in charges per calendar year'
|
|
59
|
+
- rule: flights
|
|
60
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
61
|
+
quote: 'charter flights, private jet flights, flights that are part of tours, cruises, or travel packages'
|
|
62
|
+
- rule: prepaid-car-rental-amex-travel
|
|
63
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
64
|
+
quote: 'prepaid car rental bookings through AmexTravel.com or the Amex Travel'
|
|
52
65
|
- rule: prepaid-hotels-amex-travel
|
|
53
66
|
url: https://www.americanexpress.com/us/credit-cards/card/platinum/
|
|
54
67
|
quote: '5X POINTS On Prepaid Hotels Booked through American Express Travel ®'
|
|
@@ -58,6 +71,9 @@ evidence:
|
|
|
58
71
|
- rule: cruises-amex-travel
|
|
59
72
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
60
73
|
quote: 'only eligible for 1 additional point on cruise reservations'
|
|
74
|
+
- rule: cruises-amex-travel
|
|
75
|
+
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
76
|
+
quote: 'prepaid cruise reservations booked through AmexTravel.com or by calling the phone number'
|
|
61
77
|
- rule: flights-amex-travel
|
|
62
78
|
url: https://www.americanexpress.com/en-us/credit-cards/apply/terms/personal/platinum-card/25330-10-0#offer-terms
|
|
63
79
|
quote: 'booked directly with passenger airlines or through American Express Travel'
|
|
@@ -3,7 +3,7 @@ name: Atmos Rewards Ascent Visa Signature Credit Card
|
|
|
3
3
|
issuer: bank-of-america
|
|
4
4
|
network: visa
|
|
5
5
|
currency: atmos-points
|
|
6
|
-
last_verified: 2026-
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
7
|
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.bankofamerica.com/credit-cards/products/alaska-airlines-credit-card/
|
|
@@ -22,8 +22,9 @@ rules:
|
|
|
22
22
|
note: Card points only; points and status from flying aren't card earnings.
|
|
23
23
|
- id: gas-ev-cable-streaming-transit
|
|
24
24
|
match: { categories: [gas, ev_charging, tv_internet, streaming, transit] }
|
|
25
|
+
exclude: { mccs: [7523] }
|
|
25
26
|
rate: 2
|
|
26
|
-
note: Local transit includes rideshare
|
|
27
|
+
note: Local transit includes rideshare, trains, buses, ferries and tolls; parking isn't on Bank of America's list. Cable means cable, satellite and other pay TV or streaming; internet-only or phone bills may not count.
|
|
27
28
|
- id: alaska-and-hawaiian-with-boa-account
|
|
28
29
|
match: { merchants: [alaska-airlines, hawaiian-airlines] }
|
|
29
30
|
rate: 3.3
|
|
@@ -31,6 +32,7 @@ rules:
|
|
|
31
32
|
note: 3x plus the 10% rewards bonus for holding an eligible Bank of America account.
|
|
32
33
|
- id: gas-ev-cable-streaming-transit-with-boa-account
|
|
33
34
|
match: { categories: [gas, ev_charging, tv_internet, streaming, transit] }
|
|
35
|
+
exclude: { mccs: [7523] }
|
|
34
36
|
rate: 2.2
|
|
35
37
|
requires: { membership: bank-of-america-account }
|
|
36
38
|
note: 2x plus the 10% rewards bonus for holding an eligible Bank of America account.
|
|
@@ -49,6 +51,12 @@ evidence:
|
|
|
49
51
|
- rule: gas-ev-cable-streaming-transit
|
|
50
52
|
url: https://www.bankofamerica.com/credit-cards/products/alaska-airlines-credit-card/
|
|
51
53
|
quote: 'eligible gas, EV charging station, cable, streaming services and local transit purchases, including rideshare'
|
|
54
|
+
- rule: gas-ev-cable-streaming-transit
|
|
55
|
+
url: https://www.bankofamerica.com/credit-cards/terms-and-conditions/?campaignid=4081060&productoffercode=RS&locale=en_US
|
|
56
|
+
quote: 'Passenger Railways; Taxicabs and Limousines (including rideshare); Bus Lines; Tolls and Bridge Fees'
|
|
57
|
+
- rule: gas-ev-cable-streaming-transit
|
|
58
|
+
url: https://www.bankofamerica.com/credit-cards/terms-and-conditions/?campaignid=4081060&productoffercode=RS&locale=en_US
|
|
59
|
+
quote: 'Cable, Satellite and Other Pay Television/Radio/Streaming Services'
|
|
52
60
|
- rule: alaska-and-hawaiian-with-boa-account
|
|
53
61
|
url: https://www.bankofamerica.com/credit-cards/products/alaska-airlines-credit-card/
|
|
54
62
|
quote: '10% rewards bonus on all points earned from card purchases if you have an eligible Bank of America® account'
|
|
@@ -3,8 +3,8 @@ name: Atmos Rewards Visa Signature Business Card
|
|
|
3
3
|
issuer: bank-of-america
|
|
4
4
|
network: visa
|
|
5
5
|
currency: atmos-points
|
|
6
|
-
last_verified: 2026-
|
|
7
|
-
verified_by:
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
|
+
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.bankofamerica.com/smallbusiness/credit-cards/products/alaska-airlines-business-credit-card/
|
|
10
10
|
- https://www.bankofamerica.com/smallbusiness/credit-cards/terms-and-conditions/?campaignid=4080500&productoffercode=CX&locale=en_US
|
|
@@ -23,8 +23,9 @@ rules:
|
|
|
23
23
|
note: Card points only; points and status from flying aren't card earnings.
|
|
24
24
|
- id: gas-ev-shipping-transit
|
|
25
25
|
match: { categories: [gas, ev_charging, shipping, transit] }
|
|
26
|
+
exclude: { mccs: [7523] }
|
|
26
27
|
rate: 2
|
|
27
|
-
note: Local transit includes rideshare.
|
|
28
|
+
note: Local transit includes rideshare, trains, buses, ferries and tolls; parking isn't on Bank of America's list. Shipping is motor freight carriers and courier services.
|
|
28
29
|
- id: alaska-and-hawaiian-with-boa-account
|
|
29
30
|
match: { merchants: [alaska-airlines, hawaiian-airlines] }
|
|
30
31
|
rate: 3.3
|
|
@@ -32,6 +33,7 @@ rules:
|
|
|
32
33
|
note: 3x plus the 10% rewards bonus when the company has an eligible Bank of America small business account.
|
|
33
34
|
- id: gas-ev-shipping-transit-with-boa-account
|
|
34
35
|
match: { categories: [gas, ev_charging, shipping, transit] }
|
|
36
|
+
exclude: { mccs: [7523] }
|
|
35
37
|
rate: 2.2
|
|
36
38
|
requires: { membership: bank-of-america-small-business-account }
|
|
37
39
|
note: 2x plus the 10% rewards bonus when the company has an eligible Bank of America small business account.
|
|
@@ -50,6 +52,12 @@ evidence:
|
|
|
50
52
|
- rule: gas-ev-shipping-transit
|
|
51
53
|
url: https://www.bankofamerica.com/smallbusiness/credit-cards/products/alaska-airlines-business-credit-card/
|
|
52
54
|
quote: 'eligible gas, EV charging station, shipping and local transit purchases, including rideshare'
|
|
55
|
+
- rule: gas-ev-shipping-transit
|
|
56
|
+
url: https://www.bankofamerica.com/smallbusiness/credit-cards/terms-and-conditions/?campaignid=4080500&productoffercode=CX&locale=en_US
|
|
57
|
+
quote: 'Motor Freight Carriers, Courier Services; Local and Suburban Commuter Passenger Transportation, Including Ferries'
|
|
58
|
+
- rule: gas-ev-shipping-transit
|
|
59
|
+
url: https://www.bankofamerica.com/smallbusiness/credit-cards/terms-and-conditions/?campaignid=4080500&productoffercode=CX&locale=en_US
|
|
60
|
+
quote: 'Passenger Railways; Taxicabs and Limousines (including rideshare); Bus Lines; Tolls and Bridge Fees'
|
|
53
61
|
- rule: alaska-and-hawaiian-with-boa-account
|
|
54
62
|
url: https://www.bankofamerica.com/smallbusiness/credit-cards/products/alaska-airlines-business-credit-card/
|
|
55
63
|
quote: 'earn a 10% rewards bonus on all points earned from card purchases'
|
|
@@ -62,6 +70,9 @@ evidence:
|
|
|
62
70
|
- rule: annual_fee
|
|
63
71
|
url: https://www.bankofamerica.com/smallbusiness/credit-cards/products/alaska-airlines-business-credit-card/
|
|
64
72
|
quote: 'Plus, a low annual fee of $70 for the company and $25 per card.'
|
|
73
|
+
- rule: annual_fee
|
|
74
|
+
url: https://www.bankofamerica.com/smallbusiness/credit-cards/terms-and-conditions/?campaignid=4080500&productoffercode=CX&locale=en_US
|
|
75
|
+
quote: '$70 for the company and $25 per card.'
|
|
65
76
|
- rule: welcome_offer
|
|
66
77
|
url: https://www.bankofamerica.com/smallbusiness/credit-cards/products/alaska-airlines-business-credit-card/
|
|
67
78
|
quote: 'Limited-time online offer: 70,000 bonus points + $99 Companion Fare'
|
|
@@ -3,7 +3,7 @@ name: Atmos Rewards Summit Visa Infinite Credit Card
|
|
|
3
3
|
issuer: bank-of-america
|
|
4
4
|
network: visa
|
|
5
5
|
currency: atmos-points
|
|
6
|
-
last_verified: 2026-
|
|
6
|
+
last_verified: 2026-11-01
|
|
7
7
|
verified_by: claude
|
|
8
8
|
source_urls:
|
|
9
9
|
- https://www.bankofamerica.com/credit-cards/products/alaska-airlines-infinite-credit-card/
|
|
@@ -48,6 +48,9 @@ evidence:
|
|
|
48
48
|
- rule: dining
|
|
49
49
|
url: https://www.bankofamerica.com/credit-cards/products/alaska-airlines-infinite-credit-card/
|
|
50
50
|
quote: 'Earn 3 points for every $1 spent on eligible dining, foreign transaction, Alaska Airlines and Hawaiian Airlines purchases.'
|
|
51
|
+
- rule: dining
|
|
52
|
+
url: https://www.bankofamerica.com/credit-cards/terms-and-conditions/?campaignid=4081112&productoffercode=S2&locale=en_US
|
|
53
|
+
quote: 'Caterers, Eating Places, Restaurants, Bars, Cocktail Lounges, Discotheques, Nightclubs'
|
|
51
54
|
- rule: alaska-and-hawaiian-with-boa-account
|
|
52
55
|
url: https://www.bankofamerica.com/credit-cards/products/alaska-airlines-infinite-credit-card/
|
|
53
56
|
quote: '10% rewards bonus on all points earned from card purchases if you have an eligible Bank of America® account'
|