card-optimizer

0
0
Source

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.

Install

mkdir -p .claude/skills/card-optimizer && curl -L -o skill.zip "https://mcp.directory/api/skills/download/8802" && unzip -o skill.zip -d .claude/skills/card-optimizer && rm skill.zip

Installs to .claude/skills/card-optimizer

About this skill

Card Optimizer

Maximize credit card rewards by always using the right card for every purchase.

Data Location

  • Skill logic: skills/card-optimizer/ (this file)
  • User data: data/card-optimizer/
    • cards.json — card definitions, reward rates, spending estimates, category map

Card Database Schema

Each 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
    }
  ]
}

Point Valuations

For points/miles cards, store point_valuation_cpp (cents per point):

  • Chase Ultimate Rewards: 1.0 cpp base, 1.25 cpp with Sapphire Preferred, 1.5 cpp with Sapphire Reserve
  • Amex Membership Rewards: 1.0 cpp base, varies by transfer partner
  • When comparing cards, multiply rate × point_valuation_cpp to get effective cashback equivalent

Category Map

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.

Spending Estimates

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.

Purchase Optimizer

How to Recommend a Card

When the user asks "which card for [category]?" or "I'm buying [item]":

  1. Identify the category from the purchase (see Category Matching below)
  2. Check all cards for that category's reward rate
  3. Factor in caps: If a card has a cap and the user's estimated annual spending in that category exceeds it, note the cap and when they'd likely exhaust it
  4. Factor in network acceptance: If the best card is Amex, mention that some merchants don't accept Amex and provide a Visa/MC fallback
  5. Compare effective rates: For points cards, use point_valuation_cpp to convert to cashback-equivalent
  6. Return recommendation with reasoning

Response Format

💳 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]

Cap-Aware Recommendations

When a card has spending caps:

  • Well under cap: Recommend normally
  • Cap likely to exhaust (based on estimated spending): Note when the cap would be hit and what to switch to after
  • Cap exists: Always mention the cap so the user is aware

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%."

Quarterly Category Management

Rotating Categories

Some cards (Chase Freedom Flex, Discover It) have rotating 5% categories that change quarterly and require activation.

Quarterly Alerts

At the start of each quarter (Jan 1, Apr 1, Jul 1, Oct 1):

  • Check for cards with activation_required: true
  • If not yet activated for the current quarter, remind the user
  • List the current quarter's bonus categories
  • Note: To automate this, add a quarterly cron job or include in the mileage check heartbeat

Store activation status per card:

{
  "quarterly_activations": {
    "chase_freedom_flex": {
      "2026-Q1": {"activated": true, "date": "2026-01-02"}
    }
  }
}

Annual Fee ROI Analysis

For each card with an annual fee, calculate whether it's worth keeping based on estimated_monthly_spending:

  1. Calculate bonus rewards: For each bonus category, compute annual rewards at the bonus rate
  2. Calculate baseline: What a no-fee 2% flat card would earn on the same spending
  3. Bonus value: bonus_rewards − baseline_rewards
  4. Net ROI: bonus_value − annual_fee
  5. Verdict: Worth it if net ROI > 0

Report Format

💳 [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

Optimization & Gap Analysis

Spending Gap Analysis

Using estimated_monthly_spending, identify:

  1. Weak categories: High spending where the best available card only earns 1-2%
  2. Underperforming fee cards: Annual fee cards not earning enough bonus to justify the fee
  3. Cap exhaustion: Categories where estimated spending exceeds bonus caps — may benefit from a second card
  4. Missing coverage: Common categories with no bonus card at all

Report Format

📊 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

New Card Recommendations

Based on spending estimates, suggest cards that would add value:

  1. Identify the user's highest-spending weak categories
  2. Match against popular cards with strong rates in those categories
  3. Calculate projected annual rewards from the new card
  4. Factor in annual fees
  5. Mention signup bonuses as first-year sweetener

Do not recommend specific affiliate links — just name the card and explain why.

Popular cards to consider by category:

CategoryCardsNotes
DiningChase Sapphire Preferred (3x), Amex Gold (4x), Capital One SavorOne (3%)Sapphire and Gold have annual fees
GroceriesAmex BCP (6%), Amex Gold (4x MR)BCP has $6k cap
TravelChase Sapphire Reserve (3x), Amex Platinum (5x flights), Capital One Venture X (2x)All have significant annual fees
GasCiti Custom Cash (5% top category), PenFed Platinum Rewards (5x gas)Custom Cash is flexible
Flat rateCiti Double Cash (2%), Wells Fargo Active Cash (2%), Fidelity Visa (2%)No-fee safety nets
RotatingChase Freedom Flex (5% quarterly), Discover It (5% quarterly + first-year match)Requires activation

Category Matching

Merchant → Category Mapping

When the user mentions a merchant, map to the correct card category:

Merchant / KeywordCategoryNotes
Kroger, Publix, Safeway, HEB, Aldi, Trader Joe'sgroceriesSupermarkets
Costco, Sam's Clubgroceries OR warehouseCostco is Visa-only in store. Amex may code as groceries at Sam's Club
Target, WalmartvariesMay code as "superstore" not "groceries" — depends on card issuer
Amazon, amazon.comamazonSome cards have specific Amazon category
Whole Foodswhole_foods OR groceriesChase Prime has specific Whole Foods category
Shell, Exxon, BP, ChevrongasGas stations
Uber, Lyft, subway, bustransitPublic transit and rideshare
Netflix, Hulu, Spotify, Disney+, HBO Max, YouTube TVstreamingStreaming subscriptions
Chipotle, McDonald's, DoorDash, GrubhubrestaurantsDining and food delivery
CVS, Walgreens, Rite AiddrugstoresPharmacies
Hilton, Marriott, Airbnbhotels/travelTravel/lodging
United, Delta, Southwestairlines/travelAirfare

Fuzzy Category Matching

When the user says something informal:

  • "food" / "eating out" / "dinner" → restaurants
  • "grocery run" / "supermarket" → groceries
  • "gas" / "fuel" / "fill up" → gas
  • "uber" / "lyft" / "ride" → transit
  • "stuff on amazon" / "prime order" → amazon
  • "pharmacy" / "meds" / "prescription" → drugstores
  • "subscription" / "monthly streaming" → streaming
  • "general" / "random purchase" → everything_else

If ambiguous, ask: "Is this a grocery store or a restaurant?"

Network Acceptance Warnings

Amex Acceptance

American Express has lower merchant acceptance than Visa/Mastercard:

  • Small/local businesses
  • Some international merchants
  • Costco (Visa only in-store in the US)
  • Some government payments

When recommending an Amex card, always provide a Visa/MC fallback.

Costco Special Case

Costco US stores only accept Visa credit cards (plus debit/cash):

  • In-store: Mus

Content truncated.

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

1,4071,302

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

1,2201,024

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

9001,013

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

958658

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

970608

pdf-to-markdown

aliceisjustplaying

Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.

1,033496

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.