earnrate 0.2.16 → 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.
Files changed (81) hide show
  1. package/README.md +22 -10
  2. package/data/CHANGELOG.md +33 -1
  3. package/data/VERSION +1 -1
  4. package/data/cards/amex-business-gold.yaml +1 -0
  5. package/data/cards/amex-business-platinum.yaml +15 -1
  6. package/data/cards/amex-platinum.yaml +1 -1
  7. package/data/cards/barclays-jetblue-plus.yaml +19 -1
  8. package/data/cards/chase-freedom-flex.yaml +9 -12
  9. package/data/cards/chase-ihg-one-rewards-business.yaml +19 -3
  10. package/data/cards/chase-ihg-one-rewards-premier-select.yaml +5 -1
  11. package/data/cards/chase-ihg-one-rewards-premier.yaml +7 -1
  12. package/data/cards/chase-ihg-one-rewards.yaml +13 -2
  13. package/data/cards/chase-ink-business-cash.yaml +5 -1
  14. package/data/cards/chase-ink-business-unlimited.yaml +5 -1
  15. package/data/cards/chase-prime-visa.yaml +3 -3
  16. package/data/cards/chase-sapphire-reserve.yaml +12 -3
  17. package/data/cards/chase-united-business.yaml +8 -1
  18. package/data/cards/chase-united-club-business.yaml +10 -1
  19. package/data/cards/chase-united-club.yaml +5 -1
  20. package/data/cards/chase-united-explorer.yaml +5 -1
  21. package/data/cards/chase-united-quest.yaml +5 -1
  22. package/data/cards/citi-aadvantage-business.yaml +5 -0
  23. package/data/cards/citi-aadvantage-executive.yaml +2 -0
  24. package/data/cards/citi-aadvantage-globe.yaml +2 -0
  25. package/data/cards/citi-aadvantage-mileup.yaml +4 -0
  26. package/data/cards/citi-aadvantage-platinum-select.yaml +4 -0
  27. package/data/cards/citi-costco-anywhere-visa-business.yaml +2 -0
  28. package/data/cards/citi-costco-anywhere-visa.yaml +2 -0
  29. package/data/cards/citi-custom-cash.yaml +8 -10
  30. package/data/cards/citi-double-cash.yaml +1 -0
  31. package/data/cards/citi-my-best-buy-visa.yaml +1 -0
  32. package/data/cards/citi-strata-elite.yaml +2 -0
  33. package/data/cards/citi-strata-premier.yaml +16 -1
  34. package/data/cards/td-bank-nordstrom-credit-card.yaml +1 -0
  35. package/data/cards/td-bank-nordstrom-visa.yaml +1 -0
  36. package/data/cards/wells-fargo-autograph-journey.yaml +16 -1
  37. package/data/changes.yaml +2840 -0
  38. package/data/merchants/overrides.yaml +3 -3
  39. package/dist/cli/args.js +13 -7
  40. package/dist/cli/offers.js +21 -5
  41. package/dist/cli/run.js +18 -3
  42. package/dist/cli/wallet.js +46 -11
  43. package/dist/data/change-integrity.js +105 -0
  44. package/dist/data/file-store.js +5 -2
  45. package/dist/data/integrity.js +20 -0
  46. package/dist/data/load.js +5 -0
  47. package/dist/data/store.js +4 -1
  48. package/dist/data/wallet-edit.js +21 -5
  49. package/dist/engine/changes.js +124 -0
  50. package/dist/engine/checklist.js +42 -7
  51. package/dist/engine/credits.js +56 -7
  52. package/dist/engine/evaluate.js +21 -1
  53. package/dist/engine/explore.js +52 -15
  54. package/dist/engine/memberships.js +21 -9
  55. package/dist/engine/milestones.js +11 -3
  56. package/dist/engine/offers.js +60 -6
  57. package/dist/engine/periods.js +7 -0
  58. package/dist/engine/recommend.js +21 -2
  59. package/dist/engine/renewal.js +101 -0
  60. package/dist/engine/rule-text.js +21 -13
  61. package/dist/engine/setup.js +12 -8
  62. package/dist/engine/simulate.js +57 -17
  63. package/dist/engine/text.js +110 -5
  64. package/dist/engine/wallet-change.js +34 -15
  65. package/dist/engine/wallet-summary.js +29 -10
  66. package/dist/format/card-text.js +10 -11
  67. package/dist/format/explore.js +12 -8
  68. package/dist/format/offers.js +5 -3
  69. package/dist/format/wallet-yaml.js +3 -0
  70. package/dist/format/wallet.js +8 -1
  71. package/dist/mcp/context.js +11 -3
  72. package/dist/mcp/inputs.js +12 -2
  73. package/dist/mcp/prompts.js +3 -3
  74. package/dist/mcp/schemas.js +47 -0
  75. package/dist/mcp/tools/account.js +1 -1
  76. package/dist/mcp/tools/answers.js +42 -24
  77. package/dist/mcp/tools/wallet.js +33 -9
  78. package/dist/schema/card.js +18 -0
  79. package/dist/schema/changes.js +73 -0
  80. package/dist/schema/wallet.js +11 -3
  81. package/package.json +1 -1
