| name | bonus-radar |
| description | Evaluate current credit card sign-up bonuses against historical highs. Apply/wait/skip verdict per card. Checks live sources and flags elevated offers before they expire. |
Bonus Radar
Know whether a bonus is historically elevated or not worth the inquiry. Prevents applying during a low offer and missing a 2× higher bonus three months later.
Sources to check (always fetch live before scoring)
| Source | What it tracks |
|---|
| Doctor of Credit | Best current public offers, updated daily |
| CardMatch | Targeted elevated offers (Amex especially) — check with your email |
| Issuer websites | Official current public offer |
| r/churning wiki | Historical data points, data points on targeted offers |
Historical high watermarks (baseline for comparison)
| Card | Normal Offer | Historical High | Notes |
|---|
| Amex Platinum | 80k MR | 175k MR | Targeted via CardMatch; 150k seen publicly |
| Amex Gold | 60k MR | 90k MR | Public elevated offers appear 2–3× per year |
| Amex Green | 40k MR | 60k MR | Less volatile |
| Chase Sapphire Preferred | 60k UR | 100k UR | Elevated offers tied to promotions |
| Chase Sapphire Reserve | 60k UR | 100k UR | Elevated rare; 75k more common |
| Chase Ink Business Preferred | 100k UR | 120k UR | Business card |
| Chase Ink Business Cash | $750 | $900 | Cash back, not points |
| Capital One Venture X | 75k miles | 100k miles | Elevated appears periodically |
| Citi Strata Premier | 75k TY | 100k TY | Watch for seasonal bumps |
| Citi AA Executive | 70k miles | 100k miles | Targeted offers higher |
| Bilt Mastercard | transfer bonus events | 1:1.25 transfer promos | No SUB — watch transfer bonuses instead |
| Hyatt | 30k points | 60k points | Elevated rare; high-value due to Hyatt CPP |
| Marriott Bonvoy Bevy | 85k | 125k | Watch for elevated |
| IHG Premier | 140k | 175k | Periodically elevated |
Contract
{
"$schema": "https://json-schema.org/draft/2020-12",
"title": "Bonus Radar Report",
"purpose": "Evaluate one or more cards for current vs. historical bonus levels. Return a verdict per card and a ranked list of what to apply for now.",
"constraints": [
"Always fetch live data from Doctor of Credit before scoring — never rely on memory alone",
"Check CardMatch for targeted Amex and Citi offers before concluding a bonus is at normal level",
"verdict must be one of: apply_now, wait, skip",
"apply_now only when current offer is within 20% of historical high OR historically elevated offers are rare for this card",
"Flag any offer expiring within 14 days as urgent"
],
"required": ["evaluated_at_url", "cards", "top_picks"],
"properties": {
"evaluated_at_url": {
"type": "string",
"description": "URL checked for current offers (DoC or issuer page)"
},
"cards": {
"type": "array",
"items": {
"required": ["card", "current_offer", "historical_high", "verdict", "rationale"],
"properties": {
"card": { "type": "string" },
"current_offer": { "type": "string" },
"historical_high": { "type": "string" },
"verdict": { "enum": ["apply_now", "wait", "skip"] },
"rationale": { "type": "string" },
"expires": { "type": ["string", "null"], "description": "Known expiry date if announced" },
"targeted_note": { "type": ["string", "null"], "description": "If a higher targeted offer may exist via CardMatch" }
}
}
},
"top_picks": {
"type": "array",
"description": "Ranked apply_now cards, highest expected value first",
"items": { "type": "string" }
}
}
}
How to run
- Fetch current offers from Doctor of Credit (URL above)
- For any Amex or Citi card in scope, check CardMatch with user's email
- Compare current offer to historical high using the table above
- Score each card and return the full report