earnrate 0.2.10 → 0.2.12

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 (130) hide show
  1. package/README.md +31 -11
  2. package/data/CHANGELOG.md +154 -0
  3. package/data/VERSION +1 -1
  4. package/data/cards/amex-blue-business-plus.yaml +1 -0
  5. package/data/cards/amex-blue-cash-everyday.yaml +1 -0
  6. package/data/cards/amex-blue-cash-preferred.yaml +7 -0
  7. package/data/cards/amex-business-gold.yaml +134 -0
  8. package/data/cards/amex-business-platinum.yaml +115 -0
  9. package/data/cards/amex-delta-skymiles-blue.yaml +91 -0
  10. package/data/cards/amex-delta-skymiles-gold.yaml +122 -0
  11. package/data/cards/amex-delta-skymiles-platinum.yaml +120 -0
  12. package/data/cards/amex-delta-skymiles-reserve.yaml +82 -0
  13. package/data/cards/amex-gold.yaml +1 -0
  14. package/data/cards/amex-hilton-honors-aspire.yaml +142 -0
  15. package/data/cards/amex-hilton-honors-business.yaml +93 -0
  16. package/data/cards/amex-hilton-honors-surpass.yaml +153 -0
  17. package/data/cards/amex-hilton-honors.yaml +119 -0
  18. package/data/cards/amex-marriott-bonvoy-bevy.yaml +118 -0
  19. package/data/cards/amex-marriott-bonvoy-brilliant.yaml +93 -0
  20. package/data/cards/amex-marriott-bonvoy-business.yaml +116 -0
  21. package/data/cards/amex-platinum.yaml +15 -0
  22. package/data/cards/bank-of-america-atmos-rewards-ascent.yaml +14 -0
  23. package/data/cards/bank-of-america-atmos-rewards-business.yaml +15 -0
  24. package/data/cards/bank-of-america-atmos-rewards-summit.yaml +17 -0
  25. package/data/cards/bank-of-america-customized-cash-rewards.yaml +34 -1
  26. package/data/cards/bank-of-america-premium-rewards.yaml +134 -0
  27. package/data/cards/bank-of-america-travel-rewards.yaml +123 -0
  28. package/data/cards/bank-of-america-unlimited-cash-rewards.yaml +83 -0
  29. package/data/cards/barclays-jetblue-plus.yaml +86 -0
  30. package/data/cards/bilt-blue.yaml +60 -0
  31. package/data/cards/bilt-obsidian.yaml +1 -0
  32. package/data/cards/bilt-palladium.yaml +76 -0
  33. package/data/cards/capital-one-kohls-card.yaml +1 -0
  34. package/data/cards/capital-one-kohls-rewards-visa.yaml +1 -0
  35. package/data/cards/capital-one-quicksilver.yaml +82 -0
  36. package/data/cards/capital-one-savor.yaml +2 -0
  37. package/data/cards/capital-one-spark-cash-plus.yaml +80 -0
  38. package/data/cards/capital-one-venture-x-business.yaml +97 -0
  39. package/data/cards/capital-one-venture-x.yaml +2 -0
  40. package/data/cards/capital-one-venture.yaml +2 -0
  41. package/data/cards/chase-aeroplan.yaml +30 -0
  42. package/data/cards/chase-freedom-flex.yaml +1 -0
  43. package/data/cards/chase-freedom-rise.yaml +29 -0
  44. package/data/cards/chase-freedom-unlimited.yaml +1 -0
  45. package/data/cards/chase-ihg-one-rewards-business.yaml +1 -0
  46. package/data/cards/chase-ihg-one-rewards-premier-select.yaml +2 -0
  47. package/data/cards/chase-ihg-one-rewards-premier.yaml +1 -0
  48. package/data/cards/chase-ihg-one-rewards.yaml +1 -0
  49. package/data/cards/chase-ink-business-cash.yaml +1 -0
  50. package/data/cards/chase-ink-business-preferred.yaml +1 -0
  51. package/data/cards/chase-ink-business-unlimited.yaml +69 -0
  52. package/data/cards/chase-marriott-bonvoy-bold.yaml +124 -0
  53. package/data/cards/chase-marriott-bonvoy-boundless.yaml +78 -0
  54. package/data/cards/chase-prime-visa.yaml +1 -0
  55. package/data/cards/chase-sapphire-preferred.yaml +1 -0
  56. package/data/cards/chase-sapphire-reserve.yaml +30 -0
  57. package/data/cards/chase-southwest-performance-business.yaml +2 -0
  58. package/data/cards/chase-southwest-plus.yaml +2 -0
  59. package/data/cards/chase-southwest-premier-business.yaml +2 -0
  60. package/data/cards/chase-southwest-premier.yaml +2 -0
  61. package/data/cards/chase-southwest-priority.yaml +2 -0
  62. package/data/cards/chase-united-business.yaml +11 -0
  63. package/data/cards/chase-united-club-business.yaml +20 -0
  64. package/data/cards/chase-united-club.yaml +32 -0
  65. package/data/cards/chase-united-explorer.yaml +20 -0
  66. package/data/cards/chase-united-gateway.yaml +19 -0
  67. package/data/cards/chase-united-quest.yaml +20 -0
  68. package/data/cards/citi-aadvantage-business.yaml +14 -1
  69. package/data/cards/citi-aadvantage-executive.yaml +2 -0
  70. package/data/cards/citi-aadvantage-globe.yaml +2 -0
  71. package/data/cards/citi-aadvantage-mileup.yaml +2 -0
  72. package/data/cards/citi-aadvantage-platinum-select.yaml +14 -1
  73. package/data/cards/citi-costco-anywhere-visa-business.yaml +2 -0
  74. package/data/cards/citi-costco-anywhere-visa.yaml +2 -0
  75. package/data/cards/citi-custom-cash.yaml +1 -0
  76. package/data/cards/citi-double-cash.yaml +1 -0
  77. package/data/cards/citi-my-best-buy-visa.yaml +1 -0
  78. package/data/cards/citi-strata-elite.yaml +1 -0
  79. package/data/cards/citi-strata-premier.yaml +1 -0
  80. package/data/cards/citi-strata.yaml +164 -0
  81. package/data/cards/discover-it-cash-back.yaml +188 -0
  82. package/data/cards/paypal-cashback-mastercard.yaml +41 -0
  83. package/data/cards/sams-club-mastercard.yaml +68 -0
  84. package/data/cards/sofi-unlimited-2.yaml +1 -0
  85. package/data/cards/td-bank-nordstrom-credit-card.yaml +1 -0
  86. package/data/cards/td-bank-nordstrom-visa.yaml +1 -0
  87. package/data/cards/td-bank-target-circle-card.yaml +1 -0
  88. package/data/cards/usbank-altitude-connect.yaml +150 -0
  89. package/data/cards/usbank-altitude-go.yaml +118 -0
  90. package/data/cards/usbank-cash-plus.yaml +1 -0
  91. package/data/cards/wells-fargo-active-cash.yaml +1 -0
  92. package/data/cards/wells-fargo-autograph-journey.yaml +73 -0
  93. package/data/cards/wells-fargo-autograph.yaml +1 -0
  94. package/data/categories.yaml +3 -1
  95. package/data/currencies.yaml +60 -0
  96. package/data/issuers.yaml +25 -1
  97. package/data/memberships.yaml +10 -0
  98. package/data/merchants/overrides.yaml +515 -1
  99. package/data/merchants/seed.yaml +883 -6
  100. package/dist/cli/import.js +2 -2
  101. package/dist/cli/wallet.js +8 -1
  102. package/dist/data/integrity.js +37 -0
  103. package/dist/data/wallet-edit.js +3 -1
  104. package/dist/engine/cheat-sheet.js +3 -0
  105. package/dist/engine/checklist.js +14 -3
  106. package/dist/engine/evaluate.js +19 -7
  107. package/dist/engine/intro.js +36 -0
  108. package/dist/engine/recommend.js +41 -10
  109. package/dist/engine/record.js +2 -0
  110. package/dist/engine/rule-text.js +15 -1
  111. package/dist/engine/setup.js +6 -0
  112. package/dist/engine/text.js +23 -0
  113. package/dist/engine/wallet-change.js +20 -3
  114. package/dist/engine/wallet-summary.js +24 -4
  115. package/dist/format/card-art.js +21 -0
  116. package/dist/format/cards.js +1 -0
  117. package/dist/format/wallet-yaml.js +1 -0
  118. package/dist/format/wallet.js +10 -4
  119. package/dist/import/analyze.js +1 -0
  120. package/dist/mcp/inputs.js +3 -0
  121. package/dist/mcp/prompts.js +90 -0
  122. package/dist/mcp/schemas.js +17 -0
  123. package/dist/mcp/server.js +2 -0
  124. package/dist/mcp/tools/account.js +8 -5
  125. package/dist/mcp/tools/answers.js +7 -0
  126. package/dist/mcp/tools/wallet.js +7 -2
  127. package/dist/schema/card.js +23 -0
  128. package/dist/schema/issuer.js +4 -0
  129. package/dist/schema/wallet.js +3 -0
  130. package/package.json +12 -3
