Teaching a Model to Watch Football
I built my own NFL model to see if I could. The hardest part was not the math. It was finding the middle between too strict and too loose.
I love football. I also like numbers. This fall I combined the two and built my own NFL betting model, mostly to see if I could. Here is what I learned in the first month. Short version: the market is smarter than you think.
## The setup
I started with a small, fixed bankroll and a long-term goal of growing it slowly, without chasing losses. The model pulls public play-by-play data, rosters, injury reports, and depth charts, then simulates each game thousands of times. Bets are sized as a small percentage of the bankroll, so one bad Sunday cannot sink the whole thing.
## The first humbling moment
The first version picked the wrong starting quarterback for a Monday night game. It had a backup starting who was not starting, and it kept a receiver in the passing game who was injured and out. The numbers looked precise. They were precisely wrong.
That changed how I built everything after. Now the model checks the official injury report and the listed starter before it says anything.
## The second humbling moment
When I first ran player props, the model found edges of 25 to 45 percent on popular bets. I was thrilled for about ten minutes. Then I realized those were not edges. They were blind spots. When thousands of people and the sportsbooks agree on a number and your model is wildly different, the model is usually the one that is wrong.
So I changed the approach. The model now blends its own view with the market price, and when the two disagree by too much it simply skips the bet. Being humble turned out to be a feature.
## Too strict, too loose
The hardest part has not been the math. It has been finding the middle.
If the model is too loose, it falls in love with fake edges and tells you to bet everything. If it is too strict, it trusts the market so much that it never disagrees with anyone, and a model that never disagrees is just an expensive way to read the odds. Neither one helps you.
I lived both. Some weeks the model looked at an entire slate of games and decided nothing was worth betting. Not one game. Technically that is discipline. In practice it felt like hiring an analyst who reads every report and never makes a call.
So I have spent most of my time turning dials. How much should the model trust itself versus the market? It turns out the answer is different for each kind of bet. Passing yards are priced very sharply, so the model gets less say there. Rushing and touchdown bets leave a little more room. If the model and the market are too far apart, it skips the bet. If a player has only a handful of targets or carries, the model flags it as a small sample instead of pretending to know.
Every adjustment fixes one problem and nudges another. Loosen it and the bad picks creep back in. Tighten it and the good ones disappear. I do not think there is a perfect setting. There is just the setting that is honest about what it does not know.
## What it taught me
The lessons travel well beyond football:
- **Check your inputs before you trust your outputs.** A great model with the wrong quarterback is a bad model.
- **When you disagree with the crowd, ask why first.** Sometimes you are early. Usually you are missing something.
- **Simple beats clever.** My fancy watch-list system did not work, so I replaced it with a short pick list.
And for the record, I also buy one five-dollar lottery parlay a week. I know exactly what it is. It is fun.
*Bet only what you can afford to lose. If gambling stops being fun, call 1-800-GAMBLER.*