Paper Dynasty Card Creation - Baseball card generation system
Go to file
Cal Corum 9d9c507e84 Update Sphealy custom card to 0.850 OPS and cost 188
Increased target OPS from 0.820 to 0.850 with adjusted stat splits:
- vs RHP: .260/.340/.495 (power profile)
- vs LHP: .260/.375/.420 (patient/OBP profile)
- Cost updated from 85 to 188

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 10:53:27 -06:00
.claude Card Creation Automation 2025-11-23 01:28:33 -06:00
batters CLAUDE: Add default OPS constants and type hints to improve code clarity 2025-10-31 23:28:49 -05:00
card-output August '23 PotM Cards 2023-09-07 13:14:15 -05:00
custom_cards Update Sphealy custom card to 0.850 OPS and cost 188 2025-12-04 10:53:27 -06:00
data-input Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
data-output Card Creation Automation 2025-11-23 01:28:33 -06:00
defenders Card Creation Automation 2025-11-23 01:28:33 -06:00
docs Fix critical asterisk regression in player names 2025-11-24 14:38:04 -06:00
html work fielding and batting functional 2023-09-24 18:58:44 -05:00
logs Card Creation Automation 2025-11-23 01:28:33 -06:00
pitchers CLAUDE: Add Retrosheet CSV transformer and fix data processing issues 2025-11-08 16:11:52 -06:00
scouting Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
scripts Custom card creation work 2025-11-14 09:51:04 -06:00
tests CLAUDE: Extract rarity cost adjustment logic into data-driven function 2025-10-31 22:49:35 -05:00
.gitignore Batter stat generation complete 2024-10-19 01:05:23 -05:00
analyze_cardset_rarity.py CLAUDE: Add S3 upload script and cardset analysis tools 2025-11-09 06:11:16 -06:00
automated_data_fetcher.py Claude introduction & Live Series Update 2025-07-22 09:24:34 -05:00
batter-deltas.csv Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
batting_stats.csv Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
check_cards_and_upload.py Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
check_cards.py Claude introduction & Live Series Update 2025-07-22 09:24:34 -05:00
check_cardset_rarity.py Code stabilization & retrosheet functionality 2025-11-08 16:57:35 -06:00
check_player_names.py Fix critical asterisk regression in player names 2025-11-24 14:38:04 -06:00
CLAUDE.md Fix critical asterisk regression in player names 2025-11-24 14:38:04 -06:00
create_kalin_young.py Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
create_sphealthamus_spheal.py Update Sphealy custom card to 0.850 OPS and cost 188 2025-12-04 10:53:27 -06:00
create_valerie_theolia.py Custom card creation work 2025-11-14 09:51:04 -06:00
creation_helpers.py CLAUDE: Add default OPS constants and type hints to improve code clarity 2025-10-31 23:28:49 -05:00
db_calls_card_creation.py Consolidated db preparation 2023-09-07 13:14:32 -05:00
db_calls.py Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
exceptions.py Migrate to rotating file logger 2024-11-10 14:42:12 -06:00
fix_player_names.py Fix critical asterisk regression in player names 2025-11-24 14:38:04 -06:00
fix_switch_hitters.py Custom card creation work 2025-11-14 09:51:04 -06:00
generate_arm_ratings_csv.py Card Creation Automation 2025-11-23 01:28:33 -06:00
live_series_update.py Code stabilization & retrosheet functionality 2025-11-08 16:57:35 -06:00
migrate_all_cards_to_s3.py Add batch migration script for uploading all card images to AWS S3 2025-11-16 08:42:40 -06:00
new-batters.csv intro run for 05 Live 2025-11-10 15:02:28 -06:00
new-pitchers.csv intro run for 05 Live 2025-11-10 15:02:28 -06:00
pitcher-deltas.csv Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
pitching_stats.csv Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
pkmn.json 1996 Data 2024-12-23 09:57:51 -06:00
post_raw_player_csv.py 1996 Data 2024-12-23 09:57:51 -06:00
PROMO_CARD_FIX.md CLAUDE: Refactor to reduce code fragility - extract business logic and add constants 2025-10-31 22:03:22 -05:00
pull_pitching_stats.py Claude introduction & Live Series Update 2025-07-22 09:24:34 -05:00
pybaseball_doodling.py Batter stat generation complete 2024-10-19 01:05:23 -05:00
pytest.ini Moving older scripts into holding cell 2024-10-17 09:28:02 -05:00
rank_pitching_staffs.py CLAUDE: Add S3 upload script and cardset analysis tools 2025-11-09 06:11:16 -06:00
RARITY_BUG_FIX_SUMMARY.md Code stabilization & retrosheet functionality 2025-11-08 16:57:35 -06:00
rarity_thresholds.py Code stabilization & retrosheet functionality 2025-11-08 16:57:35 -06:00
README.txt Migrate db calls to aiohttp 2023-11-19 12:27:40 -06:00
REFACTORING_COMPLETE.md CLAUDE: Add comprehensive documentation for refactoring session 2025-10-31 23:44:32 -05:00
REFACTORING_SUMMARY.md CLAUDE: Refactor to reduce code fragility - extract business logic and add constants 2025-10-31 22:03:22 -05:00
refresh_cards.py Refactor refresh_cards 2025-02-09 01:17:58 -06:00
regenerate_lefty_cards.py Fix critical asterisk regression in player names 2025-11-24 14:38:04 -06:00
requirements.txt Claude introduction & Live Series Update 2025-07-22 09:24:34 -05:00
RETROSHEET_2005_MIGRATION.md Code stabilization & retrosheet functionality 2025-11-08 16:57:35 -06:00
retrosheet_data.py Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
retrosheet_transformer.py Update scouting data and card creation scripts 2025-12-02 16:25:42 -06:00
retrosheet.db Add retrosheet db 2024-10-17 09:28:59 -05:00
scouting_batters.py Remove hardcoded cardset range in scouting scripts 2025-11-12 10:09:11 -06:00
scouting_pitchers.py Remove hardcoded cardset range in scouting scripts 2025-11-12 10:09:11 -06:00
test_data_fetcher_demo.py Claude introduction & Live Series Update 2025-07-22 09:24:34 -05:00
test_nan_handling.py Code stabilization & retrosheet functionality 2025-11-08 16:57:35 -06:00
test_retrosheet_arms.py Card Creation Automation 2025-11-23 01:28:33 -06:00
upload_lefty_cards_to_s3.py Fix critical asterisk regression in player names 2025-11-24 14:38:04 -06:00
validate_negative_values.py intro run for 05 Live 2025-11-10 15:02:28 -06:00











