About Flintstat

Flintstat is a sports statistics and research project. It tests whether plain math on public prices can find odds that are too high. For each game our models read the odds of dozens of bookmakers, set a fair price and show where the best price is above it. Our track record decides which models, sports and odds ranges we publish

This is analysis and research, not betting advice. Nothing here is a promise that a game will go a certain way

What this is, and what it is not

A model gives a probability, not a certainty. A 60 percent chance to win also means the team should lose about four times in ten

We use no insider information, club contacts or fixed-match rumors, and we sell no locks. Everything comes from math on records anyone can look up

What moves a game

A few measurable factors drive outcomes, and they differ by sport

Soccer

Tennis

Basketball

Baseball

Turning history into a probability

The standard tools below build the probability of each outcome from past results. Our pick models take it from bookmaker odds instead

Rating systems (Elo). Every team or player carries a rating, and the gap between two ratings gives a win probability through a fixed formula:

expected score = 1 / (1 + 10^((R_opponent − R_team) / 400))

A 200-point gap is about a 76 percent chance, a 400-point gap about 91 percent, and equal ratings are 50/50. After each game a rating changes by K × (actual − expected), so beating a strong opponent lifts it more than beating a weak one

Goal models (Poisson). Goals roughly follow a Poisson distribution. From each team's expected goals you can compute the chance of every scoreline and add them up into home win, draw and away win. The Dixon-Coles adjustment corrects plain Poisson, which slightly underrates low-scoring draws

Regression models. For a yes or no outcome, logistic regression takes many inputs (ratings, rest, home flag, injuries) and returns a single probability between 0 and 1

Even good soccer models are right only about half the time on the three-way market. Their value is in calibrated probabilities over many games

From probability to fair odds, and what an edge means

Fair decimal odds are the inverse of a probability:

fair odds = 1 / probability

A 50 percent chance is fair odds of 2.00, a 25 percent chance is 4.00. Any price reads back the same way, implied probability = 1 / decimal odds

Add up the implied probabilities of every outcome in a bookmaker's market and the total is more than 100 percent. The extra is the bookmaker margin, the vig. To remove it, divide each implied probability by the total so they sum to 100 percent. That gives the market's no-vig probability to set beside the model's. The edge is the expected return of one bet at the best price

edge = model probability × best price − 1

A 44 percent chance at 2.60 gives 0.44 × 2.60 − 1, an edge of 14.4 percent. The edge is positive whenever the best price is above the fair odds. How our picks work shows how each match page uses these numbers

Who is more accurate

The closing line, the last odds before a game starts, is the market's sharpest estimate. By then it has absorbed lineups, injuries and money from informed bettors. A fair test of a model is whether it matches or beats the no-vig closing line over a large sample

Over a handful of games a good model can look bad and a bad one good, so profit and loss is a poor short-term scorecard. Calibration against the closing line shows a real edge much sooner. Since 9 October 2026 we save the odds right before each start and will compare picks with the closing line once we have enough

Limits

Contact

Flintstat is a small, independent project. If you spot an error in the numbers or the method, or have a question about the data, tell us