// TIDAL Core · Open Methodology

How POSEIDON forecasts

No sportsbooks. No syndicates. No narrative. Just probability — derived from hierarchical Bayesian inference, weighted by recency, validated out-of-sample on the held-out 2025-26 season ( games), and disclosed honestly about what it cannot see.

The Methodology

Live · Round 2 Complete
▾ TIDAL Core · Open methodology

How POSEIDON forecasts

No sportsbooks. No syndicates. No narrative. Just probability.

POSEIDON's forecasts come from TIDAL Core, a hierarchical Bayesian Poisson regression model. We treat scoring as a probabilistic process whose rate parameters are inferred from training data, weighted by recency. Every prediction is a probability distribution — not a point estimate.

1 · Architecture

A mathematical engine that answers to no one.

TIDAL Core models each game as two independent Poisson processes — one for each team's scoring rate — whose parameters depend on team strength, opponent strength, home advantage, rest days, and pace.

For a game between team A and team B, we estimate the expected scoring rate for each side as a function of latent team-strength parameters that the model infers from historical scores. Bayesian inference means we don't just produce a single estimate of a team's strength — we produce a full posterior distribution describing our uncertainty.

λA = exp(β0 + αA − δB + h·home + r·rest + ...)

This means stronger teams produce higher expected scores, weaker opponents reduce them, home advantage adds a documented bonus, and recent rest reduces fatigue penalties. From these two scoring rates, the full distribution of possible game outcomes follows mathematically — not just "who wins" but "what's the chance of winning by 7 vs 12 vs 3 points."

Why this matters: traditional models output one number ("team A favored by 5"). POSEIDON outputs a complete probability distribution covering every possible margin and total. That's why we can produce honest moneyline, spread, AND total probabilities from a single coherent model.

2 · Training data

Built from primary data. Calibrated by reality.

POSEIDON's NBA model is trained on games across 10 seasons (2016-17 → 2025-26), with recency weighting (a -day half-life) so recent games count more than older ones.

Training games
10
Seasons of data
d
Recency half-life
~4×
This season vs a year ago

Weight halves roughly every six months (a -day half-life), so a game about a year old counts about a quarter as much and older seasons fade further still. We don't throw old data away — older seasons help anchor team-strength priors — but the model knows that the league has evolved (pace is up, three-point rates are up, defenses are different) and weights accordingly.

Excluded: preseason games (rotations are non-representative), games with missing or corrupted score data (rare but they exist), and any single-game outliers we could verify were affected by extraordinary off-court factors.

3 · Validation

Math that bends to evidence, not to anyone's narrative.

Every accuracy claim POSEIDON makes comes from walk-forward backtesting — training on data through date T, predicting day T+1, recording the result, then advancing. This is the closest you can get to honest forward-looking accuracy estimation.

Hold-out games
Overall hit rate
Hit rate ≥ 60% conf
Hit rate ≥ 70% conf

Across the walled-off 2025-26 hold-out season games from 2025-10-21 to 2026-06-04, a season never used to tune the model, with every game predicted using only games played before it — POSEIDON's moneyline picks hit at . When the model is more confident (>60% probability), accuracy rises to ; at very high confidence (>70%), to .

Our Brier score — the standard measure for how well-calibrated probabilistic predictions are — is , meaningfully better than the uninformed baseline of . Lower is better; a perfect forecaster would score 0.

Why walk-forward matters: any model can look brilliant when tested on the data it was trained on. Walk-forward never lets the model see the future. Every prediction is made using only information available at that moment. Anything else is statistical malpractice.

4 · Limitations · what POSEIDON does NOT model

Honesty is the only feature that compounds.

Honest forecasting requires honest disclosure of what we don't capture. Here's the list.

Player-level injuries and rest decisions. Our model treats teams as composite entities. A late scratch of a star player can shift a real-world probability by 10+ points; POSEIDON won't see that until you tell it (via the TIDAL Pulse overlay) or until the market moves and we re-anchor.

Travel, altitude, time zones. An East Coast team flying to Denver for an 8pm tipoff is observably different. POSEIDON does not model this directly — it shows up only insofar as it correlates with rest-day patterns the model does see.

