Problem
44 of 45 cards generated today are about end-of-bench players nobody has heard of: Brooks Barnhizer, Kel'el Ware, Jahmai Mashack, PJ Hall, Yuki Kawamura, Yanic Konan Niederhäuser.
Zero cards about: LeBron, Curry, Jokic, Tatum, Giannis, Luka, Embiid, Durant, Booker, Morant, Edwards.
This makes the product useless. Sports media professionals do not care about the 12th man getting 8 minutes of garbage time.
Root Cause
The workload card generator triggers on ANY player with a minutes increase, regardless of whether anyone cares about that player.
Requirements
1. Add Player Tier System
Create a player relevance scoring system:
def get_player_tier(player_name: str, player_stats: dict) -> int:
"""
Tier 1: Stars (always generate cards)
- Season PPG >= 20 OR
- Season MPG >= 32 OR
- All-Star this season OR
- Top 50 in PER/Win Shares
Tier 2: Rotation players (generate cards if signal is strong)
- Season PPG >= 12 OR
- Season MPG >= 24 OR
- Starter on their team
Tier 3: Bench players (only generate cards for extreme signals)
- Season PPG >= 6 OR
- Season MPG >= 15
Tier 4: Deep bench (NEVER generate cards)
- Everyone else
"""
2. Apply Filter to All Card Generators
In every card generation function, add tier check:
# In workload card generator
tier = get_player_tier(player_name, player_stats)
if tier == 4:
continue # Skip deep bench players entirely
if tier == 3 and signal_strength < 2.0: # Need very strong signal for bench
continue
if tier == 2 and signal_strength < 1.5: # Need moderate signal for rotation
continue
# Tier 1 generates with any signal
3. Prioritize Stars in Output
When selecting final cards, sort by:
- Player tier (Tier 1 first)
- Signal strength
- Verification score
4. Add Logging
Log every skipped card with reason:
[CARD_FILTER] Skipped workload card for Yanic Konan Niederhäuser: tier=4 (deep_bench)
[CARD_FILTER] Skipped workload card for Brooks Barnhizer: tier=3, signal=1.2 (below_threshold)
Validation
After deploy:
- Run card generation for today
- Verify 0 cards for players averaging <15 MPG (unless extreme outlier)
- Verify at least 50% of cards feature players averaging >24 MPG
- Verify star players (LeBron, Curry, Jokic, etc.) appear if they have any signal
Definition of Done
Problem
44 of 45 cards generated today are about end-of-bench players nobody has heard of: Brooks Barnhizer, Kel'el Ware, Jahmai Mashack, PJ Hall, Yuki Kawamura, Yanic Konan Niederhäuser.
Zero cards about: LeBron, Curry, Jokic, Tatum, Giannis, Luka, Embiid, Durant, Booker, Morant, Edwards.
This makes the product useless. Sports media professionals do not care about the 12th man getting 8 minutes of garbage time.
Root Cause
The workload card generator triggers on ANY player with a minutes increase, regardless of whether anyone cares about that player.
Requirements
1. Add Player Tier System
Create a player relevance scoring system:
2. Apply Filter to All Card Generators
In every card generation function, add tier check:
3. Prioritize Stars in Output
When selecting final cards, sort by:
4. Add Logging
Log every skipped card with reason:
Validation
After deploy:
Definition of Done