earnrate 0.2.7 → 0.2.9

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 (103) hide show
  1. package/README.md +31 -5
  2. package/data/CHANGELOG.md +142 -0
  3. package/data/VERSION +1 -1
  4. package/data/cards/amex-blue-business-plus.yaml +4 -0
  5. package/data/cards/amex-blue-cash-everyday.yaml +4 -0
  6. package/data/cards/amex-blue-cash-preferred.yaml +36 -3
  7. package/data/cards/amex-gold.yaml +4 -0
  8. package/data/cards/amex-platinum.yaml +4 -0
  9. package/data/cards/bank-of-america-atmos-rewards-ascent.yaml +4 -0
  10. package/data/cards/bank-of-america-atmos-rewards-business.yaml +4 -0
  11. package/data/cards/bank-of-america-atmos-rewards-summit.yaml +24 -1
  12. package/data/cards/bank-of-america-customized-cash-rewards.yaml +4 -0
  13. package/data/cards/bilt-obsidian.yaml +4 -0
  14. package/data/cards/capital-one-kohls-card.yaml +2 -0
  15. package/data/cards/capital-one-kohls-rewards-visa.yaml +2 -0
  16. package/data/cards/capital-one-savor.yaml +4 -0
  17. package/data/cards/capital-one-venture-x.yaml +4 -0
  18. package/data/cards/capital-one-venture.yaml +4 -0
  19. package/data/cards/chase-aeroplan.yaml +5 -0
  20. package/data/cards/chase-freedom-flex.yaml +4 -0
  21. package/data/cards/chase-freedom-unlimited.yaml +4 -0
  22. package/data/cards/chase-ihg-one-rewards-business.yaml +29 -1
  23. package/data/cards/chase-ihg-one-rewards-premier-select.yaml +37 -2
  24. package/data/cards/chase-ihg-one-rewards-premier.yaml +29 -1
  25. package/data/cards/chase-ihg-one-rewards.yaml +57 -7
  26. package/data/cards/chase-ink-business-cash.yaml +4 -0
  27. package/data/cards/chase-ink-business-preferred.yaml +4 -0
  28. package/data/cards/chase-prime-visa.yaml +16 -1
  29. package/data/cards/chase-sapphire-preferred.yaml +4 -0
  30. package/data/cards/chase-sapphire-reserve.yaml +4 -0
  31. package/data/cards/chase-southwest-performance-business.yaml +4 -0
  32. package/data/cards/chase-southwest-plus.yaml +4 -0
  33. package/data/cards/chase-southwest-premier-business.yaml +4 -0
  34. package/data/cards/chase-southwest-premier.yaml +4 -0
  35. package/data/cards/chase-southwest-priority.yaml +4 -0
  36. package/data/cards/chase-united-business.yaml +5 -0
  37. package/data/cards/chase-united-club-business.yaml +5 -0
  38. package/data/cards/chase-united-club.yaml +5 -0
  39. package/data/cards/chase-united-explorer.yaml +5 -0
  40. package/data/cards/chase-united-gateway.yaml +5 -0
  41. package/data/cards/chase-united-quest.yaml +29 -1
  42. package/data/cards/citi-aadvantage-business.yaml +4 -0
  43. package/data/cards/citi-aadvantage-executive.yaml +4 -0
  44. package/data/cards/citi-aadvantage-globe.yaml +4 -0
  45. package/data/cards/citi-aadvantage-mileup.yaml +4 -0
  46. package/data/cards/citi-aadvantage-platinum-select.yaml +4 -0
  47. package/data/cards/citi-costco-anywhere-visa-business.yaml +4 -0
  48. package/data/cards/citi-costco-anywhere-visa.yaml +4 -0
  49. package/data/cards/citi-custom-cash.yaml +2 -0
  50. package/data/cards/citi-double-cash.yaml +4 -0
  51. package/data/cards/citi-my-best-buy-visa.yaml +4 -0
  52. package/data/cards/citi-strata-elite.yaml +4 -0
  53. package/data/cards/citi-strata-premier.yaml +4 -0
  54. package/data/cards/sofi-unlimited-2.yaml +4 -0
  55. package/data/cards/td-bank-nordstrom-credit-card.yaml +2 -0
  56. package/data/cards/td-bank-nordstrom-visa.yaml +2 -0
  57. package/data/cards/td-bank-target-circle-card.yaml +2 -0
  58. package/data/cards/usbank-cash-plus.yaml +5 -0
  59. package/data/cards/wells-fargo-active-cash.yaml +4 -0
  60. package/data/cards/wells-fargo-autograph.yaml +4 -0
  61. package/data/merchants/overrides.yaml +284 -0
  62. package/data/merchants/seed.yaml +1055 -2
  63. package/dist/cli/args.js +3 -6
  64. package/dist/cli/explore.js +10 -0
  65. package/dist/cli/import.js +21 -9
  66. package/dist/cli/run.js +3 -1
  67. package/dist/cli/wallet.js +5 -1
  68. package/dist/data/atomic-write.js +13 -0
  69. package/dist/data/file-store.js +2 -2
  70. package/dist/data/integrity.js +17 -0
  71. package/dist/data/store.js +5 -2
  72. package/dist/data/wallet-edit.js +35 -24
  73. package/dist/engine/cheat-sheet.js +46 -2
  74. package/dist/engine/checklist.js +19 -8
  75. package/dist/engine/evaluate.js +2 -0
  76. package/dist/engine/explore.js +1 -1
  77. package/dist/engine/milestones.js +83 -0
  78. package/dist/engine/periods.js +29 -12
  79. package/dist/engine/recommend.js +43 -9
  80. package/dist/engine/record.js +39 -1
  81. package/dist/engine/rule-text.js +5 -1
  82. package/dist/engine/setup.js +14 -2
  83. package/dist/engine/simulate.js +25 -3
  84. package/dist/engine/text.js +11 -0
  85. package/dist/engine/wallet-change.js +70 -3
  86. package/dist/engine/wallet-summary.js +17 -5
  87. package/dist/format/cards.js +3 -1
  88. package/dist/format/wallet-yaml.js +5 -1
  89. package/dist/format/wallet.js +18 -4
  90. package/dist/import/analyze.js +42 -2
  91. package/dist/mcp/inputs.js +10 -0
  92. package/dist/mcp/schemas.js +47 -2
  93. package/dist/mcp/tools/account.js +1 -1
  94. package/dist/mcp/tools/answers.js +8 -4
  95. package/dist/mcp/tools/wallet.js +18 -10
  96. package/dist/merchants/cache.js +3 -5
  97. package/dist/merchants/fallback.js +8 -0
  98. package/dist/merchants/missed.js +5 -6
  99. package/dist/schema/card-number.js +31 -0
  100. package/dist/schema/card.js +22 -1
  101. package/dist/schema/common.js +4 -0
  102. package/dist/schema/wallet.js +12 -2
  103. package/package.json +5 -3
