Baseball data app

WARLeague

A fantasy league where the scoreboard is built from wins above replacement. WARLeague combines two major player-value models, follows ten custom rosters, and turns a season of baseball into one continuously updating competition.

Season scorebook

bWAR + fWAR Two perspectives on player value, combined into one league score.

The idea

Fantasy baseball, stripped down to value.

Instead of counting a collection of traditional categories, each roster competes on one number: the combined Baseball-Reference and FanGraphs WAR earned by its players. Five starters determine the standings while reserves, promotions, demotions, adds, and drops preserve the strategy of managing a team across a full season.

01

Team standings

See every fantasy team ranked by the current WAR of its five starters, with separate totals for starters, reserves, and the complete roster.

02

Player leaderboard

Search the full player pool, see each player’s fantasy team, and export the live leaderboard as a CSV for deeper analysis.

03

Season history

Follow the league’s add/drop and promotion/demotion record, keeping roster changes visible even after the transaction window closes.

How it works

A small data pipeline with a focused interface.

Ingest. Parse batting and fielding WAR data, repair inconsistent name encoding, and merge the two sources by player.

Model. Map players to custom teams, separate starters from reserves, and replay transactions to preserve current ownership.

Present. Use Streamlit and pandas to publish searchable standings, team breakdowns, validation warnings, and downloadable data.