@@ -1,5 +1,6 @@
1
1
  id: chase-united-business
2
2
  name: United Business Card
3
+ color: '#1f3f77'
3
4
  issuer: chase
4
5
  network: visa
5
6
  currency: united-miles
@@ -39,6 +40,13 @@ rules:
39
40
  match: { categories: [transit] }
40
41
  rate: 2
41
42
  note: Local transit and commuting, including rideshare, taxis, trains, buses, ferries, tolls and parking. Not airlines, car rentals, bike or scooter rentals or car sharing.
43
+ milestones:
44
+ - id: spend-25k
45
+ spend: 25000
46
+ period: calendar_year
47
+ rewards:
48
+ - 2 continental U.S. Economy Plus seat upgrades
49
+ note: 'For the primary cardmember, on tickets bought with the card. Chase says to allow 6-8 weeks for them to post; use them within 12 months.'
42
50
  todo:
43
51
  - United Card Events from Chase also earn 2x; no merchant exists for them, so they aren't modeled.
44
52
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
@@ -88,3 +96,6 @@ evidence:
88
96
  - rule: foreign_transaction_fee
89
97
  url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC65426.html
90
98
  quote: 'Foreign Transactions None Penalty Fees'
99
+ - rule: spend-25k
100
+ url: https://creditcards.chase.com/business-credit-cards/united/united-business-card
101
+ quote: 'Earn 2 continental U.S. Economy Plus® seat upgrades after spending $25,000 each calendar year.'
@@ -1,5 +1,6 @@
1
1
  id: chase-united-club-business