@@ -8,8 +8,10 @@ verified_by: claude
8
8
  source_urls:
9
9
  - https://creditcards.chase.com/travel-credit-cards/united/united-quest
10
10
  - https://www.chase.com/personal/credit-cards/rewards-category-faq
11
+ - https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC65756.html
11
12
  base_rate: 1
12
13
  annual_fee: 350
14
+ foreign_transaction_fee: 0
13
15
  welcome_offer:
14
16
  points: 80000
15
17
  spend: 4000
@@ -37,7 +39,30 @@ rules:
37
39
  rate: 2
38
40
  note: Includes takeout and eligible delivery services.
39
41
  - id: streaming
40
- match: { categories: [streaming] }
42
+ match:
43
+ {
44
+ merchants:
45
+ [
46
+ apple-music,
47
+ apple-tv,
48
+ disney-plus,
49
+ espn,
50
+ fubotv,
51
+ max,
52
+ hulu,
53
+ netflix,
54
+ pandora,
55
+ paramount-plus,
56
+ peacock,
57
+ showtime,
58
+ siriusxm,
59
+ sling-tv,
60
+ spotify,
61
+ youtube-premium,
62
+ youtube-tv,
63
+ fandango-at-home,
64
+ ],
65
+ }
41
66
  rate: 2
42
67
  note: Only Chase's select streaming list (Apple Music, Apple TV, Disney+, ESPN+, Fubo TV, Max, Hulu, Netflix, Pandora, Paramount+, Peacock, Showtime, SiriusXM, Sling, Spotify, YouTube Premium, YouTube TV, Vudu).
43
68
  todo:
@@ -92,3 +117,6 @@ evidence:
92
117
  - rule: dining
93
118
  url: https://www.chase.com/personal/credit-cards/rewards-category-faq
94
119
  quote: 'Delivery and takeout services will be included if they classify as a restaurant merchant'
120
+ - rule: foreign_transaction_fee
121
+ url: https://sites.chase.com/services/creatives/pricingandterms.html/content/dam/pricingandterms/LGC65756.html
122
+ quote: 'Foreign Transactions None Penalty Fees'
@@ -13,6 +13,7 @@ base_rate: 1
13
13
  business: true
14
14
  annual_fee: 99
15
15
  first_year_fee: 0
16
+ foreign_transaction_fee: 0
16
17
  welcome_offer:
17
18
  points: 75000
18
19
  spend: 5000
@@ -82,3 +83,6 @@ evidence:
82
83
  - rule: welcome_offer
83
84
  url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
84
85
  quote: 'new account bonus for a Citi® / AAdvantage® Business account in the past 48 months'
86
+ - rule: foreign_transaction_fee
87
+ url: https://www.citi.com/credit-cards/citi-aadvantage-business-credit-card
88
+ quote: 'Fee for Foreign Purchases — None'
@@ -9,6 +9,7 @@ source_urls:
9
9
  - https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard
