Since there is so much divide and controversy about the CFP rankings, I decided to come up with my own system that treats teams equally (more or less) and ranks them according to simple factors, like wins and losses, as well as more advanced factors, like margin of win/loss, expected outcome, recruiting class strength, home/away/neutral site games, and more in the future.
Possibilites include measuring injuries per game per team, weather, historical matchup history, and more.
First, clone the respository.
Next, go get a free API key here, and add it your environment variables (or just set it to "API_KEY =", i don't care)
Then, install the required libraries with pip install <library>
Finally, run the code!
python csv_builder.py [-h] [-s START] [-e END] [-t TOPN]
[-c COMPARE COMPARE]
options:
-h, --help show this help message and exit
-s START, --start START
declare a start year (2010 if not chosen)
-e END, --end END declare an end year (2026 if not chosen)
-t TOPN, --topn TOPN option to visualize records of top n teams over
time frame
-c COMPARE COMPARE, --compare COMPARE COMPARE
to compare two selected teams historical data
- Pandas, NumPy, Matplotlib
Huge thanks and shoutout to CFBD (https://collegefootballdata.com/), this is where I am getting all of my data in a clear and organized manner through API calls, and even using some tutorials for reference. It's free for most uses, and absolutely incredible. If I didn't have this I would have to be webscraping or paying for another API.
Very fun to learn about the significance and math behind ELO-based rankings, I think this should be a standard in most subjectively judged competition. I encourage anyone to try this template or make your own from scratch, and change the constant values, like K and C, to get your own results that you think are representative of real outcomes.