Hey everyone, I built a tool to help automate the amateur draft process and wanted to share it. It's free and open source:
https://github.com/jds3d/hardball-dynasty-draft-optimizer
What it does:
It scrapes the entire amateur draft player pool (hitting, fielding, pitching, and background info) into a single Excel workbook, scores every prospect using a configurable projection algorithm, and ranks them on a Master List. When you're happy with your order, it pushes the rankings back to the Rank Players list on the site with one command — no manual drag-and-drop for 500 players.
How scoring works:
Each rating is run through a 3rd-order polynomial curve that compresses high ratings toward the top — an 80 and a 90 are both treated as "good enough" and scored close together, while the gap between a 60 and a 70 is much more significant. Ratings are grouped (hitting, fielding, pitching, pitches, durability, etc.) and each group and individual rating has a configurable weight. The final score also factors in:
- Scouting trust — If you're spending 12M on high school scouting but 10M on college, high school ratings are trusted more. College players get a configurable discount reflecting the uncertainty. You can tune how aggressive the penalty is.
- Signability — Players who "probably won't sign" or are "undecided" get penalized. Players who are "looking to sign" get no penalty. The thresholds and multipliers are all configurable.
Everything — the polynomial coefficients, every rating weight, group weights, scouting formula, signability penalties — is configurable through two files (algorithm.json, config.json, and credentials.env) so you can tune the system to match your own draft philosophy without touching any code.
Quick setup:
- Python 3.10+ and Google Chrome
- Clone the repo, install dependencies (
pip install -r requirements.txt)
- Add your login credentials to the local file,
credentials.env
- Set up your scouting budgets and preferences
python main.py fetch to scrape and score
- Review the Excel output, tweak weights if needed
python main.py apply-order to push your rankings to the site
The tool uses Selenium to automate Chrome, so it logs in and navigates the site the same way you would — just faster. The reordering is done via JavaScript so it's basically instant instead of clicking arrows for an hour.
If you have questions or run into issues, feel free to post here or open an issue on GitHub. Pull requests welcome too if anyone wants to contribute.