Credit card rewards optimizer — helps maximize cashback, points, and miles by recommending the best card for every purchase category. Tracks annual caps, calculates annual fee ROI, manages rotating quarterly categories, and suggests new cards based on spending patterns.
Maximize credit card rewards by always using the right card for every purchase.
skills/card-optimizer/ (this file)data/card-optimizer/
cards.json — card definitions, reward rates, spending estimates, category mapEach card in cards.json follows this structure:
{
"id": "unique_id",
"name": "Card Name",
"issuer": "Issuer Name",
"network": "visa|mastercard|amex|discover",
"annual_fee": 95,
"reward_type": "cashback|points|miles",
"point_valuation_cpp": null,
"transfer_partners": [],
"notes": "Optional notes",
"signup_bonus": {
"amount": 200,
"type": "cashback",
"spend_requirement": 3000,
"timeframe_months": 3,
"earned": false
},
"categories": [
{
"category": "groceries",
"rate": 6.0,
"cap_amount": 6000,
"cap_period": "yearly",
"rate_after_cap": 1.0
},
{
"category": "rotating",
"rate": 5.0,
"cap_amount": 1500,
"cap_period": "quarterly",
"rate_after_cap": 1.0,
"quarterly_categories": {
"Q1": ["gas", "ev_charging"],
"Q2": ["groceries", "home_improvement"],
"Q3": ["restaurants", "paypal"],
"Q4": ["amazon", "target", "walmart"]
},
"activation_required": true
},
{
"category": "everything_else",
"rate": 1.0
}
]
}
For points/miles cards, store point_valuation_cpp (cents per point):
The category_map in cards.json maps each spending category to the best card ID. This is the precomputed optimal assignment — recalculate when cards are added or removed.
To power ROI calculations, gap analysis, and new card recommendations, the user can optionally set estimated monthly spending per category in cards.json:
{
"estimated_monthly_spending": {
"groceries": 600,
"gas": 200,
"restaurants": 300,
"amazon": 150,
"streaming": 50,
"everything_else": 500
}
}
If no estimates are provided, the skill can still recommend cards per-purchase — it just can't run ROI or gap analysis. Ask the user to estimate during first-time setup.
Note: This skill does NOT track individual purchases. If the user wants detailed spending data, they should connect their bank accounts through a budgeting tool. These estimates are rough numbers for optimization calculations.
When the user asks "which card for [category]?" or "I'm buying [item]":
💳 Use: [Card Name] ([Issuer])
💰 Reward: [X]% [cashback/points/miles] on [category]
⚠️ Note: [any caps, network warnings, or caveats]
🔄 Fallback: [Next best card if merchant doesn't accept primary]
When a card has spending caps:
Example: "Your Amex BCP gets 6% on groceries up to $6,000/year. At ~$600/month, you'll hit the cap around October. After that, it drops to 1% — switch to Wells Fargo Active Cash for 2%."
Some cards (Chase Freedom Flex, Discover It) have rotating 5% categories that change quarterly and require activation.
At the start of each quarter (Jan 1, Apr 1, Jul 1, Oct 1):
activation_required: trueStore activation status per card:
{
"quarterly_activations": {
"chase_freedom_flex": {
"2026-Q1": {"activated": true, "date": "2026-01-02"}
}
}
}
For each card with an annual fee, calculate whether it's worth keeping based on estimated_monthly_spending:
💳 [Card Name] — Annual Fee: $[fee]
Bonus rewards earned: $[amount]
vs. 2% flat card: $[amount]
Bonus value: $[amount]
Annual fee: -$[fee]
━━━━━━━━━━━━━━━━━━━━━━━━
Net value: $[amount] ✅ Worth it / ❌ Consider downgrading
Break-even: Need $[X]/yr in bonus categories to justify the fee
Using estimated_monthly_spending, identify:
📊 Card Optimization Report
✅ Well covered:
- Groceries → Amex BCP (6%) — earning ~$360/yr
- Amazon → Chase Prime (5%) — earning ~$90/yr
⚠️ Gaps identified:
- Dining: $300/mo at 2% (Chase Prime) — a 4% dining card would save $72/yr
- Travel: $200/mo at 1% — a 3x travel card would earn $48 more/yr
❌ Fee card alert:
- [Card] costs $95/yr but only generates $60 in bonus rewards — net loss of $35
💡 Recommendations:
- Adding [Card Name] would earn ~$[X] more per year on [categories]
- Consider downgrading [Card] to the no-fee version
Based on spending estimates, suggest cards that would add value:
Do not recommend specific affiliate links — just name the card and explain why.
Popular cards to consider by category:
| Category | Cards | Notes |
|---|---|---|
| Dining | Chase Sapphire Preferred (3x), Amex Gold (4x), Capital One SavorOne (3%) | Sapphire and Gold have annual fees |
| Groceries | Amex BCP (6%), Amex Gold (4x MR) | BCP has $6k cap |
| Travel | Chase Sapphire Reserve (3x), Amex Platinum (5x flights), Capital One Venture X (2x) | All have significant annual fees |
| Gas | Citi Custom Cash (5% top category), PenFed Platinum Rewards (5x gas) | Custom Cash is flexible |
| Flat rate | Citi Double Cash (2%), Wells Fargo Active Cash (2%), Fidelity Visa (2%) | No-fee safety nets |
| Rotating | Chase Freedom Flex (5% quarterly), Discover It (5% quarterly + first-year match) | Requires activation |
When the user mentions a merchant, map to the correct card category:
| Merchant / Keyword | Category | Notes |
|---|---|---|
| Kroger, Publix, Safeway, HEB, Aldi, Trader Joe's | groceries | Supermarkets |
| Costco, Sam's Club | groceries OR warehouse | Costco is Visa-only in store. Amex may code as groceries at Sam's Club |
| Target, Walmart | varies | May code as "superstore" not "groceries" — depends on card issuer |
| Amazon, amazon.com | amazon | Some cards have specific Amazon category |
| Whole Foods | whole_foods OR groceries | Chase Prime has specific Whole Foods category |
| Shell, Exxon, BP, Chevron | gas | Gas stations |
| Uber, Lyft, subway, bus | transit | Public transit and rideshare |
| Netflix, Hulu, Spotify, Disney+, HBO Max, YouTube TV | streaming | Streaming subscriptions |
| Chipotle, McDonald's, DoorDash, Grubhub | restaurants | Dining and food delivery |
| CVS, Walgreens, Rite Aid | drugstores | Pharmacies |
| Hilton, Marriott, Airbnb | hotels/travel | Travel/lodging |
| United, Delta, Southwest | airlines/travel | Airfare |
When the user says something informal:
If ambiguous, ask: "Is this a grocery store or a restaurant?"
American Express has lower merchant acceptance than Visa/Mastercard:
When recommending an Amex card, always provide a Visa/MC fallback.
Costco US stores only accept Visa credit cards (plus debit/cash):
When the user wants to add a card:
Gather info:
Research the card if the user just gives a name — look up current reward rates, fees, and categories via web search
Create card entry in cards.json
Recalculate category_map — determine which card now wins each category
Confirm and show updated recommendations
cards array in cards.jsoncategory_mapIf data/card-optimizer/cards.json doesn't exist:
cards.json with all cards and the precomputed category map| User Says | Action |
|---|---|
| "Which card for groceries?" | Recommend best card for that category |
| "I'm buying gas" | Recommend with gas category |
| "Best card for Amazon?" | Recommend with Amazon category |
| "Annual fee worth it?" | ROI analysis for all fee cards |
| "Add a new card" | Walk through new card setup |
| "Remove a card" | Remove and recalculate |
| "Card optimization report" | Full gap analysis + recommendations |
| "What cards should I get?" | New card recommendations |
| "Activate Q2 categories" | Update quarterly activation status |
| "Does Costco take Amex?" | Network acceptance info |
| "What are my cards?" | List all cards with key rates |
| "Update my spending estimates" | Revise estimated monthly spending |