Skip to content
VigLines.com

Methodology

How the VigLines engine works

Twelve stages from raw facts to a graded, hash-chained receipt. Every stage can stop a pick; none can change one after it is published.

Truth

Results, schedules, availability and weather are stored with the time each fact became known and the source it came from. A game’s inputs are frozen at an as-of time, and the ledger enforces that the input watermark is not later than the prediction time. Nothing the model sees could only have been known afterward.

State

Each team carries a Kalman-filtered rating for offense and defense, with its own variance. Ratings drift a little every day, move after every result in proportion to how surprising it was, and regress toward the league mean between seasons. Uncertainty is part of the state, not an afterthought.

Matchup

The two ratings combine into an expected score for each side, adjusted for home advantage (zero at neutral sites). Additive sports work in points; hockey and soccer use multiplicative scoring rates, so a strong attack against a weak defense compounds.

Context

Measured situational effects enter as a residual on the margin and total: rest differential, back-to-backs, travel distance, altitude, quarterback changes, wind, cold, domes, pace and postseason. Each effect is estimated from history and reported with its sign and size on the game page.

Market-free core

Betting lines are not model inputs. The core belief is built only from the sport itself, so comparisons with the market are genuine. Historical line data is used for research and honest benchmarking — including where the market has been more accurate.

Simulation

A sport-native Monte Carlo engine plays the game 250,000 times. Rating uncertainty is sampled inside every trial, so a team the model knows less about produces a wider distribution. The seed is recorded, and the same inputs plus the same seed always reproduce the same result — a gate checks this before publishing.

Adversarial review

Before publishing, stress scenarios try to break the pick: the favorite losing a key player, both ratings wrong by one standard deviation against the favorite, and a scoring environment 8% lower. The share of scenarios that flip the pick is the flip risk.

Calibration

Raw simulated probabilities are passed through a logistic calibration map fit only on out-of-sample predictions from earlier seasons. The goal is simple: when the model says 60%, those sides should win about 60% of the time. Reliability diagrams on the performance page show how close that holds.

Explain

Every published pick lists its top drivers with signed margin effects, the fair spread, total and moneylines implied by the simulation, the score distribution, and a confidence tier derived from both the edge and the flip risk.

Immutable ledger

Published picks and data holds are written to an append-only, hash-chained ledger before the event starts. The database refuses edits and deletes, and rejects any pregame row published after the scheduled start. Corrections are new rows that point at what they replace.

Learning

Finals are graded against the stored pick. Ratings update after each result, and drift checks compare live log loss with what the backtest predicted. An alarm queues a retrain; a new candidate must beat the baseline on held-out seasons and pass every gate to become champion.

Governance

Promotion requires at least 500 out-of-sample games, calibration error under 3%, and a lower log loss than the baseline. Publication requires a confirmed start time, fresh schedule data, current results, sport-specific inputs such as MLB probable starters, and — in production mode — inputs licensed for commercial use.

Engines by sport

One protocol, nine sport-native engines. Each is built around how the sport is actually scored.

NFL

Drive-level football simulation

Each trial plays out the drive count with touchdown, field-goal and extra-point rates derived from both teams’ sampled strength, then resolves ties with overtime rules (regular-season ties allowed).

NFL picks

College Football

Drive-level football simulation (college rules)

The drive engine with college parameters: wider talent gaps, higher scoring variance, and college overtime with no ties.

College Football picks

NBA

Possession-level basketball simulation

Trials sample pace and per-possession scoring for each side, then play five-minute overtime periods until the tie is broken.

NBA picks

College Basketball

Possession-level basketball simulation (college rules)

Two 20-minute halves, college pace ranges, and five-minute overtimes.

College Basketball picks

MLB

Half-inning baseball simulation

Runs are drawn half-inning by half-inning with separate starter and bullpen phases, walk-off truncation in the bottom of the ninth, and the extra-innings automatic runner.

MLB picks

NHL

Period-level hockey simulation

Regulation scoring by period, late empty-net goals when trailing, three-on-three overtime and the shootout in the regular season.

NHL picks

Soccer

Dixon–Coles goal model

Attack and defense strengths drive correlated goal counts with the Dixon–Coles adjustment for low-scoring results, so draws are priced properly.

Soccer picks

Tennis

Point-level Markov tennis model

Serve and return point-win probabilities are chained through games, tiebreaks and sets for best-of-three and best-of-five formats.

Tennis picks

Horse Racing

Correlated field simulation with pace scenarios

Every runner’s performance is sampled with a shared race-level pace shock: a hot pace helps closers, a slow pace helps early speed.

Horse Racing picks

Confidence tiers

Confidence combines the size of the edge over an even outcome (a three-way baseline in soccer) with the flip risk from adversarial review. A big edge that collapses under stress does not earn an A.

TierRuleVisible before start to
Confidence AEdge over even of at least 17 points and flip risk ≤ 20%Elite and above
Confidence BEdge of at least 10 points and flip risk ≤ 40%Pro and above
Confidence CEdge of at least 5 pointsPro and above
Confidence LEANSmaller edge — close to a coin flipFree and above

Every pick, at every tier, becomes public for all visitors once the event starts.

Known approximations

No model is exact. These are the places where our inputs are a stand-in for the ideal, stated plainly.

  • NFL weather. For historical games, weather comes from the conditions recorded in the schedule, used as a proxy for the pregame forecast. Live predictions use National Weather Service forecasts issued before the prediction; when no forecast exists yet, the training average is used and the driver is marked estimated on the game page.
  • MLB starting pitchers. In historical training data, the starters are the pitchers who actually started, not the probables announced beforehand. Live predictions require recorded probable starters before they can publish.
  • NHL seasons excluded. The 2010–12 and 2019–22 seasons are left out because the upstream files were corrupt — every game carried the same score. An automated data-quality gate quarantined them rather than let them into training.
  • Tennis calendars. About 0.25% of tennis matches fall in tournament calendars that genuinely overlap, so their relative ordering in the point-in-time timeline is approximate.
  • The NFL market. On the same games in walk-forward testing, the NFL closing market is still more accurate than our market-free model. We publish that comparison on the performance page rather than hide it.

FAQ

Is the model trained on betting lines?

No. The core model is market-free: it is built from results, schedules, availability and context. Market prices are compared against it afterward, and historical line data is used for research only.

How many simulations are run per game?

Each published game is simulated 250,000 times with a recorded seed, so the same inputs always reproduce the same distribution.

How are models promoted?

A candidate model becomes the champion only if it passes gates on walk-forward, out-of-sample data: a minimum number of games, calibration error under 3%, and a lower log loss than the baseline.

What is a data hold?

A data hold is a recorded decision not to publish, with the exact reasons, for example an unconfirmed start time, stale results or an input that is not licensed for commercial use.

For adults 21 and older. VigLines publishes sports probabilities; it is not a sportsbook. If gambling stops being fun, call 1-800-GAMBLER.

Learn more