Why I built it
A dynasty trade can take years to play out. Players move again, picks become players, and the original deal gets harder to judge from memory. I wanted to follow that history and compare what each side actually got.
What it does
Connect a Sleeper username, choose a league, and explore its trade history and franchise reports. Trade Value shows the market-value swing, while production measures show what the players each side received went on to score. The reports follow assets through later moves, so flipping a player or pick does not end the story. Franchise ratings also bring together season results and the assets a team has to work with. The app supports dynasty, keeper, and redraft leagues, with scoring adapted to each format.
What I built
A shared Python analysis engine behind a web app and command-line reports. It walks a league’s history, connects trades to rosters and draft results, and separates regular-season production from the relevant playoff games. The interface uses a design system from Claude Design, with shared styles and components across the reports. Market value and actual production stay distinct, with the assets and scoring behind each result available to inspect. A grade should be something I can question and understand.
Follow the deal beyond trade day.
A player or pick can have a much longer story than the original exchange.
See what each side received.
This capture shows an earlier report design, including a pick followed through later trades. The current app’s layout and rating model have since evolved.
