Fantasy Baseball Dashboard
Pulls live Yahoo Fantasy data every 15 minutes and turns 10 roto categories into a real-time strategy dashboard.
THE STORY
I play in a competitive 10-team OPS roto league on Yahoo Fantasy. Roto scoring means you get points for your rank in each of 10 categories — 10 points for 1st, 1 point for last. The target is roughly 8 points per category, which means you're playing for 3rd place in most of them, not 1st. Yahoo's UI doesn't think about the game this way at all. Figuring out whether a player is helping you means toggling between views and scanning numbers across a table that wasn't designed to answer the question you're asking. The standings page is worse — it tells you where you are, not how comfortable you are. How close is the team above me in ERA? How many home runs to jump a rank? None of that is on the screen. So I built the thing I actually wanted: a dashboard that answers those questions at a glance.
KEY DECISIONS
Every tracker run writes two JSON files to GitHub. Vercel serves them statically. No backend, no infrastructure to manage. The tradeoff is no queryable history, but for a tool refreshed every 15 minutes that's fine.
3rd place with a big gap below you is comfortable. 3rd place with someone one stat away is not. Cards use a composite score — 60% rank, 40% gap to the team below — so you can read the board without doing the math.
A 6.75 ERA over 3 innings is noise. The same ERA over 40 innings is tanking your category. Grades scale by innings pitched so the matrix is actually useful instead of just alarming.
Grading relievers on total K made every bullpen arm look bad. K per inning puts closers and starters on the same scale — a closer with 1.1 K/IP grades green regardless of whether his total is 30 or 150.
In a 1500-IP roto league you're competing on efficiency, not volume. The pitching table makes that explicit before September.
RESULT
A live fantasy baseball dashboard deployed on Vercel, updated every 15 minutes via a cron-driven Python tracker on a home Mac mini. Covers category rank tracking with daily trend lines, roster grading against per-slot targets weighted by playing time and innings pitched, pitching efficiency analysis relative to the innings cap, and a full league standings view with per-category breakdowns.
STACK