Better thinking through technology

What I learned from half a year of publishing sports picks

With the NBA regular season coming to a close, the bulk of my initial sports picking projects are now largely done. The pro and college football work was a clear success by the numbers, pro basketball was worth the effort and college basketball managed to turn very, very ugly toward the end. Less than four weeks of hockey picks only offered a glimpse of what might be worth pursuing. Overall, it appears that I will end up somewhere on the north or south side of a 50-percent profit to show for the work. That's not bad, especially given the fact that I had zero experience wagering on sports prior to this point.

Along the way, I learned more than I probably wanted to learn. Most of what I learned about myself I'm pretty happy with. As it turns out, I simply lack the mental makeup needed to become a degenerate gambler. A lot of what I learned about other people is a bit concerning. While I didn't learn any math that I hadn't already known, I've been surprised how much could be derived from the process of building a sport picking model.

Enough chit chat. Here's what I think I maybe kinda learned along the way . . .

Beware the end of every season

The end of a season in each and every league should be viewed as a scary time. Predictions that were perfectly grounded in the middle of the season cease to have meaning at the end of the season. This is especially the case in amateur basketball, where the incentive for a team that's trailing to attempt a comeback falls through the floor. Along the way, that reduced incentive ends up eating several comebacks that would have yielded underdog wins.

Never scale up your betting using a model before you hit the first big pothole

This is actually my big takeaway from betting NHL games. The first two weeks of betting pro hockey went so well that I regretted not betting more. I felt like I was leaving money on the table.

The problem with that plan, the plan to scale up my bets, is that I started NHL betting too late in the season. As I said in the previous section, you should always show caution betting at the end of any league's season. I didn't, and I gave back money to the house in the process.

The potholes are what help you refine and prove a potential model. It's hard to learn anything of value when a model is clicking and making money. When you lose money, however, you start to see what the model is missing.

For example, I had a certain strength of win variable in my second NBA model. It did decently enough in picking spreads, but when the model started losing money on spreads I was able to identify just how strong that figure had to be before it ought to be priced into the bet. With that in hand, it was easier to target spreads than before.

Bet overs on mispriced games where you expect a high score, but skip most unders

The under on a game has to be downright insane to be worth pursuing in almost any league. On the other hand, the over, if you have a model that shows it's a fair bet, is frequently worth a bet.

Even if the over doesn't look good in pre-match betting, you should watch the live play options and see what pops up. Sportsbooks do an especially poor job of pricing the over/under totals toward the end of the third quarter. Teams tend to come out of the locker room cold and not really warm up again until around the end of 3q. This is an exploitable advantage if you expect a team to push the over based on your own model.

People who read sports picks are often more irresponsible than you can imagine

I always caution people to diversify their bets across games, spreads and MLs. In fact, your bets should be diversified across leagues and sports when possible. If there isn't enough action to support a diverse strategy, then you don't bet as much of your wad. Available action cannot be demand-sided.

No one ever listens to me on that subject because most sports bettors are, frankly, dangerous to themselves.

The worst thing about publishing a sports picking model is the period right when a model shows some promise. The degenerate bettors don't think on the long timeline. They aren't reading picks in order to learn what the consensus is. They read picks in order to reinforce their biases and also to have someone else to blame when their wagers fail.

I love behavioral economics, and I found this fact to be fascinating. I feel no empathy for people who read picks and lose, largely because I don't think tailing any one set of bets is a good idea. For example, the guys on /r/sportsbook on Reddit do a bang-up job of offering a ton of perspectives. In the NBA section this season, we had guys publishing everything from o/u totals to 1h and 1q bets.

Why get married to one set of bets and only tail those? It's mindless not to look at the array of picks available and not at least consider diversifying into a number of those other options.

Yet, without fail, when a model I built showed some promise, I could always depend on people PMing on Reddit in the form of "your stuff is the only stuff I trust! when are you publishing today's picks?"

Piece of advice if you tail a model: give it more than four weeks to develop.

An expected outcome should be completely out of range from the available bet

One thing I've learned well is that betting must be done opportunistically. If a model shows a -3 to -8 range on a game and the spread is -3.5, that's not a good bet. To be a good bet, the prediction range must not include anything that the books are showing. When in doubt, throw it out.

The books are not magical

In fact, if you're betting both spreads and o/u totals, on any given night with more than 8 NBA games there should be at least one bet that you can simply blow out of the water.

I don't advocate loading up on a bet, but it should be normal to identify that bet and double the unit size on it.

The books do a good job of setting the lines, but they're not all that good at it. Also, there is a limit where no matter how much the books might like a particular number they cannot afford the risk of a stupid public accidentally getting one right. The public line movement matters, and the books can only fight against it so much, no matter what their own numbers show for a game.

The public is dumb

It's amazing to think that the Patriots were cheap for most of the NFL season -- even home underdogs when Peyton Manning came to town -- simply because they had some trouble settling on who their receiving corps was going to be through the first four games. People were pronouncing the death of the Pats dynasty!

The betting public is not smart. They're even dumber when the sports media gets into their brains. And they're impossibly stupid if they have a particular loyalty (for example, there's decent money shading larger college football programs as road faves).

If a model is processor-intensive, abandon it quickly

Toward the end of using my first-gen NBA model, I was doing three different processing runs against three different historical horizons. While it did decently, once 5dimes stopped offering targetable underdog bets (-10.5 @ +1700, for example), the return for the labor wasn't worthwhile. It's hard to make a profit when the best you can show for a correct bet is a 100% rate of return. It takes lots of wins to offset losses once the books stop offering killer numbers on major upsets. If I ran a sportsbook, I wouldn't offer any level of diversity in the bets on tap.

The next-gen NBA model did well down the stretch, especially once I had it dialed in properly for finding games where the over was too low. The biggest benefit, however, of doing a new model for NBA was that it was vastly less labor-intensive.

As with any enterprise, modeling sports picks requires you to value your labor. On balance, the labor I put into building the basketball models was not justifiable relative to the worth of my own skills. The time would have been better spent doing almost anything else.


Overall, I've been happy with the experience of building a sports betting model. There's obviously a great deal of fun to be had in building a different type of machine-learning algorithm for sports betting, and the hierarchical clustering model was applicable to varying degrees to different sports (football, fully applicable; basketball, kind of; hockey, not at all).

I've had some fascinating conversations with folks about sports betting and the underlying mathematics. There's no end to how fascinating it can be to try to model a problem and then produce a profitable prediction.

I'll be very interested to see how the NBA and NHL models hold up during the playoffs, and I'm positively intrigued to see how similar or different the women's basketball model will be to the men's basketball model. I'm also hopeful that women's basketball plays out similar to men's basketball because it would help justify some of the labor. (Yes, I may be in that handful of grown men who are excited to see the WNBA season arrive.)

Relative to my experience going into the project, it has been amazing how well I have done. My only baseline goals were 1) to not get wiped out and 2) to not put any additional money of my own into the books. I achieved both goals, and I happen to think that's pretty damned impressive for a guy who never placed a sports bet in his life prior to October.