Sports Pool Team Chooser

There is also Hockey Pool Team Chooser v3.5 from a few years ago.

[ home | programming | résumé ]

[ EARE | mcppUnit | Sports Pool Team Chooser | Keyboard Evolve | Typing Tutor
| VirtualDub 1.5.9 MC | 3D Object Viewer | Tune'O'Matic | In the Works ]


v4.0 beta
MS Windows executable
(Feb 8, 2006)
(includes stats for weeks 1-15 of the 2005-06 season)

v4.0 beta
Linux executable
(Sep 26, 2005)
(Note that the GUI is a bit buggy in Linux at the moment due to wxWidgets bugs and inconsistencies that I'll need to work around)



(Click to enlarge)

Windows screenshot - Player Selection
Player Selection

Windows Screenshot - Best Teams
Best Teams


(Click to enlarge)

Linux Screenshot - Player Selection
Player Selection


Sports Pool Team Chooser is a program that can be used to calculate the best teams to pick in online sports pools.  It takes player and team statistics and the limits of the pool (number of players at each position, total player cost) and uses them to find the combination of players that is most likely to give you the most points in the coming week.

When this re-write is done, this will be v4.0. This one is in C++; the old ones were in VB6.0.

[Note:  I may discontinue this project and simply redo it as a web application -- the development speed would be faster, and it could also be a better business model...]

Sportsnet T-Shirt T-shirt won
using the program
If you would like to see how well the program has been working for me, please see my Sports Pools page.  As you can see from the picture to the right, it hasn't worked too badly!

This is actually the 4th such program I have created, but the other ones were geared specifically towards a certain hockey pool and were called Hockey Pool Team Chooser, while this new version is much more customizable and can be used for many types of pools.

This program is written in C++ and uses wxWidgets and wxGlade for the GUI. wxWidgets is a cross-platform GUI framework, allowing me to create both Windows and Linux versions of this program without much extra work.

Rather than just calculating [average pool points per game]×[games this week] to find the best players, the program can take into account the player's recent performance and will eventually be able to take into account the difficulty of the teams he'll be playing against in the coming week.

Current Features:
  1. Can calculate the best set of players based on the statistics that have been input and on whatever pool constraints it was set up with (number of different positions, players per position, total player salary cost...).
    • Can currently test over 5 million teams per second on a 2.8GHz Intel P4 CPU.  Typically, you won't test more than half a million teams.  When I made the first version of Hockey Pool Team Chooser back in 2000 using Visual Basic, it would sometimes take 10 minutes to check all the player combinations I was interested in, but now it takes less than a second!
    • Statistics must be input manually right now -- instructions are in the readme.  In future versions, you'll be able to input stats directly from the Internet, saving a lot of time.
  2. It allows you to view player stats.
    • Name & team
    • Total number of pool points and games played
    • Average pool points per game over the whole season
    • Weighted average pool points per game, in order to see how a player has been performing lately.  There is a window where you can set up the weights for each week.  For example, I tend to set the five most recent weeks to have a weight of 4 while the others have a weight of just 1.
    • Number of games played in the coming week
    • Expected number of pool points in the coming week, based on [weighted pts/gm]×[games played in the coming week]
    • "Rating" -- a measure of the value of a player based on his cost and his weighted pts/gm average.  Currently only calibrated for the hockey pool, so it probably won't make sense for other pools.
Future Features:
  1. All around nicer GUI
  2. Double clicking on a player will bring up a window showing detailed information about that player, such as his pts/week record throughout the season and a measure of his consistency/streakiness.
  3. Ability to manually modify a player's projected points for the week if you think he will perform better than statistics indicate (this feature is available in Hockey Pool Team Chooser).
  4. Ability to 'pin' a player so that, no matter what, he will be on all the suggested teams (this feature is available in Hockey Pool Team Chooser).
  5. Ability to input team statistics.  This will allow the program to know which teams are easy to score points against.
  6. Ability to input the schedule, so the program knows what teams a player is playing against in the coming week.
Hockey Pool Team Chooser v3.5
(MS Windows only. This program requires that the VB6 runtimes are installed on your computer)

(Version 4.0 is in development and has had a name change to Sports Pool Team Chooser v1.0 since it is intended for use with many sports, not just hockey.)
This program was made to help me with weekly online hockey pools. You enter players' statistics and "salaries" for four positions (center, winger, defense, and goalie) and give a salary budget, and the program will compute the best player combinations.

The version I'm making available here doesn't have all the player slots available, since I don't particularly want it used against me! If you'd like the full version, contact me...

I originally developed this program for the Smallworld hockey pool back in my OAC (grade 13) year of high school (2000), but I now use it for the CTV hockey pool.

This summer, I will be rewriting the program from scratch in C++.  The current version is written in Visual Basic 6.0.  New features will include:  vastly improved GUI, unlimited players, customizable game rules so it can be used for just about any pool (and any sport), automatic statistics gathering...

I predict that this program will be even more accurate now that the NHL has adopted some new rules to increase scoring.  More consistent scoring means better predictions!

Success stories:
  1. 2000-2001.  The first week after I started using v1.0, I went from 10th to first in my Smallworld hockey pool group thanks to two hat tricks by Jaromir Jagr, whom I had originally believed I could not afford.
  2. 2003-2004.  Finished 487th out of over 40000 players in the CTV Sportsnet pool.  Scored 93% as many points as the winner.  In the first 7 weeks, I lost 54 points on the leader (about 2 weeks' worth of points) and fell to 8254th position, but over the last 16 weeks of the season, I was up 2 points on the winner and slowly and steadily climbed into the top 500.  At the start of that period, I had modified my stats-collecting program to weight the stats to favour players on hot streaks.  v3.5 does not include my stats-collecting program, but it will (probably) be incorporated into v4.0.

Graph showing my ranking steadily improve after the 7th week of the season
After weighting the stats after the 7th week, my rank steadily improved.
In only 3 of the last 16 weeks did I not improve my rank.
Increased league scoring after the '04-'05 strike
should make predictions more accurate.

[ home | employment ]

page made quickly using Mozilla Composer (i.e. the coding is poor)
Michael Capewell 2005 smozoma