04

Fantasy Baseball Draft Tool

A purpose-built draft day tool for my fantasy baseball league. One file, no server, no nonsense.

DOWNLOAD HTML DEMO

THE STORY

I've been playing fantasy baseball for over a decade, and I wanted to create a tool that I could use during my draft. The tool tells me if my roster is on pace for category targets, and what the round-by-round strategy should be based on actual mock draft data. The whole thing runs as a single HTML file. No server, no build step, just open it in a browser on draft day.

KEY DECISIONS

Single HTML file, zero dependencies

React 18 loaded via CDN UMD build. No npm, no build step, no deployment. Double-click to open in any browser. When new projections drop, upload the spreadsheet and receive an updated file in ~2 minutes.

Dual ranking sources surfacing the gap

Each player shows their Athletic projection rank alongside their FantasyPros ADP. The gap between the two is where value lives. Bryan Woo: ATH rank #4 SP, ADP pick 42.5. That delta is the draft edge.

Empirical benchmarks from 11 mock drafts

Category targets (1st: 250 HR / .790 OPS; 2nd: 220 HR / .775 OPS) were derived from actual mock draft data, not gut feel. The pace tracker colors green or red against these specific numbers.

Bench exclusion from pace tracker

Only starting lineup players count toward category projections. A lineup auto-fill algorithm slots each drafted player into their positional spot — overflow goes to bench and is excluded from all stat calculations.

Two-tap delete protection

Accidental deletions during a live draft on a phone are catastrophic. First tap arms the delete, second tap confirms. A small thing that would have ruined the draft without it.

RESULT

A complete draft-day command center used in a live competitive draft. Round-by-round guide proved accurate: Bryan Woo available at Round 4 as predicted. Chase Burns picked up at Round 10. Finished draft with roster on pace for top-2 finish across all benchmark categories.

STACK

UI
React 18 (CDN UMD build)
DATA PIPELINE
Python, pandas
DATA SOURCES
The Athletic, FantasyPros
DELIVERY
Single .html file (~120KB)
← PREVIOUSNBA Trade ForcerNEXT →Sports Mini