2
2
  name: United Club Business Card
3
+ color: '#1a2130'
3
4
  issuer: chase
4
5
  network: visa
5
6
  currency: united-miles
@@ -26,6 +27,19 @@ rules:
26
27
  match: { merchants: [renowned-hotels-chase-travel] }
27
28
  rate: 5
28
29
  note: Prepaid hotel stays booked through Renowned Hotels and Resorts for United Cardmembers on Chase Travel. Bookings through FROSCH and its family of travel companies don't earn 5x.
30
+ milestones:
31
+ - id: spend-40k
32
+ spend: 40000
33
+ period: calendar_year
34
+ rewards:
35
+ - 2 global Economy Plus seat upgrades
36
+ note: 'For the primary cardmember, on tickets bought with the card. Chase says to allow 6-8 weeks for them to post; use them within 12 months.'
37
+ - id: spend-50k
38
+ spend: 50000
39
+ period: calendar_year
40
+ rewards:
41
+ - United Club All Access membership
42
+ note: 'Premier Gold status unlocks it too. It lasts the rest of that calendar year and all of the next.'
29
43
  todo:
30
44
  - United Card Events from Chase also earn 2x; no merchant exists for them, so they aren't modeled.
31
45
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
@@ -57,3 +71,9 @@ evidence:
57
71
  - rule: foreign_transaction_fee
58
72
  url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC65424.html
59
73
  quote: 'Foreign Transactions None Penalty Fees'
74
+ - rule: spend-40k
75
+ url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
76
+ quote: 'Earn 2 global Economy Plus® seat upgrades after spending $40,000 each calendar year.'
77
+ - rule: spend-50k
78
+ url: https://creditcards.chase.com/business-credit-cards/united/united-club-business
79
+ quote: 'Receive United Club All Access Membership after spending $50,000 in a calendar year'
@@ -1,5 +1,6 @@
1
1
  id: chase-united-club
2
2
  name: United Club Card
3
+ color: '#1c2533'
3
4
  issuer: chase
4
5
  network: visa
5
6
  currency: united-miles
@@ -38,6 +39,25 @@ rules:
38
39
  match: { categories: [dining] }
39
40
  rate: 2
40
41
  note: Includes takeout and eligible delivery services.
