Skip to content
Bankroll
$1000.00
Today
+0.00
Risk
0.0%
Open
0
7-day
+0.00
betsetgo
Methodology · the answer in one page

What the model is actually based on.

A complete, honest list of every input that drives a probability number on this site — and what we deliberately don't use. Read it; if you don't buy our methodology, don't buy our edges.

One · The raw signal

Data inputs

Match results

multi-sport result feeds

Historical scores, league tables, fixture metadata. The Elo engine consumes these the moment they settle. Football covers top-7 European leagues + UEFA competitions; NBA covers regular season + playoffs since 2008; tennis covers ATP/WTA tour matches with surface tags.

Recent form

last 5 matches per team

W/L/D outcome, goals/points for and against, home or away. Fed into a form-strength feature alongside Elo.

Head-to-head

last 5 H2H, surface-aware for tennis

Direct meetings between the two competitors. Lower weight than Elo because samples are small, but we surface them so you can sanity-check.

Rest days

schedule density

Days since each side's last match. NBA back-to-back and European-tournament fatigue effects are sport-tuned.

Home advantage

league-specific factor

Empirically estimated home-court / home-pitch lift per league. Folded into the rating diff before the logistic.

Player rosters + box scores

NBA only

Per-player minutes, points, rebounds, assists, threes, PRA for the last N games. Drives NBA player-prop normal distributions.

Market odds

multi-book aggregator · sharpest preferred

Best price per market across 8 books, vig stripped via de-vigging. The sharpest book's line is treated as the consensus market probability we beat or lose to.

News context

grounded-search LLM

Per-team summary, named injuries with impact level, named suspensions, lineup notes, form notes, and the sources cited. See it on the Newsroom. Cached per match, regenerated when an analysis is rerun.

Two · How probabilities are formed

The model, per sport

Football · 1X2

logistic on Elo + form + rest

Logistic regression takes the Elo diff, recent-form gap, rest differential, and home-advantage factor. Output is a calibrated win/draw/away triple.

Football · scorelines + derivatives

bivariate Poisson on team xG

Recent xG-for and xG-against per team feed two correlated Poisson rates. The full score grid is integrated to derive BTTS, totals (over/under 1.5/2.5/3.5), Asian handicap, clean sheet, win-to-nil, and HT/FT.

NBA · moneyline + totals

normal distribution on team rates

Each team's recent points-for / points-against are fitted to a normal distribution; difference + sum drive moneyline, spread (team_totals featured market), and game O/U.

NBA · player props

per-player normal pricing

Points / rebounds / assists / threes / PRA each get a mean+std fit from the player's last N games (starter or bench filtered). Over/under model probability is the integral past the line.

Tennis · match win

surface-aware Elo

Surface-specific Elo (hard/clay/grass) feeds a logistic output. Best-of-3 vs best-of-5 differs because long matches converge to favourite.

Calibration

Platt scaling on graded history

Raw model probabilities are stretched/compressed against the actual hit rate at each confidence bucket — see the calibration plot. The number we publish is the calibrated number, not the raw model number.

Three · How we decide it's a +EV bet

Edge calculation

  1. 01
    Pull every book's posted price for the market.

    8 books fetched from our multi-book aggregator. We track who's quoting and how stale.

  2. 02
    Strip the vig.

    Two-sided markets are divided by the sum of their implied probabilities to back out the no-vig fair line.

  3. 03
    Compare model probability to fair market probability.

    Edge % = (model_prob − market_prob) / market_prob. Positive = model thinks the price is mispriced in our favour.

  4. 04
    Apply the +EV threshold.

    Below ~3%, the edge is dominated by model noise. We tag those as 'fair'. Between 3–6% is mainline; above 6% is an outlier we surface in the ribbon ticker.

  5. 05
    Suggest a stake via fractional Kelly.

    Quarter-Kelly by default (75% lower variance than full Kelly with very small ROI cost). Slider on every match page.

Four · The bright lines

What we deliberately don't do

No proprietary 'inside info'

Every input is documented above. If we don't list it, the model doesn't see it.

No tipster mode

We publish probabilities and edge, not picks. You decide what to back. Our P&L is your P&L, graded on the same scorecard you see.

No survivorship bias

Every analysis we generate is graded — wins and losses both visible on /accuracy. We never delete a bad call.

No affiliate-bias incentive

We are not affiliated with any sportsbook. Best-price highlighting is purely a function of the posted lines, not a kickback.

Five · Where we still owe you better

What's not at full strength yet

  • Asian handicap ladder is mostly model-only.

    Our odds provider gives one handicap line per match on the current tier; the full ladder is generated by the model so you can read across, but only the lines books actually post show real prices + edge.

  • Corners + cards markets are partial.

    These markets cost more credits than our current odds provider tier covers efficiently. A secondary provider is integrated and activates as soon as that key is set.

  • Player props for football aren't priced.

    We model 1X2, BTTS, totals, AH, corners and cards — but not player-level shots/goals/assists. NBA has player props. Football player props are on the roadmap.

  • Closing-line value (CLV) is data-blocked, not code-blocked.

    The closing-line capture pipeline runs daily; CLV math reads it live. The landing hero shows 'unavailable' until ~30 picks have closing odds captured — never a backtest figure. The number lights up automatically as Phase 1 paper-trading accumulates.

  • News context can lag during high-volume days.

    Our news provider has a daily call cap and will return empty rather than risk overrun. When that happens, the news block on a match page falls back to 'no context available' — the model still runs without the news features.

If something on this list isn't how you'd want a model built, tell us. The methodology gets sharper because real users push on it.