Článek v češtině zde / click here for Czech translation.
Like plenty of Czechs of my generation, my enthusiasm for hockey started during the 1998 Olympic Games in Nagano. The tournament, its background, and its impact were special enough that twenty years later, a documentary named Nagano Tapes was made; amazing to watch to anyone who cared about Nagano at that time. Myself, I was 9 years old during the tournament and I still distinctly remember how afraid I was of the Russian superstar Pavel Bure every time he touched the puck against the Czech team. Soon after the Olympics, me and seemingly all the other kids went crazy about NHL, often watching night games and buying and trading player collectible cards by dozens. When it came to cards, everyone was crazy about Nagano heroes Jaromír Jágr and Dominik Hašek. Personally, I evaluated my hockey-card collection simply by how many Pavel Bures I had.
It wasn’t just about NHL, either. Growing up I was into smaller leagues as well and in my 20s I became completely disconnected from the NHL and rather watched the Czech Republic teams. When my city’s team, Kometa Brno, was supposed to be a lock to win the championship in 2015, I was skeptical. That got me thinking: I wished there had been a way to figure out the probability that “my” team wins the whole thing. And so I spent summer building a model for rating teams, using a popular rating system Elo, which is useful not only in chess but in any zero-sum game. I’ve put all sort of competitions in the model, there were 20 leagues of various qualities, all the way from the awesomeness of NHL and KHL to Polish or British bush leagues. Now I had ratings for all these teams and winning probabilities for every single match-up coming up, which even gave me a chance to run long-term simulations.
These are simulations of the final standings of Czech Extraliga ran in November 2016. They were solid, although not even close to perfect. Some teams were flat out wrong, the biggest outlier being my local team Kometa Brno which screwed my model every single year; being bad when I expected them to be on top of the standings and winning championships when I was sure they are luckbox losers.
While originally, the idea was that I could predict the probability for every team to win a championship or make playoffs, I didn’t stop there. I spent the better part of 2015 collecting historical odds. To manually pull odds for about 20,000 games took a while, but once I’ve had it, I was able to see how good the model is compared to oddsmakers. As expected, it was pretty bad in NHL and KHL, big leagues with plenty of bettors money that make it an efficient market. With what I had at hand, these were unbeatable. However, the historical results suggested that the machine could make a killing across less popular European leagues, mostly in Germany and Switzerland.
The great thing was in its simplicity. Nothing fancy, just a simple formula – well, as simple as Elo formula can be – and Excel. All I had to do was feeding real world results to the model and just like that, there was a chance to win money. Or was there? At first, I was little sceptical, the hockey stats revolution was in a full swing so I appreciated the importance of advanced data like shots taken, zone entries, expected goals. But I also knew that adding advanced stats wasn’t an option at this time, and the model did give good advice on which games are valuable to bet at the tail of 2015 season. I decided to really go for it and put money where my mouth is, so to speak. Once the real money were part of the deal, though, the model started failing big time. I spend over six weeks in red numbers as the 2016 season kicked off horribly. Because my bankroll management was smart, I survived the rainy days, never coming close to bankrupting and ever since November, the model was on a roll. I spent the rest of the year with a solid profit.
At one point I had +40% return on investment, but the season ended as badly as it started. Noted: don’t bet playoff games. That put me to a +28% ROI for the year. Still pretty good.
In 2017 I tried my luck again, but the season was strangely boring. Long gone were the huge swings that made 2016 so interesting. My graph from that time is almost a flat line. The largest hole I had in that season was -3.5 units, biggest profit +5.1. Average was the name of the game that year. I ended the project in the middle of November with a +0.6% yield and +1.6 profit. I didn’t mind the grind, I would keep going and at that time I believed I would eventually break through and make a solid profit, but I had to prioritize and switched my attention to football and Armchair analysis because that’s where my heart truly was. Looking back, that was a good decision. Sports betting really is a strange thing that I never fully figured out, the emotions of having real money at stake being the smallest problem.
After the 2016 season I did an analysis in which I compared simulations using oddsmakers’ implied probabilities on the game I picked as bets. My results ended up in the 97th percentile. As good as that is, I realized I probably was on the right side of luck that year. What struck me most was that the simulations implied that even with a perfect model one still has a 5% chance he will end up losing money across 500 bets, which is a fairly big sample size. That’s spooky enough to forever keep me from seeing sports betting as a real investment.