This program aims to predict the outcome of each match of an AFL season. By using data from the previous 3 seasons, teams will be applied a score for each match which will be compared against their opponents score to determine a winner.
Additionally, a set of ransomised variables will be applied to each score to alter the final result of a match. Without this feature, an upset would never due to the team with the higher base score always winning.
A team's score for a match will have 4 variables applied with different weightings depending on how important that variable is. These variables are:
- Skill; A team will be given a score from 0 to 10 (not-inclusive) depending on their team's raw ability. This figure largely follows season predictions from AFL media organisations. Eg. for season 2025, the Brisbane Lions will be given a score of 9 and the Richmond Tigers will be given a score of 1.
- Stadium Peformance; A team's win/rate at a given venue over the previous 3 seasons. This variable is applied a multiplier of 1.2x for the home team and 0.8x for the away team
- VS Record; A team's win rate against specific opponents over the previous 3 seasons. This variable is applied a multiplier of 1x
- Win Rate; A taem's overall win/rate over the previous 3 seasons. This variable is applied a multiplier of 0.2x
Other variables that could be considered are:
- Time between matches; A shorter break of 5-6 days could apply a negative multiplier of 0.9x whilst a longer break could apply a multiplier of 1.1x
- Form; A tally of previous results could be kept that increments a team's skill value if they are on a predicted win streak. This could provide unique outcomes throughout the season if poor peforming teams go on an early win-streak and boost their skill rating. In it's current form, poor peforming teams will rarely climb higher than 13th position.
GWS Giants VS St Kilda @ ENGIE Stadium WINNER: St Kilda || PRE-RANDOMISATION: 8.461 - 4.288 || POST-RANDOMISATION: 5.246 - 9.954
North Melbourne VS Adelaide Crows @ Marvel Stadium WINNER: Adelaide Crows || PRE-RANDOMISATION: 3.383 - 7.153 || POST-RANDOMISATION: 4.628 - 6.947
Western Bulldogs VS Fremantle @ Marvel Stadium WINNER: Fremantle || PRE-RANDOMISATION: 6.491 - 8.978 || POST-RANDOMISATION: 3.017 - 3.954
Collingwood VS Melbourne @ MCG WINNER: Collingwood || PRE-RANDOMISATION: 8.853 - 5.683 || POST-RANDOMISATION: 7.61 - 6.362
Richmond VS Geelong Cats @ MCG WINNER: Geelong Cats || PRE-RANDOMISATION: 1.771 - 9.358 || POST-RANDOMISATION: 1.468 - 10.418
Essendon VS Carlton @ MCG WINNER: Carlton || PRE-RANDOMISATION: 4.76 - 7.361 || POST-RANDOMISATION: 0.467 - 6.895
Brisbane Lions VS Hawthorn @ Gabba WINNER: Hawthorn || PRE-RANDOMISATION: 10.165 - 9.096 || POST-RANDOMISATION: 8.773 - 12.997
Port Adelaide VS Gold Coast Suns @ Adelaide Oval WINNER: Gold Coast Suns || PRE-RANDOMISATION: 7.55 - 5.42 || POST-RANDOMISATION: 2.831 - 5.706
West Coast Eagles VS Sydney Swans @ Optus Stadium WINNER: Sydney Swans || PRE-RANDOMISATION: 3.233 - 9.934 || POST-RANDOMISATION: 3.373 - 8.691
- Ladder Formatting
- Better Randomisation
In order to run the program, users should first execute the following command in the project folder's CLI:
pip install -r REQUIREMENTS.txt