10
10
  base_rate: 1
11
11
  annual_fee: 695
12
+ foreign_transaction_fee: 0
12
13
  welcome_offer:
13
14
  points: 80000
14
15
  spend: 8000
@@ -61,3 +62,6 @@ evidence:
61
62
  - rule: welcome_offer
62
63
  url: https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard
63
64
  quote: 'new account bonus for a Citi® / AAdvantage® Executive account in the past 48 months'
65
+ - rule: foreign_transaction_fee
66
+ url: https://www.citi.com/credit-cards/citi-aadvantage-executive-world-legend-mastercard
67
+ quote: 'Fee for Foreign Purchases - None'
@@ -9,6 +9,7 @@ source_urls:
9
9
  - https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard
10
10
  base_rate: 1
11
11
  annual_fee: 350
12
+ foreign_transaction_fee: 0
12
13
  welcome_offer:
13
14
  points: 60000
14
15
  spend: 4000
@@ -63,3 +64,6 @@ evidence:
63
64
  - rule: welcome_offer
64
65
  url: https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard
65
66
  quote: 'new account bonus for a Citi® / AAdvantage® Globe™ account in the past 48 months'
67
+ - rule: foreign_transaction_fee
68
+ url: https://www.citi.com/credit-cards/citi-aadvantage-globe-mastercard
69
+ quote: 'Fee for Foreign Purchases - None'
@@ -11,6 +11,7 @@ source_urls:
11
11
  - https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
12
12
  base_rate: 1
13
13
  annual_fee: 0
14
+ foreign_transaction_fee: 3
14
15
  welcome_offer:
15
16
  points: 15000
16
17
  spend: 500
@@ -58,3 +59,6 @@ evidence:
58
59
  - rule: welcome_offer
59
60
  url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
60
61
  quote: 'new account bonus for an AAdvantage® MileUp® account in the past 48 months'
62
+ - rule: foreign_transaction_fee
63
+ url: https://www.citi.com/credit-cards/aadvantage-mile-up-credit-card
64
+ quote: 'Fee for Foreign Purchases - 3% of the U.S. dollar amount of each purchase'
@@ -10,6 +10,7 @@ source_urls:
10
10
  base_rate: 1
11
11
  annual_fee: 99
12
12
  first_year_fee: 0
13
+ foreign_transaction_fee: 0
13
14
  welcome_offer:
14
15
  points: 50000
15
16
  spend: 2500
@@ -69,3 +70,6 @@ evidence:
69
70
  - rule: welcome_offer
70
71
  url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
71
72
  quote: 'new account bonus for a Citi® / AAdvantage® Platinum Select® account in the past 48 months'
73
+ - rule: foreign_transaction_fee
74
+ url: https://www.citi.com/credit-cards/citi-aadvantage-platinum-elite-credit-card
75
+ quote: 'there are no foreign transaction fees'
@@ -13,6 +13,7 @@ source_urls:
13
13
  base_rate: 1
14
14
  business: true
15
15
  annual_fee: 0
16
+ foreign_transaction_fee: 0
16
17
  requires_membership: costco # its fee is in data/memberships.yaml
17
18
  caps:
18
19
  # Costco gas, other gas and EV charging share one $7,000 cap. Rewards run on
@@ -96,3 +97,6 @@ evidence:
96
97
  - rule: requires_membership
97
98
  url: https://www.costco.com/join-costco.html
98
99
  quote: 'Gold Star $65/yr'
100
+ - rule: foreign_transaction_fee
101
+ url: https://www.citi.com/credit-cards/costco-anywhere-visa-business-card
102
+ quote: 'Fee for foreign purchases — None'
@@ -12,6 +12,7 @@ source_urls:
12
12
  # redeemable for cash or merchandise at a U.S. Costco warehouse.
13
13
  base_rate: 1
14
14
  annual_fee: 0
15
+ foreign_transaction_fee: 0
15
16
  requires_membership: costco # its fee is in data/memberships.yaml
16
17
  caps:
17
18
  # Costco gas, other gas and EV charging share one $7,000 cap. Rewards run on
@@ -95,3 +96,6 @@ evidence:
95
96
  - rule: requires_membership
96
97
  url: https://www.costco.com/join-costco.html
97
98
  quote: 'Gold Star $65/yr'
99
+ - rule: foreign_transaction_fee
100
+ url: https://www.citi.com/credit-cards/citi-costco-anywhere-visa-credit-card
101
+ quote: 'Fee for foreign purchases — None'
@@ -15,6 +15,7 @@ source_urls:
15
15
  # Paid as ThankYou Points, which redeem at 1¢ for cash back on this card, so a
16
16
  # point here is 1%.
17
17
  base_rate: 1
18
+ foreign_transaction_fee: null
18
19
  # Points can be combined into one ThankYou account, which then runs on that