42
+ milestones:
43
+ - id: spend-20k
44
+ spend: 20000
45
+ period: calendar_year
46
+ rewards:
47
+ - a 10,000-mile award flight discount
48
+ note: "Up to two a calendar year. It posts to MileagePlus within 6-8 weeks and expires 12 months after it's issued."
49
+ - id: spend-40k
50
+ spend: 40000
51
+ period: calendar_year
52
+ rewards:
53
+ - a second 10,000-mile award flight discount
54
+ note: "The most a calendar year: two discounts, on up to $40,000 of purchases. It posts to MileagePlus within 6-8 weeks and expires 12 months after it's issued."
55
+ - id: spend-50k
56
+ spend: 50000
57
+ period: calendar_year
58
+ rewards:
59
+ - United Club All Access membership
60
+ note: 'Premier Gold status unlocks it too. It lasts the rest of that calendar year and all of the next.'
41
61
  todo:
42
62
  - United Card Events from Chase also earn 5x; no merchant exists for them, so they aren't modeled.
43
63
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
@@ -90,3 +110,15 @@ evidence:
90
110
  - rule: foreign_transaction_fee
91
111
  url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC62957.html
92
112
  quote: 'Foreign Transactions None Penalty Fees'
113
+ - rule: spend-20k
114
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-club
115
+ quote: 'Earn a 10,000-mile award flight discount after $20,000 in purchases'
116
+ - rule: spend-40k
117
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-club
118
+ quote: 'up to two times each calendar year'
119
+ - rule: spend-40k
120
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-club
121
+ quote: 'on up to a maximum of $40,000 in net purchases per calendar year'
122
+ - rule: spend-50k
123
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-club
124
+ quote: 'Receive United Club All Access Membership after spending $50,000 in a calendar year'
@@ -1,5 +1,6 @@
1
1
  id: chase-united-explorer
2
2
  name: United Explorer Card
3
+ color: '#2b4f86'
3
4
  issuer: chase
4
5
  network: visa
5
6
  currency: united-miles
@@ -31,6 +32,19 @@ rules:
31
32
  match: { categories: [travel.hotels] }
32
33
  rate: 2
33
34
  note: Only hotel stays booked directly with the hotel. Not travel agencies, discount travel sites, vacation clubs, tour operators or packages; on-site purchases count only if they code as the hotel.
35
+ milestones:
36
+ - id: spend-10k
37
+ spend: 10000
38
+ period: calendar_year
39
+ rewards:
40
+ - '$100 United TravelBank cash'
41
+ note: 'One a calendar year. It posts to MileagePlus within 6-8 weeks, and the booking must be made within 12 months of issue.'
42
+ - id: spend-20k
43
+ spend: 20000
44
+ period: calendar_year
45
+ rewards:
46
+ - a 10,000-mile award flight discount
47
+ note: "One a calendar year. It posts to MileagePlus within 6-8 weeks and expires 12 months after it's issued."
34
48
  todo:
35
49
  - United Card Events from Chase also earn 3x; no merchant exists for them, so they aren't modeled.
36
50
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
@@ -74,3 +88,9 @@ evidence:
74
88
  - rule: foreign_transaction_fee
75
89
  url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC63218.html
76
90
  quote: 'Foreign Transactions None Penalty Fees'
91
+ - rule: spend-10k
92
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-explorer
93
+ quote: 'Earn $100 in United® TravelBank cash after you spend $10,000 on purchases each calendar year'
94
+ - rule: spend-20k
95
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-explorer
96
+ quote: 'Earn a 10,000-mile award flight discount after spending $20,000 each calendar year'
@@ -1,5 +1,6 @@
1
1
  id: chase-united-gateway
2
2
  name: United Gateway Card
3
+ color: '#4f7bbd'
3
4
  issuer: chase
4
5
  network: visa
5
6
  currency: united-miles
@@ -30,6 +31,15 @@ rules:
30
31
  match: { categories: [transit] }
31
32
  rate: 2
32
33
  note: Local transit and commuting, including rideshare, taxis, trains, buses, ferries, tolls and parking. Not airlines, car rentals, bike or scooter rentals or car sharing.
34
+ milestones:
35
+ - id: spend-10k
36
+ spend: 10000
37
+ period: calendar_year
38
+ rewards:
39
+ - 2 first checked bag certificates
40
+ - 10% or more off award flights
41
+ - 6x MileagePlus miles from United on United fares
42
+ note: "The award discount lasts the rest of that calendar year and all of the next. The 6x miles come from United's MileagePlus program, not the card, so they don't change what the card earns."
33
43
  todo:
34
44
  - United Card Events from Chase also earn 2x; no merchant exists for them, so they aren't modeled.
35
45
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
@@ -67,3 +77,12 @@ evidence:
67
77
  - rule: foreign_transaction_fee