@@ -50,7 +50,8 @@ credits:
50
50
  amount: 20
51
51
  period: month
52
52
  enroll: true
53
- note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card. Through December 31, 2027. Each credit applies to one order."
53
+ valid_to: 2027-12-31
54
+ note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card. Each credit applies to one order."
54
55
  - id: rideshare
55
56
  match: { categories: [transit.rideshare] }
56
57
  amount: 12
@@ -69,6 +70,9 @@ credits:
69
70
  note: 'Hotel stays prepaid through Renowned Hotels and Resorts for United cardmembers.'
70
71
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
71
72
  evidence:
73
+ - rule: instacart
74
+ url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
75
+ quote: 'from 3/23/2025 through 12/31/2027'
72
76
  - rule: annual_fee
73
77
  url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
74
78
  quote: 'ANNUAL FEE $695'
@@ -102,18 +106,23 @@ evidence:
102
106
  - rule: spend-50k
103
107
  url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
104
108
  quote: 'Receive United Club All Access Membership after spending $50,000 in a calendar year'
109
+ in_popup: true
105
110
  - rule: instacart
106
111
  url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
107
112
  quote: 'you can receive two (2) $10 credits in your Instacart account each month'
108
113
  - rule: rideshare
109
114
  url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
110
115
  quote: 'up to $12 back as a statement credit each month from January through November'
116
+ in_popup: true
111
117
  - rule: rideshare
112
118
  url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
113
119
  quote: 'Yearly opt-in is required.'
120
+ in_popup: true
114
121
  - rule: jsx
115
122
  url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
116
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
117
125
  - rule: renowned-hotels-credit
118
126
  url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
119
127
  quote: 'Receive up to $200 back in statement credits each anniversary year on hotel accommodations'
128
+ in_popup: true
@@ -68,7 +68,8 @@ credits:
68
68
  amount: 20
69
69
  period: month
70
70
  enroll: true
71
- note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card. Through December 31, 2027. Each credit applies to one order."
71
+ valid_to: 2027-12-31
72
+ note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card. Each credit applies to one order."
72
73
  - id: rideshare
73
74
  match: { categories: [transit.rideshare] }
74
75
  amount: 12
@@ -87,6 +88,9 @@ credits:
87
88
  note: 'Hotel stays prepaid through Renowned Hotels and Resorts for United cardmembers.'
88
89
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
89
90
  evidence:
91
+ - rule: instacart
92
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-club
93
+ quote: 'from 3/23/2025 through 12/31/2027'
90
94
  - rule: annual_fee
91
95
  url: https://creditcards.chase.com/travel-credit-cards/united/united-club
92
96
  quote: 'ANNUAL FEE $695'
@@ -55,7 +55,8 @@ credits:
55
55
  amount: 10
56
56
  period: month
57
57
  enroll: true
58
- note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card. Through December 31, 2027."
58
+ valid_to: 2027-12-31
59
+ note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card."
59
60
  - id: rideshare
60
61
  match: { categories: [transit.rideshare] }
61
62
  amount: 5
@@ -69,6 +70,9 @@ credits:
69
70
  note: 'Flights booked directly with JSX.'
70
71
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
71
72
  evidence:
73
+ - rule: instacart
74
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-explorer
75
+ quote: 'from 3/23/2025 through 12/31/2027'
72
76
  - rule: annual_fee
73
77
  url: https://creditcards.chase.com/travel-credit-cards/united/united-explorer
74
78
  quote: '$0 intro annual fee for the first year, then $150'
@@ -89,7 +89,8 @@ credits:
89
89
  amount: 15
90
90
  period: month
91
91
  enroll: true
92
- note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card. Through December 31, 2027. Each credit applies to one order."
92
+ valid_to: 2027-12-31
93
+ note: "Instacart credits, which need an active Instacart+ membership: activate Chase's complimentary one with the card. Each credit applies to one order."
93
94
  - id: rideshare
94
95
  match: { categories: [transit.rideshare] }