19
20
  # account's terms: pooled with a Strata card, they transfer like Strata points.
20
21
  pools_into:
@@ -97,6 +98,7 @@ rules:
97
98
  rate: 5
98
99
  note: 4 extra points per $1 on top of the 1% base, for hotels, car rentals and attractions booked with Citi Travel. Only the part paid with the card earns, and canceled bookings don't. Citi's terms don't say whether the extra 4 also stacks on the 5% when travel or transit is the top category.
99
100
  todo:
101
+ - 'Foreign transaction fee not on file: the card page is a "Not Available" stub since applications closed, and no readable Citi page states the fee.'
100
102
  - Network set to mastercard, but no current Citi page states it (the card page is now a "Not Available" stub). Check your card.
101
103
  - Travel agencies (MCC 4722) count toward select travel, but a choice option can only list categories or merchants, so they aren't in the option.
102
104
  - Citi Travel hotel bookings may also count toward select travel (Citi Travel is a travel agency). Possible 5% + 4% stacking is unconfirmed.
@@ -14,6 +14,7 @@ source_urls:
14
14
  # redeem at 1¢ for cash back (10,000 points = $100), so a point here is 1%.
15
15
  base_rate: 2
16
16
  annual_fee: 0
17
+ foreign_transaction_fee: 3
17
18
  welcome_offer:
18
19
  dollars: 200
19
20
  spend: 1500
@@ -72,3 +73,6 @@ evidence:
72
73
  - rule: welcome_offer
73
74
  url: https://www.citi.com/credit-cards/citi-double-cash-credit-card
74
75
  quote: 'new account bonus for a Citi Double Cash account in the past 48 months'
76
+ - rule: foreign_transaction_fee
77
+ url: https://www.citi.com/credit-cards/citi-double-cash-credit-card
78
+ quote: 'Fee for foreign purchases – 3% of the U.S. dollar amount of each purchase'
@@ -11,6 +11,7 @@ source_urls:
11
11
  # points per dollar is the advertised 5%.
12
12
  base_rate: 0.5
13
13
  annual_fee: 59
14
+ foreign_transaction_fee: 0
14
15
  rules:
15
16
  - id: best-buy
16
17
  match: { merchants: [best-buy, pacific-kitchen-home] }
@@ -50,3 +51,6 @@ evidence:
50
51
  - rule: annual_fee
51
52
  url: https://www.citi.com/credit-cards/citi-best-buy-credit-cards
52
53
  quote: 'Annual Fee: $0 - $59, based on creditworthiness.'
54
+ - rule: foreign_transaction_fee
55
+ url: https://www.citi.com/credit-cards/citi-best-buy-credit-cards
56
+ quote: 'Tap and go with your contactless card. No foreign transaction fees'
@@ -10,6 +10,7 @@ source_urls:
10
10
  - https://www.thankyou.com/terms
11
11
  base_rate: 1.5
12
12
  annual_fee: 595
13
+ foreign_transaction_fee: 0
13
14
  welcome_offer:
14
15
  points: 75000
15
16
  spend: 6000
@@ -78,3 +79,6 @@ evidence:
78
79
  - rule: welcome_offer
79
80
  url: https://www.citi.com/credit-cards/citi-strata-elite-credit-card
80
81
  quote: 'New account bonus offer is not available if you currently have or previously had a Citi Strata Elite® account'
82
+ - rule: foreign_transaction_fee
83
+ url: https://www.citi.com/credit-cards/citi-strata-elite-credit-card
84
+ quote: 'Fee for foreign purchases - None'
@@ -10,6 +10,7 @@ source_urls:
10
10
  - https://www.thankyou.com/terms
11
11
  base_rate: 1
12
12
  annual_fee: 95
13
+ foreign_transaction_fee: 0
13
14
  welcome_offer:
14
15
  points: 60000
15
16
  spend: 4000
@@ -109,3 +110,6 @@ evidence:
109
110
  - rule: welcome_offer
110
111
  url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
111
112
  quote: 'not available if you currently have or previously had a Citi Strata Premier® or a Citi Premier® account'
113
+ - rule: foreign_transaction_fee
114
+ url: https://www.citi.com/credit-cards/citi-strata-premier-credit-card
115
+ quote: 'Fee for foreign purchases - None'
@@ -11,6 +11,7 @@ source_urls:
11
11
  - https://www.sofi.com/card/terms?cardType=c
12
12
  base_rate: 2
13
13
  annual_fee: 0
14
+ foreign_transaction_fee: 0
14
15
  rules:
15
16
  - id: sofi-travel
16
17
  match: { merchants: [sofi-travel] }
@@ -39,5 +40,8 @@ evidence:
39
40
  - rule: annual_fee
40
41
  url: https://www.sofi.com/card/terms?cardType=c
41
42
  quote: 'FEES Annual Fee None Transaction Fees'
