Card Rarity & Balance Screener
Merges the static capital-efficiency/z-score model (card_capital_analysis_v2.py) with empirical sim behavior (reports/card_rates_report.md) to flag cards where both signals agree something is off, and to suggest rarity re-slots.
Signals used:
- z = capital efficiency z-score vs. the card pool mean (design-time formula).
- strength = average of reward-pick-rate and shop-buy-rate (choice-based, so not confounded by 0-cost auto-play), only counted when n is large enough to trust (pick n>=50, buy n>=80).
- Flags require both signals to agree, not just one -- single-signal outliers are noise (either a formula blind spot or a small-sample fluke).
Overpowered candidates (strong formula z AND strong empirical pick/buy)
| Card | Sector | Rarity | Cost | z-score | Pick% | Buy% | Suggested rarity change |
|---|---|---|---|---|---|---|---|
| Predictive Pricing | Healthcare | Common | 1 | +3.11 | 87% | 31% | Common -> Uncommon |
| Asset Liquidation | Healthcare | Common | 1 | +3.11 | 91% | 32% | Common -> Uncommon |
| Drill Site | Energy | Common | 1 | +3.11 | 92% | 36% | Common -> Uncommon |
| Technicality | Healthcare | Uncommon | 1 | +2.21 | 78% | 90% | Uncommon -> Rare |
Underpowered / lame candidates (weak formula z AND weak empirical pick/buy)
| Card | Sector | Rarity | Cost | z-score | Pick% | Buy% | Suggested rarity change |
|---|---|---|---|---|---|---|---|
| Circuit | Energy | Rare | 1 | -1.06 | 0% | 48% | Rare -> Uncommon, or buff to justify Rare |
| Cascading Failure | AI | Rare | 2 | -0.99 | 0% | 50% | Rare -> Uncommon, or buff to justify Rare |
| Power Grid | Energy | Rare | 2 | -0.95 | 0% | 47% | Rare -> Uncommon, or buff to justify Rare |
| Flare Stack | Energy | Uncommon | 1 | -0.89 | 0% | 51% | Uncommon -> Common, or buff |
| Machine Learning | AI | Uncommon | 2 | -0.89 | 0% | 50% | Uncommon -> Common, or buff |
| Data Center | AI | Uncommon | 2 | -0.84 | 0% | 50% | Uncommon -> Common, or buff |
| Class Action Suit | Healthcare | Rare | 2 | -0.80 | 0% | 59% | Rare -> Uncommon, or buff to justify Rare |
Dead / near-non-functional cards (play rate <=10% with sample n>=200)
These are rarely about power level -- treat as a signal to check the card's effect for a bug (see scripts/audit_dead_cards.py) or a situational condition that almost never triggers, before touching rarity.
| Card | Sector | Rarity | Cost | Play% | n | Pick% |
|---|---|---|---|---|---|---|
| IPO | AI | Rare | 3 | 2% | 227 | n/a |
| Cascading Failure | AI | Rare | 2 | 6% | 219 | 0% |
| Machine Learning | AI | Uncommon | 2 | 8% | 394 | 0% |
Rarity re-slot summary
Bump up (outperforming their current rarity)
- Technicality (Healthcare, Uncommon) -> next rarity up
- Predictive Pricing (Healthcare, Common) -> next rarity up
- Asset Liquidation (Healthcare, Common) -> next rarity up
- Drill Site (Energy, Common) -> next rarity up
Bump down (underperforming their current rarity)
- Class Action Suit (Healthcare, Rare) -> next rarity down
- Power Grid (Energy, Rare) -> next rarity down
- Flare Stack (Energy, Uncommon) -> next rarity down
- Circuit (Energy, Rare) -> next rarity down
- Data Center (AI, Uncommon) -> next rarity down
- Machine Learning (AI, Uncommon) -> next rarity down
- Cascading Failure (AI, Rare) -> next rarity down
Report generated by scripts/rarity_balance_review.py