#######
CARD CREATION PROCESS
#######

1) Download stats
    FanGraphs / https://www.fangraphs.com/leaders/splits-leaderboards
    - Batting
        - vL Standard / vlhp-basic.csv
        - vL Batted Balls / vlhp-rate.csv
        - vR Standard / vrhp-basic.csv
        - vR Batted Balls / vrhp-rate.csv
    - Pitching
        - vL Standard / vlhh-basic.csv
        - vL Batted Balls / vlhh-rate.csv
        - vR Standard / vrhh-basic.csv
        - vR Batted Balls / vrhh-rate.csv
    Baseball Reference
    - running.csv
        - https://www.baseball-reference.com/leagues/majors/2023-baserunning-batting.shtml
        - Remove header lines
    - pitching.csv
        - https://www.baseball-reference.com/leagues/majors/2023-standard-pitching.shtml
2) Run Card Updates (Python Configuration)
3) Check Card Validity (Python Configuration)



























#######
OLD DATA REQUIREMENTS
#######

- Add any new players to players.csv for import
- Create directory in /data-input in format `XXXX Season Cardset`
- Upload the following csv files:
    - baserunning-data.csv
        - https://www.baseball-reference.com/leagues/majors/2023-baserunning-batting.shtml
        - Remove header lines
    - batter-stats.csv
        - https://www.fangraphs.com/leaders/splits-leaderboards
        - Remove header lines
        - 20 PA vL / 40 PA vR for Live || 50 PA vL / 75 PA vR for legacy seasons
    - defense-X.csv (each position)
        - https://www.baseball-reference.com/leagues/majors/2023-specialpos_p-fielding.shtml
        - replace the `p` in `p-fielding` with 1b/2b/lf
        - Column Changes (pre-2013)
            - Catchers: add column between Rgood and RsbC
            - 1b/2b/3b/ss: add 3 columns between Rgood and Rbnt
    - defense-of.csv (don't forget combined OF)
        - https://www.baseball-reference.com/leagues/majors/2023-specialpos_of-fielding.shtml
        - replace the `p` in `p-fielding` with of
    - pitcher-data.csv
        - https://www.baseball-reference.com/leagues/majors/2023-standard-pitching.shtml
    - pitcher-stats.csv
        - https://www.fangraphs.com/leaders/splits-leaderboards
        - Remove header lines
        - 20 TBF vL / 40 TBF vR for Live || 50 TBF vL / 75 TBF vR for legacy seasons

#######
OLD CARD CREATION PROCESS
#######

1) Import new players for sba_id with `1. Import Players`
2) Confirm cardset exists; if not, create now
3) Create cards with `3. Card Creation`
4) Generate csv output with `4. Card Output`
5) Upload output files into Sheets for Component Studio import
6) Upload ratings output files into Sheets for PD Ratings Guide
7) Import cards into Component Studio
8) Export -> Download All from Component Studio
9) Rename image files to <first>.<last>.png