How the edge is computed
WeBall3 min readUpdated Aug 15, 2026Reviewed Aug 15, 2026
Every graded bet in WeBall is the output of the same four steps, regardless of sport or market. There is no per-sport hand-tuning and no discretionary override — one engine grades an NFL spread and a Premier League corners total by the same procedure.
Step 1 — Sample
The engine pulls the historical results that decide the market. For a spread that is the scoring margin in each team's recent games; for a total it is combined score; for a player prop it is that player's game log for the relevant stat.
What counts as "recent" varies by sport, and the sample is opponent-adjusted where the data supports it. Markets whose deciding number cannot be reconstructed from the warehouse are not graded at all — they surface as UNRATED rather than receiving a guess.
Step 2 — Fit a model probability
The sample is fitted with a distribution chosen by the shape of the quantity being predicted:
| Quantity | Distribution | Examples |
|---|---|---|
| Yes/no outcome | Binary | Moneyline, both teams to score, anytime touchdown |
| Non-negative count | Poisson or negative binomial, by dispersion | Totals, corners, receptions, strikeouts |
| Continuous amount | Normal approximation | Spreads, passing yards, rushing yards |
For head-to-head and derived markets the engine uses a paired Poisson matchup model: it estimates each side's expected scoring rate, then derives the probability of every outcome the market prices from that pair.
Step 3 — Find the market's fair probability
The posted odds are not the market's honest opinion — they include the bookmaker's margin. The engine takes the prices across books, converts them to implied probabilities, and normalises them so they sum to 100%. That is the no-vig fair probability.
Skipping this step is the most common way to fool yourself into thinking a bet has value: measured against the posted price rather than the fair price, almost everything looks slightly bad, and the few things that look good are usually mispriced in the other direction.
Step 4 — Publish the difference
edge = model probability − fair probability
An edge of +5.4% means the model thinks the bet wins 5.4 percentage points more often than the market's fair price implies. That gap, together with the confidence score, decides the verdict grade.
Worked example
- 01A team's spread is priced −110 on both sides across the board.
- 02Each side's implied probability is 52.4%, summing to 104.8% — a 4.8% hold.
- 03Normalising to 100% gives a fair probability of 50.0% per side.
- 04The matchup model, shrunk toward that market prior, lands at 55.4% for the favourite.
What the edge is not
It is not a prediction that the bet wins. A +5.4% edge on a coin-flip spread still loses a little under half the time, and a run of losses inside that is completely normal.
It is also not a promise about the price you will get. Edges are computed against the best available price at grading time. Lines move, and a bet that graded GOOD at open can be fairly priced by kickoff — which is exactly why closing line value is the better measure of whether your process is working.
Common questions
Is a bigger edge always better?
No. A large edge on a thin sample is usually a sign the model is wrong rather than the market. That is what the confidence score exists to express, and why a high-edge, low-confidence bet is graded THIN DATA instead of GOOD.
Does the edge account for the price I actually get?
It is computed against the best price on the board at the time of grading. If the line has moved by the time you bet, the edge you get is not the edge that was published. This is why beating the closing line matters more than the badge.