95
96
  amount: 8
@@ -108,6 +109,9 @@ credits:
108
109
  note: 'Hotel stays prepaid through Renowned Hotels and Resorts for United cardmembers.'
109
110
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
110
111
  evidence:
112
+ - rule: instacart
113
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-quest
114
+ quote: 'from 3/23/2025 through 12/31/2027'
111
115
  - rule: annual_fee
112
116
  url: https://creditcards.chase.com/travel-credit-cards/united/united-quest
113
117
  quote: 'ANNUAL FEE $350'
@@ -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-01
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
- # lists the categories, so the definitions come from the card's current
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.citi.com/credit-cards/citi-custom-cash-credit-card
111
- quote: 'Earn 1% cash back thereafter on all other purchases.'
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.citi.com/credit-cards/citi-custom-cash-credit-card
117
- quote: 'Earn 5% cash back on your top eligible spend category each billing cycle up to $500 spent'
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'
@@ -54,9 +54,22 @@ rules:
54
54
  exclude: { categories: [gas.superstore] }
55
55
  rate: 3
56
56
  note: Only merchants coded as gas stations or EV charging. Excludes warehouse clubs, discount stores, department stores and convenience stores.
57
- # Not modeled: the $100 Annual Hotel Benefit.
57
+ # Merchant statement credits, on top of what the purchase earns.
58
+ credits:
59
+ - id: annual-hotel-benefit
60
+ match: { merchants: [citi-travel-hotels] }
61
+ amount: 100
62
+ period: calendar_year
63
+ min_amount: 500
64
+ note: "$100 off one hotel stay of $500 or more before taxes and fees, booked with Citi Travel (cititravel.com or 1-833-737-1288) and prepaid with the card, ThankYou points or both. Applied at booking. Air-and-hotel and hotel-and-car packages don't count. The $100 earns no points."
58
65
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
59
66
  evidence:
67
+ - rule: annual-hotel-benefit
68
+ url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
69
+ quote: 'Once per calendar year, enjoy $100 off a single hotel stay of $500 or more (excluding taxes and fees)'
70
+ - rule: annual-hotel-benefit
71
+ url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
72
+ quote: 'when booked through cititravel.com or 1-833-737-1288'
60
73
  - rule: base_rate
61
74
  url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
62
75
  quote: '1 point per dollar spent on All Other Purchases'
@@ -72,9 +85,11 @@ evidence:
72
85
  - rule: travel-agencies
73
86
  url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
74
87
  quote: 'Includes purchases at airlines, hotels (not booked through the Citi Travel site via'
88
+ in_popup: true
75
89
  - rule: travel-agencies
76
90
  url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
77
91
  quote: '), and travel agencies.'
92
+ in_popup: true
78
93
  - rule: restaurants
79
94
  url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
80
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"
@@ -35,9 +35,22 @@ rules:
35
35
  match: { categories: [travel] }
36
36
  rate: 3
37
37
  note: Car rentals, cruise lines, travel agencies, discount travel sites, timeshares and campgrounds.
38
- # Not modeled: the $50 yearly statement credit after a $50 airline purchase.
38
+ # Merchant statement credits, on top of what the purchase earns.
39
+ credits:
40
+ - id: airline-credit
41
+ match: { categories: [travel.flights] }
42
+ amount: 50
43
+ period: cardmember_year
44
+ min_amount: 50
45
+ note: "Applied automatically on the first purchase of $50 or more each year at a merchant coded as an airline (not charter or private jets). The first year runs from account opening; after that each year starts the first of the month after the annual fee is charged, modeled as the card's anniversary."
39
46
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
40
47
  evidence:
48
+ - rule: airline-credit
49
+ url: https://creditcards.wellsfargo.com/autograph-journey-visa-credit-card/
50
+ quote: 'Plus a $50 annual statement credit with $50 minimum airline purchase'
51
+ - rule: airline-credit
52
+ url: https://creditcards.wellsfargo.com/autograph-journey-visa-credit-card/
53
+ quote: 'when your card is used for your first airline purchase of at least $50'
41
54
  - rule: base_rate
42
55
  url: https://creditcards.wellsfargo.com/autograph-journey-visa-credit-card/
43
56
  quote: '1 rewards point will be earned per $1 spent on other net purchases'
@@ -71,3 +84,5 @@ evidence:
71
84
  - rule: foreign_transaction_fee
72
85
  url: https://www.wellsfargo.com/credit-cards/autograph-journey-visa/terms/
73
86
  quote: 'Foreign Transaction None'
87
+ todo:
88
+ - "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."