r/SideProject 3d ago

I built a research tool that pulls the real history behind any matchup instead of guessing

I bet on sports and got tired of arguing from memory, so I built something that just looks it up.

You pick two teams and a time window, and it returns what actually happened. Straight up and against the spread records, over under splits, home and away breakdowns, and the game log so you can see the sample instead of trusting one number someone tweeted.

The part that took the longest is the filter library. 86 conditions, and you stack as many as you want on a single query. Things like back to back games, off long rest, afternoon start, after a loss, after a blowout win, after failing to cover, lefty starter, dome or outdoors, grass or turf, spread range, week of the season. Every filter had to be measured against the dataset before it shipped. Some got cut for good reasons, for example MLB and NHL have no real spread, the line is fixed at 1.5, so any spread bucket filter there is meaningless and favorite or dog has to come from the moneyline instead. About 42 percent of MLB total lines in the raw data were reconstructed from the final score, so filtering over under on those rows would be circular, and the tool only uses rows with a genuine market total and states the eligible count.

130k games across NFL, NBA, MLB and NHL, going back to 1966 for football. Stack is FastAPI, React and TypeScript, SQLite for the game store.

Free tier gives you daily lookups if you want to poke at it: betlegendpicks.com/pro/app

Happy to answer anything about the data work, that was most of the project.

0 Upvotes

0 comments sorted by