43
+ - rule: foreign_transaction_fee
44
+ url: https://www.sofi.com/credit-card/unlimited/
45
+ quote: 'Enjoy globetrotting that much more by skipping foreign transaction fees'
42
46
  todo:
43
47
  - 'No public welcome offer: the page says the card is currently invite only (apply with a mailed reservation code), and shows no bonus.'
@@ -16,6 +16,7 @@ source_urls:
16
16
  # however they pay.
17
17
  base_rate: 0
18
18
  annual_fee: 0
19
+ foreign_transaction_fee: null
19
20
  welcome_offer:
20
21
  dollars: 60
21
22
  spend: 0
@@ -38,6 +39,7 @@ rules:
38
39
  rate: 5
39
40
  note: No points at Nordstrom Rack. Instead an instant 5% discount in Rack stores and on NordstromRack.com, counted here as 5 points per dollar because a point is worth 1¢ in Notes. Not through Apple Pay, PayPal or Afterpay, and not on gift cards.
40
41
  todo:
42
+ - "Foreign transaction fee not on file: Nordstrom's pages block the source check. It works only at Nordstrom, so it doesn't matter abroad."
41
43
  - Last Chance clearance stores earn no points, and the 5% discount terms name only Rack stores and NordstromRack.com.
42
44
  - Not modeled are bonus points events, Personal Double Points Days and alterations reimbursement Notes.
43
45
  evidence:
@@ -14,6 +14,7 @@ source_urls:
14
14
  # point per dollar at Nordstrom however they pay.
15
15
  base_rate: 1
16
16
  annual_fee: 0
17
+ foreign_transaction_fee: null
17
18
  welcome_offer:
18
19
  dollars: 60
19
20
  spend: 0
@@ -60,6 +61,7 @@ rules:
60
61
  rate: 2
61
62
  note: Cable, satellite and other TV, radio and streaming services billed by subscription.
62
63
  todo:
64
+ - "Foreign transaction fee not on file: Nordstrom's pages block the source check, so the rates table couldn't be read."
63
65
  - No points at Last Chance clearance stores either.
64
66
  - Not modeled are bonus points events, Personal Double Points Days and alterations reimbursement Notes.
65
67
  evidence:
@@ -13,6 +13,7 @@ source_urls:
13
13
  # elsewhere) belongs to the Target Mastercard, a separate card.
14
14
  base_rate: 0
15
15
  annual_fee: 0
16
+ foreign_transaction_fee: null
16
17
  welcome_offer:
17
18
  dollars: 50
18
19
  spend: 50
@@ -24,6 +25,7 @@ rules:
24
25
  rate: 5
25
26
  note: An instant 5% discount at checkout in Target stores and on Target.com, after other discounts, on the part of the purchase paid with the card. Not on prescriptions, pharmacy-counter items or clinic services, Target Optical eye exams and protection plans (glasses and contacts do count), Target GiftCards, prepaid Visa/Mastercard/Amex cards or sports betting gift cards, Starbucks gift cards bought at in-store Starbucks, Shipt or Target Circle 360 fees, wireless protection plans and carrier deposits, gift wrapping, alcohol in Indiana, taxes, shipping or other fees.
26
27
  todo:
28
+ - "Foreign transaction fee not on file: Target's credit rates and fees page loads empty for the source check. It works only at Target, so it doesn't matter abroad."
27
29
  - The debit version (Target Circle Debit Card) gets the same 5% discount but isn't modeled as a separate card.
28
30
  - Target considers credit applicants for the Target Mastercard first, which also earns 2% on dining and gas and 1% elsewhere. Not modeled; target.com doesn't say what form those earnings take.
29
31
  - Starbucks counters inside Target stores get the 5% discount too. They aren't a separate merchant here.
@@ -8,8 +8,10 @@ verified_by: claude
8
8
  source_urls:
9
9
  - https://www.usbank.com/credit-cards/cash-plus-visa-signature-credit-card.html
10
10
  - https://cashplus.usbank.com/cash-plus/samplemerchants
11
+ - https://onboarding.usbank.com/gateway/partner/credit-card/begin?locationCode=8069&offerId=WRH8D23H2R&sourceCode=88256&page=terms
11
12
  base_rate: 1
12
13
  annual_fee: 0
14
+ foreign_transaction_fee: 3
13
15
  welcome_offer:
14
16
  dollars: 200
15
17
  spend: 1000
@@ -120,5 +122,8 @@ evidence:
120
122
  - rule: welcome_offer
121
123
  url: https://www.usbank.com/credit-cards/cash-plus-visa-signature-credit-card.html
122
124
  quote: 'Earn a $200 rewards bonus after you spend $1,000 in eligible purchases within the first 90 days of account opening'
125
+ - rule: foreign_transaction_fee
126
+ url: https://onboarding.usbank.com/gateway/partner/credit-card/begin?locationCode=8069&offerId=WRH8D23H2R&sourceCode=88256&page=terms
127
+ quote: 'Foreign Transaction 3% of each foreign transaction'
123
128
  todo:
124
129
  - "Gas at grocery stores (Kroger, Hy-Vee, Meijer) is modeled at 2%, as U.S. Bank's sample merchants page says it may qualify, varying by location; the card page's footnote says 1%, so it may earn 1% at some stations."
@@ -10,6 +10,7 @@ source_urls:
10
10
  - https://www.wellsfargo.com/credit-cards/active-cash/terms/
11
11
  base_rate: 2
12
12
  annual_fee: 0
13
+ foreign_transaction_fee: 3
13
14
  welcome_offer:
14
15
  dollars: 100
15
16
  spend: 500
@@ -39,3 +40,6 @@ evidence:
39
40
  - rule: welcome_offer
40
41
  url: https://www.wellsfargo.com/credit-cards/active-cash/terms/
41
42
  quote: 'opened one within the last 48 months from the date of this application'
43
+ - rule: foreign_transaction_fee
44
+ url: https://www.wellsfargo.com/credit-cards/active-cash/terms/
45
+ quote: 'Foreign Currency Conversion/Foreign Transaction 3% of each transaction converted to U.S. dollars'
@@ -11,6 +11,7 @@ source_urls:
11
11
  - https://www.wellsfargo.com/credit-cards/autograph-visa/terms/
12
12
  base_rate: 1
13
13
  annual_fee: 0
14
+ foreign_transaction_fee: 0
14
15
  welcome_offer:
15
16
  points: 20000
16
17
  spend: 1000
@@ -101,6 +102,9 @@ evidence:
101
102
  - rule: welcome_offer
102
103
  url: https://creditcards.wellsfargo.com/autograph-visa-credit-card/
103
104
  quote: 'To qualify for the 20,000 bonus rewards points, a total of at least $1,000 in net purchases'
105
+ - rule: foreign_transaction_fee
106
+ url: https://www.wellsfargo.com/credit-cards/autograph-visa/terms/
107
+ quote: 'Foreign Currency Conversion/Foreign Transaction None'
104
108
  todo:
105
109
  - 'Wells Fargo values a point at $0.01 and says points transfer to select travel loyalty programs, but names no partners.'
106
110
  - 'The streaming page lists merchant types, not providers; no issuer list of specific streaming services was found.'
@@ -281,3 +281,287 @@
281
281
  aliases: [bilt travel flight],
282
282
  category: travel,
283
283
  }
