I built a model for this league that turns a profit. Every pick is public and timestamped, check it yourself

I've been tracking this league for 13 months. Every match, every result, 71,753 of them.

My bot posts a prediction before each game starts, with a timestamp. Nothing edited after the fact.

If you're building a case here, that might be useful to you. A prediction logged before tip-off is the kind of thing that's hard to argue with later — you can check any game against what was expected of it, and see for yourself where the outcome sat.

I'm not going to tell you the league is clean or that it's rigged. I track results, not what happens inside the match, and I'm not going to pretend otherwise.

The value bets go out on X, free and timestamped. There's a paid side too, but the public record is the part that's useful here.

Happy to pull numbers on any specific matchup or player if it helps someone here

reddit.com
u/H2Hoops — 13 days ago

Months modelling eBasketball (H2H GG League): why hit rate tells you nothing about ROI

I've spent months on an algorithm that predicts H2H GG League matches: it trains on over 70.000 historical games and posts a prediction before each match. On top of that I have close to 5.000 predictions settled and verified one by one.

Hit rate versus ROI

I run four models in parallel. Betting every pick at 1 unit, no filtering:

Model A: 61.9% (1362/2201) · +37.17u · ROI +1.7%
Model B: 61.9% (1347/2176) · +22.09u · ROI +1.0%
Model C: 62.2% (1070/1720) · +21.13u · ROI +1.2%
Model D: 58.8% (1377/2340) · −51.24u · ROI -2.2%

Three of them converge on the same 62%, which makes me think that's the information ceiling in this data.

And here's the detail that matters: that 62% only returns 1% to 1.7%. It beats most attempts — flat betting almost always loses, as Model D does — but it's nowhere near what the percentage suggests. Favourites here are huge, and winning often at short prices barely pays.

The same models, betting only when the price pays above what the model thinks it's worth:

Model A: 55.3% (330/597) · +72.28u · ROI +12.1%
Model B: 56.8% (311/548) · +75.37u · ROI +13.8%
Model C: 55.0% (225/409) · +48.06u · ROI +11.8%
Model D: 55.6% (286/514) · +80.84u · ROI +15.7%
Hit rate drops three to seven points, you bet one in four matches, and ROI jumps in all four.

And look at Model D, the extreme case: it loses money flat, and filtered it has the best ROI of the four. Judged on hit rate or on flat results, you'd have thrown it away.

The bets you throw away are exactly the ones you win most often and get paid least for. What's left is more uncomfortable to place — you lose more frequently — but it's the only part that makes money. On what actually gets published, with extra confidence filters and a per-pairing cap, ROI settles around +11%.

If someone sells you a sustained 30-40% in this league, ask for the sample. I swept 1,700 parameter combinations looking for exactly that, and with an honest out-of-sample control what survives lands where you see above.

What surprised me most

The player isn't everything. The same player performs very differently depending on which team he draws, and the gap is wide enough to move a model's needle: someone at 60% overall can have an awful record with one franchise and an excellent one with another.

It's an inefficiency that only survives in a small market. The book prices the player, but the match is played by that player with that team.

Why I'm more selective on totals

On the moneyline it's enough to estimate a probability better than the one the price implies. On totals you estimate a continuous quantity and compete against a book that has already estimated it: you're not measuring your judgment against a price, you're measuring it against another model's number.

Pace also depends on things no historical dataset captures — whether someone is behind and starts pushing, whether the player in front burns the clock, whether the game breaks open early. The winner is explained well by past data; the total carries far more match-specific randomness.

So the bar for betting totals has to be higher, not the same. I publish considerably fewer picks in that market, and only when the gap to the line is wide. I'd rather have less volume with discipline than picks every day to fill the feed.

Anyone else modelling eBasketball or the eSoccer equivalents? I'd like to know how you approach totals

reddit.com
u/H2Hoops — 16 days ago

Months modelling eBasketball (H2H GG League): why hit rate tells you nothing about ROI

I've spent months on an algorithm that predicts H2H GG League matches: it trains on over 70.000 historical games and posts a prediction before each match. On top of that I have close to 5.000 predictions settled and verified one by one.

Hit rate versus ROI

I run four models in parallel. Betting every pick at 1 unit, no filtering:

Model A: 61.9% (1362/2201) · +37.17u · ROI +1.7%
Model B: 61.9% (1347/2176) · +22.09u · ROI +1.0%
Model C: 62.2% (1070/1720) · +21.13u · ROI +1.2%
Model D: 58.8% (1377/2340) · −51.24u · ROI -2.2%

Three of them converge on the same 62%, which makes me think that's the information ceiling in this data.

And here's the detail that matters: that 62% only returns 1% to 1.7%. It beats most attempts — flat betting almost always loses, as Model D does — but it's nowhere near what the percentage suggests. Favourites here are huge, and winning often at short prices barely pays.

The same models, betting only when the price pays above what the model thinks it's worth:

Model A: 55.3% (330/597) · +72.28u · ROI +12.1%
Model B: 56.8% (311/548) · +75.37u · ROI +13.8%
Model C: 55.0% (225/409) · +48.06u · ROI +11.8%
Model D: 55.6% (286/514) · +80.84u · ROI +15.7%
Hit rate drops three to seven points, you bet one in four matches, and ROI jumps in all four.

And look at Model D, the extreme case: it loses money flat, and filtered it has the best ROI of the four. Judged on hit rate or on flat results, you'd have thrown it away.

The bets you throw away are exactly the ones you win most often and get paid least for. What's left is more uncomfortable to place — you lose more frequently — but it's the only part that makes money. On what actually gets published, with extra confidence filters and a per-pairing cap, ROI settles around +11%.

If someone sells you a sustained 30-40% in this league, ask for the sample. I swept 1,700 parameter combinations looking for exactly that, and with an honest out-of-sample control what survives lands where you see above.

What surprised me most

The player isn't everything. The same player performs very differently depending on which team he draws, and the gap is wide enough to move a model's needle: someone at 60% overall can have an awful record with one franchise and an excellent one with another.

It's an inefficiency that only survives in a small market. The book prices the player, but the match is played by that player with that team.

Why I'm more selective on totals

On the moneyline it's enough to estimate a probability better than the one the price implies. On totals you estimate a continuous quantity and compete against a book that has already estimated it: you're not measuring your judgment against a price, you're measuring it against another model's number.

Pace also depends on things no historical dataset captures — whether someone is behind and starts pushing, whether the player in front burns the clock, whether the game breaks open early. The winner is explained well by past data; the total carries far more match-specific randomness.

So the bar for betting totals has to be higher, not the same. I publish considerably fewer picks in that market, and only when the gap to the line is wide. I'd rather have less volume with discipline than picks every day to fill the feed.

Anyone else modelling eBasketball or the eSoccer equivalents? I'd like to know how you approach totals

reddit.com
u/H2Hoops — 16 days ago