A top-down projection model for MLB pitcher strikeout markets, and an honest accounting of how it has performed through the first chunk of the 2026 season.
I want to start with the boring truth, because everyone in this space leads with the highlight reel and buries the part that matters: most "models" are just someone's gut feeling wearing a spreadsheet as a costume. I spent the better part of three months trying to make sure mine wasn't that. This is the write-up of what I built, why pitcher strikeouts specifically, and what the numbers look like through the first chunk of the 2026 season.
Quick context on me, because it explains why I went down this road. My name is Mani, a recent GT grad with a CS background. In terms of betting, I made most of my money off DFS correlation plays, about $30k. I ran and shared all my plays to a large free group and Discord across Georgia Tech that quickly became popular as I helped other broke college students find a profitable side hustle.
I didn't pick strikeouts because they were easy. I picked them because they're the cleanest thing a pitcher does that the market consistently misprices.
A strikeout is mostly a function of the pitcher, the opposing lineup's tendency to whiff, and how long the guy is going to be on the mound. That's it, more or less. Compare that to something like hits allowed, which gets polluted by defense, ballpark, batted-ball luck, and seven other things you can't model without going insane. Strikeouts are the prop where the signal-to-noise ratio is actually workable.
The other reason is liquidity, or the lack of it. Pitcher strikeout markets, especially alternate lines, don't get the same attention as game totals or moneylines. The books can be softer than people think, but exchanges and prediction markets are usually extremely sharp. That said, sharp doesn't mean unbeatable. If you can produce a projection that's genuinely better than consensus, or move faster than the market incorporates information, even sharp markets can still give you opportunities. That's what made this interesting to me.
I'm not going to pretend I wrote ten thousand lines of code from scratch in a vacuum. I leaned on Claude heavily through the whole thing, scaffolding the repo, arguing with me about feature selection, catching the dumb bugs that would've cost me a week. Hell, I spent $500 on tokens alone. But the model is mine. I made every call that mattered, and Claude was just the thing on the other end at 2am when I needed to figure out why my projections were running 0.4 too high against lefties.
The core is a projection engine. For every probable starter, it spits out an expected strikeout total built on the pitcher's own underlying rate, the opponent's strikeout tendency adjusted for handedness, and an estimate of how deep into the game he's likely to go. Then it compares that projection to whatever the book or exchange is offering and calculates an edge. If the edge clears my threshold, it fires. If it doesn't, it sits on its hands, which, honestly, is the hardest part to respect when you're staring at a slate and you want there to be a play.
The threshold matters more than anything else in the whole system. I only log a bet when the model sees at least a 7% edge over the implied line. Everything below that is noise I can't trust yet, so it doesn't count.
I staked it flat-to-edge: roughly $10 of risk per 1% of model edge, capped so a single number never blows up the bankroll. Starting bankroll was $10,000. This isn't a Kelly-maxing degenerate setup, it's deliberately conservative because the entire point of the experiment was to find out whether the edge was real, not whether I could juice variance into a big number for a screenshot.
Here's the part you actually came for. From March 26 through June 4, the model has fired 361 qualifying bets.
A couple of things I want to be honest about inside those numbers.
The win rate looks modest, and it should. At plus-money odds you don't need to win every bet to print, you need to win more often than the price implies you will, and do it across enough volume that it isn't luck. 52.6% at the prices I'm getting is the whole ballgame. People who don't bet think the goal is to be right a lot. The goal is to be right slightly more often than you're being paid to be.
The edge concentration is real and it's where the model earns its keep. The bets in my highest-edge bucket, the spots where the model most strongly disagrees with the market, are carrying the lion's share of the profit.
The model leans under, and that lean is profitable. A clear majority of the qualifying bets are unders, and they're hitting at a better clip than the overs. I think this is a structural thing about how the market sets these lines, there's a soft bias toward over numbers because casual bettors like betting overs, and the books shade accordingly. The model doesn't care what's fun. It just finds where the number is wrong.
And then there's the month-to-month reality, which I'm including specifically because it's unglamorous. March was a small, ugly sample and it lost money. April was excellent. May was basically flat-to-slightly-down across the biggest volume month. June's a tiny sample so far and it's green. If you only saw April you'd think I'd cracked the sport. If you only saw May you'd think the model was dead. The truth is in the aggregate, and the aggregate is a real, repeatable edge that has to be ridden through the cold stretches. May didn't break anything. May is just what an edge feels like when variance is taking its turn. The funny thing about all of this is that I could lose March, April, and May only to turn up in June and beyond. Modeling is tricky.
I'm not claiming this beats every book on every slate forever. Edges decay, and this one will too eventually. I'm not claiming the sample is bulletproof; 361 bets is enough to take seriously and not enough to retire on. And I'm absolutely not claiming you should blindly tail anything. (I also have a complete 2025 backtest that performed well for anyone who is interested.)
What I am claiming is that the strikeout market is soft enough, and the projection is good enough, that the gap between them has been real money for two-plus months, and that I can show you every single bet that produced it rather than asking you to take my word for it.
That's the whole thesis. Find the markets nobody's watching closely, build something that's genuinely better than the consensus in that one narrow place, and have the discipline to only bet when the gap is big enough to matter. The full board's below. Pick it apart.
| Band | N | Win% | P/L |
|---|
| Period | N | Win% | P/L |
|---|
| Side | N | Share | Win% | P/L |
|---|
| Date / Pitcher | Side | Line | Odds | Edge | K | Result | P/L |
|---|