284
+
285
+ # More warehouse clubs and discount stores. Chase's grocery category leaves out
286
+ # "warehouse clubs, discount stores and some smaller merchants such as
287
+ # drugstores" (chase.com/personal/credit-cards/rewards-category-faq).
288
+ - id: bjs-wholesale-club
289
+ name: "BJ's Wholesale Club"
290
+ aliases: [bjs wholesale, bjs wholesale club, bjs club]
291
+ domains: [bjs.com]
292
+ category: warehouse_club
293
+ note: Codes as a warehouse club, which Amex, Chase and Capital One leave out of their grocery bonuses.
294
+ - id: bjs-gas
295
+ name: "BJ's Gas"
296
+ aliases: [bjs gas, bjs gas station]
297
+ category: gas.superstore
298
+ note: Issuers usually exclude warehouse-club gas from gas bonuses.
299
+ - id: dollar-general
300
+ name: Dollar General
301
+ domains: [dollargeneral.com]
302
+ category: other
303
+ note: Sells groceries but codes as a discount store, which issuers leave out of grocery bonuses.
304
+ - id: dollar-tree
305
+ name: Dollar Tree
306
+ domains: [dollartree.com]
307
+ category: other
308
+ note: Sells groceries but codes as a discount store, which issuers leave out of grocery bonuses.
309
+ - id: family-dollar
310
+ name: Family Dollar
311
+ domains: [familydollar.com]
312
+ category: other
313
+ note: Sells groceries but codes as a discount store, which issuers leave out of grocery bonuses.
314
+
315
+ # Gas stations with convenience stores. Chase's gas category covers gas "paid
316
+ # for either at the pump or inside the station", and U.S. Bank lists several of
317
+ # these chains as gas stations.
318
+ - id: wawa
319
+ name: Wawa
320
+ domains: [wawa.com]
321
+ category: gas
322
+ ambiguity:
323
+ may_code_as: [convenience_store]
324
+ note: Wawa is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
325
+ - id: sheetz
326
+ name: Sheetz
327
+ domains: [sheetz.com]
328
+ category: gas
329
+ ambiguity:
330
+ may_code_as: [convenience_store]
331
+ note: Sheetz is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
332
+ - id: circle-k
333
+ name: Circle K
334
+ domains: [circlek.com]
335
+ category: gas
336
+ ambiguity:
337
+ may_code_as: [convenience_store]
338
+ note: Circle K is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
339
+ - id: caseys
340
+ name: "Casey's"
341
+ aliases: [caseys, caseys general store]
342
+ domains: [caseys.com]
343
+ category: gas
344
+ ambiguity:
345
+ may_code_as: [convenience_store]
346
+ note: "Casey's is a gas station with a convenience store. A location without fuel pumps may code as a convenience store."
347
+ - id: quiktrip
348
+ name: QuikTrip
349
+ aliases: [qt, quik trip]
350
+ domains: [quiktrip.com]
351
+ category: gas
352
+ ambiguity:
353
+ may_code_as: [convenience_store]
354
+ note: QuikTrip is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
355
+ - id: racetrac
356
+ name: RaceTrac
357
+ aliases: [race trac]
358
+ domains: [racetrac.com]
359
+ category: gas
360
+ ambiguity:
361
+ may_code_as: [convenience_store]
362
+ note: RaceTrac is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
363
+ - id: speedway
364
+ name: Speedway
365
+ domains: [speedway.com]
366
+ category: gas
367
+ ambiguity:
368
+ may_code_as: [convenience_store]
369
+ note: Speedway is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
370
+ - id: cumberland-farms
371
+ name: Cumberland Farms
372
+ aliases: [cumby, cumbys]
373
+ domains: [cumberlandfarms.com]
374
+ category: gas
375
+ ambiguity:
376
+ may_code_as: [convenience_store]
377
+ note: Cumberland Farms is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
378
+ - id: kwik-trip
379
+ name: Kwik Trip
380
+ aliases: [kwik star]
381
+ domains: [kwiktrip.com]
382
+ category: gas
383
+ ambiguity:
384
+ may_code_as: [convenience_store]
385
+ note: Kwik Trip is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
386
+ - id: maverik
387
+ name: Maverik
388
+ aliases: [maverik adventures first stop, kum & go, kum and go]
389
+ domains: [maverik.com]
390
+ category: gas
391
+ ambiguity:
392
+ may_code_as: [convenience_store]
393
+ note: Maverik (which now runs the Kum & Go stores) is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
394
+ - id: holiday-stationstores
395
+ name: Holiday Stationstores
396
+ aliases: [holiday gas, holiday gas station, holiday station]
397
+ domains: [holidaystationstores.com]
398
+ category: gas
399
+ ambiguity:
400
+ may_code_as: [convenience_store]
401
+ note: Holiday is a gas station with a convenience store. A location without fuel pumps may code as a convenience store.
402
+
403
+ # Fast-casual chains can post as fast food (MCC 5814) or as restaurants (5812).
404
+ # U.S. Bank's Cash+ sample lists put Smashburger under restaurants but Subway
405
+ # and Qdoba under fast food, so the counter-service burger and smoothie chains
406
+ # below could go either way.
407
+ - id: five-guys
408
+ name: Five Guys
409
+ aliases: [five guys burgers and fries]
410
+ category: dining.fast_food
411
+ ambiguity:
412
+ may_code_as: [dining]
413
+ note: Fast-casual chains can post as fast food (MCC 5814) or as a restaurant (5812); a statement shows which.
414
+ - id: shake-shack
415
+ name: Shake Shack
416
+ category: dining.fast_food
417
+ ambiguity:
418
+ may_code_as: [dining]
419
+ note: Fast-casual chains can post as fast food (MCC 5814) or as a restaurant (5812); a statement shows which.
420
+ - id: tropical-smoothie-cafe
421
+ name: Tropical Smoothie Cafe
422
+ aliases: [tropical smoothie]
423
+ category: dining.fast_food
424
+ ambiguity:
425
+ may_code_as: [dining]
426
+ note: Fast-casual chains can post as fast food (MCC 5814) or as a restaurant (5812); a statement shows which.
427
+
428
+ # Delivery apps. U.S. Bank lists them under Restaurants and Chase's dining
429
+ # category counts them, but Chase's "dining purchased directly from a
430
+ # restaurant" category leaves out third-party delivery.
431
+ - id: grubhub
432
+ name: Grubhub
433
+ aliases: [grub hub, seamless]
434
+ domains: [grubhub.com, seamless.com]
435
+ category: dining
436
+ note: A delivery app that codes as a restaurant for most issuers. Bonuses limited to buying directly from a restaurant don't count it.
437
+ - id: postmates
438
+ name: Postmates
439
+ domains: [postmates.com]
440
+ category: dining
441
+ note: A delivery app that codes as a restaurant for most issuers. Bonuses limited to buying directly from a restaurant don't count it.
442
+
443
+ # A dinner theater: food ordered at your seat may land on the same check.
444
+ - id: alamo-drafthouse
445
+ name: Alamo Drafthouse Cinema
446
+ aliases: [alamo drafthouse]
447
+ domains: [drafthouse.com]
448
+ category: movie_theaters
449
+ ambiguity:
450
+ may_code_as: [dining]
451
+ note: Tickets code as a movie theater. Food and drinks ordered at your seat usually post on the theater's charge too, but a location's kitchen may bill separately as a restaurant.
452
+
453
+ # Parking codes as MCC 7523, which Amex and Chase count as transit but U.S.
454
+ # Bank's Cash+ ground transportation leaves out.
455
+ - id: parkmobile
456
+ name: ParkMobile
457
+ aliases: [park mobile]
458
+ domains: [parkmobile.io]
459
+ category: transit
460
+ likely_mcc: 7523
461
+ note: Parking codes as MCC 7523. Amex and Chase count parking as transit; U.S. Bank's ground transportation doesn't.
462
+ - id: spothero
463
+ name: SpotHero
464
+ aliases: [spot hero]
465
+ domains: [spothero.com]
466
+ category: transit
467
+ likely_mcc: 7523
468
+ note: Parking codes as MCC 7523. Amex and Chase count parking as transit; U.S. Bank's ground transportation doesn't.
469
+
470
+ # Booking.com charges prepaid stays itself, but "pay at the property" stays are
471
+ # charged by the hotel.
472
+ - id: booking-com
473
+ name: Booking.com
474
+ aliases: [booking com]
475
+ domains: [booking.com]
476
+ category: travel
477
+ ambiguity:
478
+ may_code_as: [travel.hotels]
479
+ note: Prepaid bookings code as a travel agency. Stays you pay for at the property are charged by the hotel and code as a hotel.
480
+
481
+ # AT&T bills wireless and home internet separately.
482
+ - id: att
483
+ name: AT&T
484
+ aliases: [att, at and t, at&t wireless]
485
+ domains: [att.com]
486
+ category: phone
487
+ ambiguity:
488
+ may_code_as: [tv_internet]
489
+ note: AT&T bills wireless and home internet separately. A wireless bill is cell phone service; an AT&T Internet or Fiber bill is TV and internet service.
490
+
491
+ # Specialty stores with no bonus category in store. Amex counts their websites
492
+ # as U.S. online retail ("U.S. merchants selling physical goods, paid on their
493
+ # website or app").
494
+ - id: chewy
495
+ name: Chewy
496
+ domains: [chewy.com]
497
+ category: online_retail
498
+ - id: wayfair
499
+ name: Wayfair
500
+ domains: [wayfair.com]
501
+ category: online_retail
502
+ ambiguity:
503
+ may_code_as: [furniture]
504
+ note: Wayfair sells online, but some issuers code its purchases as a furniture store (MCC 5712). A statement shows which.
505
+ - id: zappos
506
+ name: Zappos
507
+ domains: [zappos.com]
508
+ category: online_retail
509
+ - id: petco
510
+ name: Petco
511
+ domains: [petco.com]
512
+ category: other
513
+ online:
514
+ category: online_retail
515
+ note: A pet store, with no bonus category in store. Its website counts as online retail.
516
+ - id: petsmart
517
+ name: PetSmart
518
+ aliases: [pet smart]
519
+ domains: [petsmart.com]
520
+ category: other
521
+ online:
522
+ category: online_retail
523
+ note: A pet store, with no bonus category in store. Its website counts as online retail.
524
+ - id: ulta-beauty
525
+ name: Ulta Beauty
526
+ aliases: [ulta]
527
+ domains: [ulta.com]
528
+ category: other
529
+ online:
530
+ category: online_retail
531
+ note: A cosmetics store, with no bonus category in store. Its website counts as online retail.
532
+ - id: sephora
533
+ name: Sephora
534
+ domains: [sephora.com]
535
+ category: other
536
+ online:
537
+ category: online_retail
538
+ note: A cosmetics store, with no bonus category in store. Its website counts as online retail.
539
+ - id: michaels
540
+ name: Michaels
541
+ domains: [michaels.com]
542
+ category: other
543
+ online:
544
+ category: online_retail
545
+ note: A craft store, with no bonus category in store. Its website counts as online retail.
546
+ - id: hobby-lobby
547
+ name: Hobby Lobby
548
+ domains: [hobbylobby.com]
549
+ category: other
550
+ online:
551
+ category: online_retail
552
+ note: A craft store, with no bonus category in store. Its website counts as online retail.
553
+ - id: autozone
554
+ name: AutoZone
555
+ aliases: [auto zone]
556
+ domains: [autozone.com]
557
+ category: other
558
+ online:
559
+ category: online_retail
560
+ note: An auto parts store, with no bonus category in store. Its website counts as online retail.
561
+
562
+ # Listed here, not in seed.yaml, so "Amazon Music" doesn't match Amazon itself.
563
+ - id: amazon-music
564
+ name: Amazon Music Unlimited
565
+ aliases: [amazon music]
566
+ category: streaming
567
+ note: On Amex's Select U.S. Streaming Subscriptions list. Charged by Amazon, so other issuers may code it as Amazon.