68
78
  url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC65777.html
69
79
  quote: 'Foreign Transactions None Penalty Fees'
80
+ - rule: spend-10k
81
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-gateway
82
+ quote: 'Earn 2 first standard checked bags after you spend $10,000 in a calendar year.'
83
+ - rule: spend-10k
84
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-gateway
85
+ quote: 'Save 10% or more on flights booked with miles after spending $10,000 in a calendar year.'
86
+ - rule: spend-10k
87
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-gateway
88
+ quote: "you'll earn 6x miles on fare from United as a MileagePlus member after spending $10,000"
@@ -1,5 +1,6 @@
1
1
  id: chase-united-quest
2
2
  name: United Quest Card
3
+ color: '#253a5c'
3
4
  issuer: chase
4
5
  network: visa
5
6
  currency: united-miles
@@ -65,6 +66,19 @@ rules:
65
66
  }
66
67
  rate: 2
67
68
  note: Only the services on Chase's select streaming list, like Netflix, Hulu, Disney+ and Spotify.
69
+ milestones:
70
+ - id: spend-20k
71
+ spend: 20000
72
+ period: calendar_year
73
+ rewards:
74
+ - a 10,000-mile award flight discount
75
+ note: "One a calendar year. It posts to MileagePlus within 6-8 weeks and expires 12 months after it's issued. Separate from the 10,000-mile discount every cardmember anniversary."
76
+ - id: spend-40k
77
+ spend: 40000
78
+ period: calendar_year
79
+ rewards:
80
+ - 2 global Economy Plus seat upgrades
81
+ note: 'For the primary cardmember, on tickets bought with the card. Chase says to allow 6-8 weeks for them to post; use them within 12 months.'
68
82
  todo:
69
83
  - United Card Events from Chase also earn 4x; no merchant exists for them, so they aren't modeled.
70
84
  # Issuer text backing each rule; `yarn check-sources` checks it weekly.
@@ -120,3 +134,9 @@ evidence:
120
134
  - rule: foreign_transaction_fee
121
135
  url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC65756.html
122
136
  quote: 'Foreign Transactions None Penalty Fees'
137
+ - rule: spend-20k
138
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-quest
139
+ quote: 'Earn a 10,000-mile award flight discount after spending $20,000 each calendar year'
140
+ - rule: spend-40k
141
+ url: https://creditcards.chase.com/travel-credit-cards/united/united-quest
142
+ quote: 'Earn 2 global Economy Plus® seat upgrades after spending $40,000 each calendar year.'
@@ -1,5 +1,7 @@
1
1
  id: citi-aadvantage-business
2
2
  name: Citi / AAdvantage Business World Elite Mastercard
3
+ short_name: AAdvantage Business
4
+ color: '#3a4a5a'
3
5
  issuer: citi
4
6
  network: mastercard
5
7
  currency: aadvantage-miles
@@ -37,8 +39,16 @@ rules:
37
39
  match: { categories: [phone, tv_internet] }
38
40
  rate: 2
39
41
  note: Telecom merchants (phone service and equipment such as cell phones) and cable and satellite TV, internet, phone and radio providers.
40
- # Not modeled: free checked bag, companion certificate after $30,000 spend. Loyalty Points toward status aren't card earnings.
42
+ milestones:
43
+ - id: spend-30k
44
+ spend: 30000
45
+ period: cardmember_year
46
+ rewards:
47
+ - an American Airlines Companion Certificate
48
+ note: "Citi's cardmembership year runs from the billing cycle after the anniversary month, so it can be a few weeks off the anniversary date. Issued after the card renews: the companion pays $99 plus taxes and fees on a domestic Main Cabin round trip."
49
+ # Not modeled: free checked bag. Loyalty Points toward status aren't card earnings.
41
50
  todo:
51
+ - Citi counts the $30,000 milestone over a cardmembership year that starts with the billing cycle after the anniversary month; `cardmember_year` uses the anniversary date, so progress can be a few weeks off.
42
52
  - Warehouse-club gas earns 2x if the club codes it as a gas station; earnrate's gas.superstore can't tell, so it's excluded. Moot at Costco, which takes only Visa.
43
53
  evidence:
44
54
  - rule: base_rate
@@ -86,3 +96,6 @@ evidence:
86
96
  - rule: foreign_transaction_fee
87
97
  url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
88
98
  quote: 'Fee for Foreign Purchases — None'
