Troy J., Adi B., Romith C.
Report Bug
·
Request Feature
The purpose of this project is to build an end-to-end fantasy basketball virtual assistant that automates decisions from draft day through daily lineup management, waiver wire pickups, and trade targets. This is achieved through a focused set of tools, each providing fantasy managers a distinct competitive edge, with the long-term goal of consolidating them into a single, cohesive application.
Identifies the most impactful stretches of a player’s season using a divide-and-conquer maximum subarray strategy.
For a chosen player and statistical category, the tool establishes a seasonal baseline, converts each performance into a deviation from that baseline, then searches for a contiguous run of games that generated the greatest positive lift.
Fantasy outcomes are driven by momentum, role shifts, and short-term surges far more than long-run averages. Managers win by recognizing these surges early, not by trusting season summaries. By isolating these windows, this tool highlights when production is both elevated and sustained. This supports sharper waiver timing, smarter buy-low/sell-high trade decisions, and more confident lineup locks.
Creates a structural map of the fantasy ecosystem by grouping players based on their 9-cat fantasy production, rather than traditional position labels. Using scaled statistical inputs, k-means clustering (k = 3, selected via elbow analysis) transforms raw box score data into practical fantasy archetypes.
The model identifies natural similarities in statistical production, organizing the league into three repeatable profiles:
- High-usage, across-the-board contributors
- Interior-leaning producers
- Guard/wing-driven outputs
Instead of evaluating hundreds of individual stat lines, fantasy managers can approach roster construction by relying on stable player types with predictable strengths and weaknesses. These archetypes form the analytical backbone for downstream decision engines, including a draft simulator.
Builds smarter late-round draft strategies by stress-testing roster constructions against each other.
This tool runs large-scale fantasy draft simulations based on the defined player clusters. Early round selections are held to just the high-volume player cluster, while late-round picks are tilted toward different builds (e.g., size-driven production, guard/wing skills). Each simulated roster is then matched head-to-head across categories using historical performance to determine which draft strategy wins more often.
The result is an evidence-based solution for one of fantasy basketball’s hardest challenges: converting late round picks into intentional categorical advantages, rather than an accidental category imbalance.
-
execute_cleaners.py
Orchestrates the project’s data engineering pipeline by invoking the modular cleaning components.- Inputs:
data/raw - Outputs:
data/processed - Cleaning Modules:
cleaners/
- Inputs:
-
tests/
Unit tests validating correctness, stability, and expected behavior across the codebase. -
utils/
Core algorithms and reusable building blocks that power the analytical modules.