Officiating and game flow. Foul rates, technical fouls, ejections, and replay review variance are not in the model. These add real-world noise we don't try to predict.

Playoffs differ from regular season. Playoff intensity, slower pace, and tighter defenses mean the regular-season-trained model's totals predictions tend to overshoot in playoff games. We grade totals at C for this reason.

Black-swan events. Coaching changes, mid-season trades, locker-room dynamics — all invisible to a stat-based model until enough games have happened to update the team-strength estimate.

The honest framing: POSEIDON is a strong baseline forecast model. The TIDAL Pulse system exists precisely so users can flag the things the model can't see, and watch the probability respond. Together, model + observations are stronger than either alone.

The Council of Mathematicians

// Foundations

Five thinkers whose work, properly applied, forms the actual mathematical backbone of any serious sports-betting system. Each has a real, computed contribution to Poseidon — no metaphors, no vocabulary borrowing.

01 // Bayes
B

Thomas Bayes

1701 — 1761
Posterior updating. Team-strength priors get updated with all new evidence; the model is recomputed weekly through the entire backtest.
Live Output
teams modeled
refit every 7 days
02 // Pascal
P

Blaise Pascal

1623 — 1662
Expected value. We never bet on who wins — we bet when our edge over the book's de-vigged probability is positive.
Live Output
EV calculator below
de-vig + edge calc
03 // Kolmogorov
K

Andrey Kolmogorov

1903 — 1987
Signal vs noise. Pythagorean expectation separates a team's deserved record from luck.
Live Output
Luckiest:
Unluckiest:
04 // Thorp
T

Edward Thorp

b. 1932
Kelly criterion. Compound-growth-optimal sizing. The bankroll simulator below shows what happens at every fraction.
Live Output
2× Kelly ruin:
why fractional matters
05 // Mandelbrot
M

Benoit Mandelbrot

1924 — 2010
Fat tails. Extreme outcomes happen more often than Gaussian intuition predicts. Real bankroll math accounts for this.
Live Output
Excess kurtosis:
NBA margins are mildly fat-tailed

The Mathematics

// 11 · Theory

01Hierarchical Poisson Likelihood

Scoring events in basketball — possessions ending in points — are well-approximated as a Poisson process. Each team has a latent offensive rate and defensive rate; points scored are draws from a Poisson distribution whose mean depends on both teams plus context.

home_pts ~ Poisson(λhome)   away_pts ~ Poisson(λaway)

The log(λ) link makes the model multiplicative: a strong offense vs. weak defense compounds, exactly as in reality.

02Bayesian Shrinkage Prior

Gaussian priors on each team's offensive/defensive coefficients with mean zero. Pulls estimates toward league average when evidence is weak — that's what stops early-season noise from mattering.

αt ~ Normal(0, σ²α)    δt ~ Normal(0, σ²δ)

Equivalent to L2-penalized Poisson regression with penalty λ = 1/σ², tuned via walk-forward CV.

03Walk-Forward Backtest

Refit every 7 days walking forward through history. For each game, predictions use only data available before the game tipped off. No leakage. This is the only honest way to estimate live performance.

Anyone showing you in-sample accuracy on the same games the model was fit to is selling you a fantasy.

04Monte Carlo Simulation

Once we have the Poisson rates, we draw 5,000 simulated outcomes per matchup to map the margin and total distributions (the p16/p50/p84 bands); the win probability itself is closed-form. Combined with Kelly criterion for sizing, we know when to bet, how much, and crucially when to refuse to bet.

System Architecture

// 12 · Stack
01 INGEST nba_api box scores play-by-play 02 FEATURES ETL · pandas pace · rest design matrix 03 BAYESIAN FIT Poisson · L2 α, δ, γ posterior refit weekly 04 SIMULATE Monte Carlo 5k draws P(win), totals 05 DECIDE Kelly Sizing edge vs vig fractional ¼-K PUBLIC API PYTHON SKLEARN NUMPY RISK MGMT Every component interpretable. Every output falsifiable. Every decision sized.