99
+ - rule: spend-30k
100
+ url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
101
+ quote: 'Earn an American Airlines Companion Certificate for qualifying domestic travel after you spend $30,000 in purchases each cardmembership year'
@@ -1,5 +1,7 @@
1
1
  id: citi-aadvantage-executive
2
2
  name: Citi / AAdvantage Executive World Legend Mastercard
3
+ short_name: AAdvantage Executive
4
+ color: '#1e1e22'
3
5
  issuer: citi
4
6
  network: mastercard
5
7
  currency: aadvantage-miles
@@ -1,5 +1,7 @@
1
1
  id: citi-aadvantage-globe
2
2
  name: Citi / AAdvantage Globe Mastercard
3
+ short_name: AAdvantage Globe
4
+ color: '#2c3e5a'
3
5
  issuer: citi
4
6
  network: mastercard
5
7
  currency: aadvantage-miles
@@ -1,5 +1,7 @@
1
1
  id: citi-aadvantage-mileup
2
2
  name: American Airlines AAdvantage MileUp Card
3
+ short_name: AAdvantage MileUp
4
+ color: '#8aa3bf'
3
5
  issuer: citi
4
6
  # The card page's ID Theft Protection terms have cardholders enroll "with your
5
7
  # Citibank Mastercard", and its footer carries the Mastercard trademark notice.
@@ -1,5 +1,7 @@
1
1
  id: citi-aadvantage-platinum-select
2
2
  name: Citi / AAdvantage Platinum Select World Elite Mastercard
3
+ short_name: AAdvantage Platinum
4
+ color: '#a7b0b8'
3
5
  issuer: citi
4
6
  network: mastercard
5
7
  currency: aadvantage-miles
@@ -30,8 +32,16 @@ rules:
30
32
  exclude: { categories: [gas.superstore] }
31
33
  rate: 2
32
34
  note: Warehouse-club gas counts only when the club codes it as a gas station, so superstore and warehouse-club gas is excluded here to stay conservative. Discount, department and convenience stores don't count.
33
- # Not modeled: free first checked bag, preferred boarding, companion certificate. Loyalty Points toward status aren't card earnings.
35
+ milestones:
36
+ - id: spend-20k
37
+ spend: 20000
38
+ period: cardmember_year
39
+ rewards:
40
+ - a $125 American Airlines Flight Discount
41
+ note: "Citi's cardmembership year runs from the billing cycle after the anniversary month, so it can be a few weeks off the anniversary date. The discount expires a year after it's issued."
42
+ # Not modeled: free first checked bag, preferred boarding. Loyalty Points toward status aren't card earnings.
34
43
  todo:
44
+ - Citi counts the $20,000 milestone over a cardmembership year that starts with the billing cycle after the anniversary month; `cardmember_year` uses the anniversary date, so progress can be a few weeks off.
35
45
  - Warehouse-club gas earns 2x if the club codes it as a gas station; earnrate's gas.superstore can't tell, so it's excluded. Moot at Costco, which takes only Visa.
36
46
  evidence:
37
47
  - rule: base_rate
@@ -73,3 +83,6 @@ evidence:
73
83
  - rule: foreign_transaction_fee
74
84
  url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
75
85
  quote: 'there are no foreign transaction fees'
86
+ - rule: spend-20k
87
+ url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
88
+ quote: 'Earn a $125 American Airlines Flight Discount certificate (the “Flight Discount”) after you spend $20,000 or more in purchases'
@@ -1,5 +1,7 @@
1
1
  id: citi-costco-anywhere-visa-business
2
2
  name: Costco Anywhere Visa Business Card by Citi
3
+ short_name: Costco Visa Business
4
+ color: '#3a3e44'
3
5
  issuer: citi
4
6
  network: visa
5
7
  currency: cash
@@ -1,5 +1,7 @@
1
1
  id: citi-costco-anywhere-visa
2
2
  name: Costco Anywhere Visa Card by Citi
3
+ short_name: Costco Anywhere Visa
4
+ color: '#2f3338'
3
5
  issuer: citi
4
6
  network: visa
5
7
  currency: cash
@@ -1,5 +1,6 @@
1
1
  id: citi-custom-cash
2
2
  name: Citi Custom Cash Card
3
+ color: '#3a7d8c'
3
4
  issuer: citi
4
5
  network: mastercard
5
6
  currency: cash
@@ -1,5 +1,6 @@
1
1
  id: citi-double-cash
2
2
  name: Citi Double Cash Card
