This site houses some sports simulations that I run in my spare time, and is largely the result of a “it would be cool to make a website with this stuff” project during my 8 weeks of paternity leave after the birth of my third daughter.
The content of this website will surely evolve over time, adding more sports and leagues (and maybe even taking some away). I might also add some “The World According to Tom” sections where I share my thoughts on things like Star Wars and MARVEL movies. If there’s anything you would like to see added-sports, leagues, tweaks to existing information-please don’t hesitate to click on the “Contact Me” link at the bottom of the page and I’ll see if I can work it in.
My name is Tom Nielsen and my day job is working in a QSR (Quick-Service Restaurant) Supply Chain. I’m an “Event Forecasting Manager”, and I lead a team that forecasts food and toy promotions for a major national fast food chain in the USA.
Long ago in high school, I got into statistics because I liked looking at baseball stats and I thought statistics class would be just like that. In “real-life”, statistics is of course much more complicated, but this started me on a path that resulted in me getting a couple degrees in statistics from Purdue University (Boiler Up!).
Along the way in my studies, I used sports as a way to apply my statistics learnings, particularly to help me learn the programming language R. Eventually I got around to creating these rating systems and simulations (i.e., forecasts), which is similar in some ways to the work I do in my day job. You could say I “Forecast food by day and forecast sports by night”, making me the most boring super hero ever.
I live in the Chicago suburbs with my wonderful wife and three little girls-in our spare time we like to spend as much time outside as possible hiking, playing, and traveling to National Parks. I have three cats-Wrigley, Ivy and Lila, who are all precious and the greatest cats ever.
Over time, I plan to put more detailed methodology in this section. Broadly speaking, my ratings systems are fairly simple. I’m not looking to match the intricate models of sites like KenPom or 538-I keep it simple-easy to code and easy to understand.
For all sports, the model takes in game results, including margin of victory and home field advantage, and calculates ratings for each team that can be used to simulate upcoming matches. In baseball and soccer, teams get offensive and defensive ratings that can be used to simulate exact scores of upcoming matches. In my cricket model, the output is simply a probability that a team will beat another team, not providing an exact score.
The simulations simply take in a season’s results to date, simulates the remaining schedule something like 5,000-10,000 times, and then spits out finishing probabilities. Most leagues also calculate “match impacts”, which is a quantification of the impactful-ness of an upcoming match. For soccer, this will be something like “Team A has a 35% probability of being relegated if they lose their next match, but only a 10% probability of being relegated if they win”.
All of the calculations are done in R, and the HTML for this website
is then generated using RMarkdown.