3
+ color: '#6aa7a8'
3
4
  issuer: citi
4
5
  network: mastercard
5
6
  currency: cash
@@ -1,5 +1,6 @@
1
1
  id: citi-my-best-buy-visa
2
2
  name: My Best Buy Visa Card
3
+ color: '#1d4fa0'
3
4
  issuer: citi
4
5
  network: visa
5
6
  currency: best-buy-rewards
@@ -1,5 +1,6 @@
1
1
  id: citi-strata-elite
2
2
  name: Citi Strata Elite Card
3
+ color: '#2a2a2a'
3
4
  issuer: citi
4
5
  network: mastercard
5
6
  currency: TYP
@@ -1,5 +1,6 @@
1
1
  id: citi-strata-premier
2
2
  name: Citi Strata Premier Card
3
+ color: '#3b4250'
3
4
  issuer: citi
4
5
  network: mastercard
5
6
  currency: TYP
@@ -0,0 +1,164 @@
1
+ id: citi-strata
2
+ name: Citi Strata Card
3
+ color: '#5c6b7a'
4
+ issuer: citi
5
+ # The card page's FAQ: "The Citi Strata Card is a Mastercard."
6
+ network: mastercard
7
+ currency: TYP
8
+ last_verified: 2026-11-04
9
+ verified_by: claude
10
+ source_urls:
11
+ - https://www.citi.com/credit-cards/citi-strata-credit-card
12
+ # The card page's "Important Pricing & Information" link (terms, fees and
13
+ # rewards definitions).
14
+ - https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
15
+ base_rate: 1
16
+ annual_fee: 0
17
+ foreign_transaction_fee: 3
18
+ welcome_offer:
19
+ points: 20000
20
+ spend: 1000
21
+ months: 3
22
+ note: Not available if you currently have or previously had a Citi Strata or Citi Strata Student account; Citi may also decline the bonus based on your history of opening, closing and using credit cards. Offers may vary.
23
+ choices:
24
+ # Select Streaming Services until changed; it can be changed once each
25
+ # calendar quarter.
26
+ - id: self-select
27
+ pick: 1
28
+ period: until_changed
29
+ default: [select-streaming]
30
+ options:
31
+ select-streaming:
32
+ merchants:
33
+ [
34
+ amazon-prime-video,
35
+ apple-music,
36
+ disney-plus,
37
+ directv-stream,
38
+ espn,
39
+ fandango-at-home,
40
+ fubotv,
41
+ max,
42
+ hulu,
43
+ mlb-tv,
44
+ nba-league-pass,
45
+ netflix,
46
+ pandora,
47
+ paramount-plus,
48
+ sling-tv,
49
+ spotify,
50
+ starz,
51
+ siriusxm,
52
+ tidal,
53
+ youtube-premium,
54
+ youtube-tv,
55
+ ]
56
+ fitness-clubs: [fitness]
57
+ live-entertainment: [entertainment]
58
+ rules:
59
+ - id: citi-travel-hotels-cars-attractions
60
+ match:
61
+ {
62
+ merchants:
63
+ [
64
+ citi-travel-hotels,
65
+ citi-travel-car-rentals,
66
+ citi-travel-attractions,
67
+ ],
68
+ }
69
+ rate: 5
70
+ note: Booked on the Citi Travel site (cititravel.com or 1-833-737-1288). Only the part paid with the card earns, not the part paid with points.
71
+ - id: supermarkets
72
+ match: { categories: [grocery.supermarket] }
73
+ exclude:
74
+ { categories: [superstore, warehouse_club, convenience_store, drugstore] }
75
+ rate: 3
76
+ note: Excludes superstores, warehouse clubs, convenience stores, drugstores, specialty food stores, bakeries and meal kit delivery. Online supermarkets count only if the merchant uses the supermarket merchant code.
77
+ - id: gas-ev-charging-select-transit
78
+ match: { categories: [gas, ev_charging, transit, travel.car_rental] }
79
+ exclude: { categories: [gas.superstore] }
80
+ rate: 3
81
+ note: Gas stations and EV charging, plus car rentals, ferries, commuter and passenger railways, subways, taxis and car services, tolls, parking, bus lines and RV rentals. Gas at warehouse clubs, superstores, discount, department and convenience stores doesn't count; neither do bike or scooter rentals.
82
+ - id: self-select
83
+ match: { choice: self-select }
84
+ rate: 3
85
+ note: The Self-Select Category you chose (Select Streaming Services until you change it). Streaming bundled with another product, or billed through another platform, doesn't count. Live entertainment is tickets for concerts, live sports, theater and amusement parks, not movie theaters, museums or golf.
86
+ - id: restaurants
87
+ match: { categories: [dining] }
88
+ exclude: { merchants: [dodger-stadium, bellagio] }
89
+ rate: 2
90
+ note: Includes cafes, bars, lounges, fast food, takeout and restaurant delivery services. Excludes bakeries, caterers and restaurants inside another business (hotels, stores, stadiums, grocery stores, warehouse clubs).
91
+ # Issuer text backing each rule; `yarn check-sources` checks it weekly.
92
+ evidence:
93
+ - rule: base_rate
94
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
95
+ quote: '1 point per dollar spent on All Other Purchases'
96
+ - rule: citi-travel-hotels-cars-attractions
97
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
98
+ quote: '5 points per dollar spent on Hotels, Car Rentals, and Attractions booked on cititravel.com'
99
+ - rule: citi-travel-hotels-cars-attractions
100
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
101
+ quote: 'only the portion paid with your card will earn points'
102
+ - rule: supermarkets
103
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
104
+ quote: '3 points per dollar spent at Supermarkets'
105
+ - rule: supermarkets
106
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
107
+ quote: 'Excludes purchases at general merchandise/discount superstores'
108
+ - rule: supermarkets
109
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
110
+ quote: 'drugstores, warehouse clubs, wholesale clubs, specialty vendors, bakeries'
111
+ - rule: gas-ev-charging-select-transit
112
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
113
+ quote: '3 points per dollar spent at Gas & EV Charging Stations and on Select Transit.'
114
+ - rule: gas-ev-charging-select-transit
115
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
116
+ quote: 'Select transit includes car rentals, ferries, commuter railways, subways, taxis/limousines/car services'
117
+ - rule: gas-ev-charging-select-transit
118
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
119
+ quote: 'bridge and road tolls, parking lots/garages, bus lines, and motor home and recreational vehicle rentals'
120
+ - rule: gas-ev-charging-select-transit
121
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
122
+ quote: 'Gas stations exclude gas purchases at warehouse clubs, wholesale stores, superstores, discount stores'
123
+ - rule: self-select
124
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
125
+ quote: '3 points per dollar spent on an eligible Self-Select Category of your choice'
126
+ - rule: self-select
127
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
128
+ quote: 'the default Self-Select Category is Select Streaming Services'
129
+ - rule: self-select
130
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
131
+ quote: 'You may change your Self-Select Category once each calendar quarter'
132
+ - rule: self-select
133
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
134
+ quote: 'Includes the following streaming providers: Amazon Prime Video, Apple Music, Disney+'
135
+ - rule: self-select
136
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
137
+ quote: 'including concerts, live sporting events, live theatrical productions, amusement parks, and orchestras'
138
+ - rule: self-select
139
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
140
+ quote: 'athletic, sports and recreation facilities requiring membership such as health, tennis, and swimming clubs'
141
+ - rule: restaurants
142
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
143
+ quote: '2 points per dollar spent at Restaurants'
144
+ - rule: restaurants
145
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
146
+ quote: 'Excludes purchases at bakeries, caterers, and restaurants located inside another business'
147
+ - rule: annual_fee
148
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
149
+ quote: 'Annual Fee None'
150
+ - rule: welcome_offer
151
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
152
+ quote: 'after spending $1,000 in the first 3 months'
153
+ - rule: welcome_offer
154
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
155
+ quote: 'Earn 20,000 bonus points'
156
+ - rule: welcome_offer
157
+ url: https://www.citi.com/credit-cards/citi-strata-credit-card
158
+ quote: 'if you currently have or previously had a Citi Strata® or a Citi Strata Student account'
159
+ - rule: foreign_transaction_fee
160
+ url: https://online.citi.com/US/nga/cards/displayterms?app=UNSOL&HKOP=694a2bccaa4fab7c7710d9d9f1f36fbac5552a971559393761b722e87102c50f
161
+ quote: 'Foreign Purchase Transaction 3% of each purchase transaction in U.S. dollars.'
162
+ todo:
163
+ - "The Self-Select Category can also be Cosmetic Stores/Barber Shops/Hair Salons or Pet Supply Stores, which have no earnrate category, so those two options aren't offered."
164
+ - "The terms link carries a session-like token (HKOP); if Citi rotates it, take the new one from the card page's Important Pricing & Information link."