Methodology

A complete technical reference for how Olympus Bets Analytics generates a sports betting projection — from raw data ingestion to a Kelly-sized recommendation. Every component documented with version numbers, formulas, and the empirical research that motivated each design decision.

TL;DR — How a projection is made, in 150 words

Olympus Bets Analytics produces a sports betting projection in nine steps. (1) Pull schedules, market prices, injuries, and league-specific metrics from named sources. (2) Run the league's simulation or rating stack and stamp the measured iteration count and model version where applicable. (3) Apply the calibration method supported by that league's resolved sample. (4) Compute edge only when a real market price is available. (5) Map the candidate into a profitability zone and block disqualified lanes. (6) Apply adaptive, walk-forward thresholds. (7) Size eligible picks via fractional Kelly after empirically fitted probability shrinkage. (8) Publish a timestamped record under a controlled correction policy. (9) Resolve against official results and feed eligible outcomes into later calibration. A bounded text classifier may normalize ambiguous status language or screen public copy, but never supplies probabilities, edges, ranks, or picks.


1. Monte Carlo Simulation Engine

Definition. A Monte Carlo simulation uses repeated random sampling to estimate a distribution of outcomes under uncertainty. It is the foundation of most Olympus game-model paths, while several league surfaces also use rating, market-blend, or calibrating informational layers. Outputs are labeled by league and maturity rather than presented as one universal model.

Iteration counts are engine-specific and are stamped on output where available. Mature paths commonly run 10,000 or more iterations; CFB currently runs up to 10,000 depending on its production path, while some early or informational surfaces use different budgets. The count is disclosed because Monte Carlo sampling error falls with more iterations, but iteration volume alone does not establish calibration or predictive skill.

League-specific engines

A basketball engine cannot be repurposed for hockey any more than a chess engine can play poker. Olympus Bets Analytics maintains separate production paths across 12 active leagues. Mature engines, calibrating informational models, and early-stage surfaces are labeled separately:

  • NBA — Possession Monte Carlo V5.0.2 simulates each game possession by possession (≈200 per game), with Beta-distributed shooting accuracy per player, score-state-aware play calling, 13-player rotations, and rating-anchored team efficiency. The engine handles transition opportunities, free-throw sequences, and pace-duration compensation.
  • NHL — v19 works at the shot level rather than the goal level, ingesting MoneyPuck Fenwick Shooting Value (FSV) expected-goals data and modeling shot generation by zone (slot, point, perimeter), goaltender save probability by shot type, special-teams deployment, and Bayesian shrinkage on small-sample goalie ratings. Total goals are clamped at 4.3 mean to prevent extreme outliers.
  • CBB — Possession V2.0 simulates each game possession by possession, modeling offensive rebounds and putbacks, free throws, end-game fouling and clock management, and home-court advantage (zero at neutral sites). It runs the slate until the season's EvanMiya player ratings are loaded; the player-level Savant Ultra v5.0.1 engine (EvanMiya BPR ratings, conference-strength calibration, defensive-matchup variance) is eligible again after that.
  • NFL — v2.0 runs play-by-play with drive sequencing, Expected Points Added (EPA) metrics, red-zone efficiency, and CDF-based edge calculation. Weekly automated refresh handles roster turnover and injury impact.
  • MLB — Pitch Sim V5.2 PA-Hybrid combines pitch-level context with a plate-appearance model using Statcast matchups, platoon splits, catcher framing, bullpen fatigue, park geometry, weather, and umpire tendencies.
  • CFB — Power Rating v1 + PBP v3.1 publishes a margin from opponent-adjusted efficiency, talent and roster churn, plus a pre-kickoff QB-availability channel. A play-by-play Monte Carlo supplies totals and score distributions; missing ratings fall back explicitly to the tagged Elo-anchored path.
  • Soccer — V16.3 PBP uses FBref expected-goals data, isotonic probability calibration, score-state modeling (teams behave differently when leading versus trailing), referee modeling, formation matchups, and a discrete extra-time and penalty-shootout simulation for cup competitions.
  • LoL — Championship v2.2 uses a five-layer Glicko-2 rating system blended with market odds, with patch-aware meta adjustments, side win-rate modeling, and staleness regression for teams with infrequent matches.
  • Golf — Conditional Sim V3.2 runs round-by-round with mid-tournament anchoring, market-adaptive blends, per-round weather, directional wind, continuous-wave field-shared noise (α = 0.40 → ρ = 0.16), and historical strokes-gained overrides for established players.
  • Tennis — Elo Monte Carlo V2 uses surface-aware Elo and ATP/WTA head-to-head context; its calibration layer remains explicitly labeled as calibrating.
  • WNBA — Possession Monte Carlo v0.5 models Four Factors, pace, form, rest, and lineup-aware injury impact. It is currently informational and not part of graded premium performance.
  • CS2 — Glicko-2 / Map Sim combines per-map ratings and market context. The round-simulation path remains shadow or explicitly tagged while evidence accumulates; the public surface is labeled early-stage.

Production outputs carry an engine or model_version tag, plus provenance fields appropriate to the league. Public engine manifests expose current labels, and monitoring checks known contracts so drift is visible rather than silently relabeled.

Reproducibility

Simulation outputs carry model-version and input-timing metadata, and deterministic seeds are used on engines that support replay. Archived inputs and version tags make a run auditable without pretending that a later rerun against changed source data is the same event.

Full guide: Monte Carlo simulation in sports betting →


2. Kelly Criterion + Bayesian Probability Shrinkage

Definition. The Kelly Criterion, derived by John Kelly at Bell Labs in 1956, is the bet-sizing fraction that maximizes the expected logarithm of bankroll over time. The closed form is f = (bp − q) / b, where b is the decimal odds minus one, p is the probability of winning, and q is the probability of losing (1 − p). Kelly is provably optimal in the sense that no other strategy achieves higher long-run growth rate without taking on extra variance.

In practice, full Kelly sizing is too aggressive for human bettors. The geometric drawdown distribution under full Kelly is heavy-tailed, and a sequence of unlucky outcomes can wipe out a bankroll even when the long-run edge is real. Olympus Bets Analytics uses fractional Kelly — Kelly percentages are mapped to a discrete unit scale capped at 3.0u — and applies a Bayesian probability shrinkage step before Kelly is computed.

Bayesian Kelly shrinkage

Before any Kelly fraction is computed, the calibrated model probability is shrunk toward 50% by a fixed blend of model output and the 50% prior. The economic effect is significant — it meaningfully reduces the Kelly fraction on high-confidence probabilities before sizing. The shrinkage step is the single most important guard against the platform's most expensive failure mode — STRONG-tier inflation from overconfident model output. The blend weights were tuned empirically on a 6,101-game validation set and are proprietary and periodically re-fit; tighter shrinkage produces under-betting on real edges, looser shrinkage produces blow-ups in model-blind regimes.

Kelly percentage to units mapping

Kelly %UnitsTier
0 – 1%0.5uSpeculative
1 – 3%1.0uStandard
3 – 6%1.5uConfident
6 – 10%2.0uStrong
10 – 15%2.5uVery Strong
15%+3.0uMaximum

League-specific unit caps

Different sports have different variance profiles. A 60% edge in the NFL (a 17-game regular-season sample) carries more uncertainty than a 60% edge in the NBA (an 82-game sample). Caps are calibrated to that variance:

LeagueMax UnitsRationale
NBA / NFL / MLB / CFB3.0uDeep markets, high liquidity, large samples
NHL2.5uGoaltending variance, parity
CBB2.5uLarge spread variance in college
Soccer2.0uThree-way market — draw counts as a loss for moneyline

Full guide: Kelly Criterion in sports betting →  |  Interactive Kelly calculator →


3. Probability Calibration (Platt + Isotonic)

Definition. Probability calibration is the process of adjusting raw model probabilities so that the predicted probability of an outcome matches the empirical frequency of that outcome over a large historical sample. A model is well calibrated when its 70% predictions win 70% of the time over a meaningful sample, regardless of league, market, or conviction tier.

Raw model probabilities can be miscalibrated, especially at the most confident tails. Olympus fits calibration only where a league-and-market sample is large enough to support it. A production path may use Platt scaling, isotonic regression, a market blend, or a labeled calibrating fallback; no single calibrator is claimed to cover every league.

Platt scaling

Platt scaling fits a parametric sigmoid P_calibrated(x) = 1 / (1 + exp(A·x + B)) to historical (raw probability, outcome) pairs. Olympus uses fitted Platt artifacts on supported production paths and evaluates them with proper scoring rules such as Brier loss. Hyperparameters and measured improvement belong to the dated artifact or validation report, not a permanent sitewide constant.

Isotonic regression

Isotonic regression fits a non-parametric, monotonically non-decreasing step function from raw probabilities to empirical frequencies. Where used, artifacts are partitioned by the relevant league, market, and engine version so materially different output distributions are not silently pooled.

Ensemble stacking

Some production paths use fitted model/market blends or ensemble components after validation. They are not universal: the public engine label and archived output identify the path used, while shadow components remain excluded from published decision inputs until promoted.

Self-correcting feedback loop

Resolved outcomes enter scheduled calibration, threshold, and monitoring workflows subject to minimum-sample and no-leakage rules. Updates are versioned and cadence-specific; a single bad day does not automatically rewrite every league's next projection.

Full guide: Bayesian sports betting and overconfidence correction →


4. Edge Calculation Against the Market

Definition. Edge is the difference between the model's calibrated win probability and the market's implied probability at the offered odds, expressed in percentage points. A 5-point edge means the model assigns a 5pp higher probability than the sportsbook line implies.

For a moneyline bet at -110, the implied probability is approximately 52.4%. If the calibrated model probability is 57%, the edge is 4.6 percentage points. For a spread bet, the edge is computed from the simulated cover distribution: the percentage of Monte Carlo iterations in which the team covered the spread minus the implied probability from the offered price.

Edge is computed against the best available line across tracked sportsbooks (line shopping is a separate quality gate). Because a single book's line can be sharper or softer than consensus, this matters: a 4-point edge against a soft book may collapse to 1 point against the consensus close. Olympus Bets Analytics also tracks Closing Line Value (CLV) — whether the price at projection publication was better than the eventual closing price. Consistently beating the closing line is one of the few empirically robust indicators of a real edge, distinct from variance.

Full guide: Expected Value in sports betting →  |  Full guide: Closing Line Value →


5. Profitability Zone Engine (15-dimensional) — a.k.a. Pattern Edge

Definition. A profitability zone (marketing name: Pattern Edge) is a sub-niche of the betting universe defined by a tuple of 15 dimensions — league, bet type, side (home or away), favorite/underdog, edge bucket, probability bucket, time of day, day of week, and others. The profitability-zone engine computes long-run win rate, units, and z-statistic for each zone, classifies it as GREEN, YELLOW, or RED, and uses those tags to gate which projections are surfaced.

Blanket league-level filtering is too coarse. "NBA spreads are bad" misses the fact that NBA home favorites in the 5–10% edge bucket are historically profitable while NBA away underdogs in the same edge bucket are historically catastrophic. The zone engine exposes this granularity and acts on it surgically.

Zone classification rules

TagCriteriaEffect
GREEN z > 1.0 AND win rate > 54% AND n ≥ 30 AND OOS validation (held-out 14d WR ≥ 50% with n ≥ 5) Rank-score boosted ~1.10× via continuous zone multiplier
YELLOW Default (everything not GREEN or RED) Premium: blocked unless in-sample units ≥ +2.0u AND n ≥ 30 AND WR ≥ 52.5% AND z ≥ 0 AND OOS not collapsing. Free: passes through.
RED z < −1.0 AND win rate < 48% AND n ≥ 25 Hard-blocked from premium, plus a ROI-gated catch-all at n ≥ 30 AND units ≤ −10u AND ROI ≤ −3%

Walk-forward training split

As of April 2026, the zone engine uses a walk-forward training/holdout split: bets at least 14 days old are the training set (with a 21-day recency decay), and the most recent 14 days are the held-out out-of-sample validation set (flat-weighted). Base tags are set from training, then validated against OOS. A zone classified GREEN by training is demoted to YELLOW if its OOS win rate falls below 50%; a YELLOW zone can be promoted to GREEN if its OOS win rate exceeds 60%. This catches in-sample overfits — on the April 2026 baseline, 28 in-sample GREEN zones were demoted by OOS validation. The engine writes an oos_override note into the zone JSON for every override so the decision is auditable.

Hierarchical lookup

Zone keys are looked up most-specific-first, then progressively broader: drop probability bucket → drop edge bucket → drop favorite/underdog → drop side → drop bet type. This ensures that a candidate with no exact zone match still receives the most specific available signal rather than falling through to a generic league-level tag.


6. Adaptive Regime Calibrator

Definition. A regime calibrator is a meta-controller that adjusts model thresholds in real time based on a rolling window of recent performance. It detects when the current regime — defined by recent calibration accuracy, edge realization, and league-specific variance — has shifted, and tightens or relaxes the minimum-edge threshold accordingly.

Static thresholds decay. A 4% minimum edge that was profitable on 2025 data may be unprofitable on 2026 data because the underlying market has tightened, or because team rosters have produced a regime shift in scoring variance. Without a regime layer, the system would rigidly apply stale thresholds during streaks in either direction. The regime calibrator runs daily over a 14-to-30 day rolling window per league and bet type; if recent accuracy drops below the calibrated baseline, the minimum-edge threshold is tightened by a calibrated step. Conversely, if recent accuracy exceeds baseline, thresholds are relaxed to capture more of the regime.

The regime layer composes with the profitability-zone engine: a bet must clear both the zone filter and the regime-tightened minimum edge to surface as a recommendation. This is intentional. Zones answer "is this kind of bet historically profitable?" and the regime calibrator answers "is the model's current edge estimate trustworthy in the current market state?" — two different questions with two different answers.


7. ML Conviction → Spread Cascade (NBA)

Definition. The conviction cascade is a self-learning routing layer specific to NBA where a high-conviction moneyline signal can reweight the corresponding spread recommendation, but never the other direction. It encodes the empirical observation that ML conviction is a stronger leading indicator than spread conviction in the NBA market.

The cascade is implemented as a learned weight rather than a hardcoded rule. When the model produces a STRONG-tier moneyline edge on a side, the spread recommendation on the same side receives a continuous rank-score adjustment proportional to the ML edge. There is no symmetric reverse — a strong spread signal does not reweight the moneyline — because the asymmetry is itself an empirical finding from the resolved-pick history. The weight is recalibrated on every resolved-pick batch and stored in data/best_bets_tracking/ml_conviction_spread_cascade.json.


8. Data Sources and Freshness Gates

Definition. Projection inputs come from named data sources and carry freshness or provenance metadata. The system does not invent a sportsbook price: if the required price is absent, no edge is calculated for that market. Other missing inputs follow league-specific fail-closed, fallback, or clearly tagged informational behavior.

  • Schedules and final scores — ESPN API. Authoritative for game times, scores, records, and game state.
  • Live odds — The Odds API, polled multiple times per day across all major US sportsbooks.
  • Injuries — Multi-source aggregator with cross-validation across ESPN, RotoWire, and team beat reports. Players flagged OUT or OFS are excluded from per-player simulation samples and surfaced as injury impact in the writeup.
  • NBA player profiles and ratings — Per-team ESPN-derived profiles in data/nba/player_profiles/{TEAM}_2025_players.json.
  • NHL advanced metrics — MoneyPuck Fenwick Shooting Value (FSV) for expected goals, plus league-wide Corsi and danger-zone splits.
  • CBB efficiency and player ratings — EvanMiya BPR for individual player ratings, ESPN for win/loss records (overwrites EvanMiya records as authoritative live source).
  • MLB pitch-level metrics — Statcast pitch-by-pitch data, ballpark dimensions, weather forecasts with directional wind, and umpire strike-zone tendency tables.
  • Soccer expected goals — FBref xG with isotonic per-league calibration; Understat as a secondary source for shot-by-shot data.

Freshness and text-intelligence gates

Upstream files are checked against source- and league-specific freshness contracts. A stale critical input can trigger a refresh, suppress a market, or stop publication; the pipeline guardian reports violations. Freshness limits are not represented as one universal number because schedules, odds, injuries, and slower-moving ratings have different valid lifetimes.

Text-intelligence boundary. A bounded classifier is used where typed text classification adds information: normalizing ambiguous injury/status language, reviewing entity aliases, and screening outbound public copy for unsupported phrasing. Official designations and deterministic entity mappings take precedence. The classifier is fail-soft and cannot create or modify a model probability, market edge, unit size, rank score, or published pick.


9. Quality Gates (Multi-Layer Filtering)

Definition. A quality gate is a binary check that a candidate projection must pass before it is surfaced as a recommendation. Olympus Bets Analytics layers several independent gates so that the system is conservative by composition rather than by any single threshold being conservative.

  • Minimum edge threshold — Per-league, per-bet-type, regime-adapted. Typical floor is 3–8 percentage points.
  • Minimum probability threshold — Per league, calibrated from each league's measured accuracy-by-cover-probability curve.
  • Profitability-zone check — RED zones are hard-blocked, YELLOW zones must clear in-sample and OOS criteria, GREEN zones are boosted.
  • Regime gate — Adaptive minimum edge based on rolling recent performance.
  • Edge cap — 25% maximum edge for premium, 30% for free. Edges above 25% historically had 43.3% WR (n = 127); edges above 30% had 33.3% WR (n = 46). The caps are not arbitrary — they reflect the overconfidence-inversion finding.
  • ML odds floor — ML_ODDS_HARD_CAP = -130 universal in utils/units_calculator.py; per-league overrides exist for tighter floors (e.g., LoL ML at -160 after the April 2026 Karmine -174 loss).
  • Premium minimum odds floor — PREMIUM_MIN_ODDS = -200 universal floor.
  • Data freshness — Underlying data must be within its freshness contract.
  • Game start filter — Games already in progress are auto-excluded.

The gates compose. A 4-point edge in a GREEN zone with stale injury data does not pass. A fresh-data 6-point edge in a RED zone does not pass. A 28% edge in a GREEN zone is capped at the 25% premium ceiling. Pass-through is rare by design.


10. Production Engine Versions

Every simulation output writes a model_version string into the result file. The pipeline guardian validates this against the canonical version table on every run; mismatches generate an alert. The current canonical versions:

SportEngineVersionOutput cache
NBAPossession Monte Carlov5.0.2-calibrated-possessiondata/nba/cache/{date}_simulations.json
NHLShot-Quality Monte Carlov19data/nhl/elite_recommendations/nhl_v17_sim_{date}.json
CBBCBB Possessionpossession_v2:CBB Possession V2.0data/cbb/simulation_archive/{date}.json
NFLPlayer-Level Play-by-Play Simv2.0data/nfl/cache/season/2026/week_{n}.json
MLBPitch Simv5.2-pa-hybriddata/mlb/cache/today.json
CFBPower Rating + PBP Simcfb_pbp_v3.1+pr1data/cfb/simulation_archive/{date}.json
SoccerPBPv16.3(per-fixture)
LoLChampionshipv2.2olympus_esports_lol/outputs/simulations_ultra.json
GolfConditional Simv3.2data/golf/cache/today.json
TennisElo Monte Carlotennis_elo_mc_v2 (calibrating)(per-match)
WNBAPossession Monte Carlownba-0.5-possession (informational)data/wnba/projections/{date}.json
CS2Glicko-2 / Map Simcs2_glicko2_v0.1 (early)data/cs2/simulation_archive/{date}.json

11. Key Research Findings

A handful of empirical findings drive most of the platform's design decisions. Each is reproducible from the resolved-pick ledger.

  • Universal overconfidence inversion. Across every league tracked, the highest-confidence and highest-edge projections perform worse than mid-confidence projections, not better. This is the single most expensive lesson encoded in the system. The 25% premium edge cap, the Bayesian Kelly shrinkage, and the conviction-tier-aware rank scoring all derive from this finding.
  • Accuracy varies systematically with cover probability. Per-league accuracy-by-cover-probability curves are measured continuously, and each league's minimum probability threshold is set from its own curve rather than a universal constant.
  • Market blending beats raw model output. In several leagues, blending the model's probability with the market-implied probability is measurably more accurate than treating model output as ground truth. The blend weights are league-specific and proprietary.
  • Bayesian Kelly shrinkage is not a free parameter. Tighter shrinkage produces under-betting on real edges; looser shrinkage produces blow-ups during model-blind regimes. The blend was tuned on a 6,101-game validation set and updated against a held-out OOS window.
  • Performance is regime-dependent and must not be frozen into methodology claims. Rolling 30-, 60-, and 90-day results can change materially as games resolve. Core Premium, Oracle, combined Premium, free, and the all-time population are therefore disclosed separately on the live track record, with its as-of timestamp and sample sizes, instead of being summarized here as a permanent positive or negative finding.

12. Timestamped Record, Corrections, and Resolution

Definition. Olympus Bets records every published projection with its publication-time fields in data/best_bets_tracking/best_bets_picks.jsonl; resolved outcomes live in data/best_bets_tracking/best_bets_resolved.jsonl and are mirrored to the public CSV download. A verified official-score, grading, or source-data error may be regraded through a controlled correction workflow that preserves the prior row, supporting evidence, and backup/manifest trail. Legitimate losses are not removed.

Every record contains: date, league, market, matchup, line, odds, model probability, edge percentage, units, confidence tier, and publication timestamp. Resolved records additionally contain the WIN/LOSS/PUSH outcome, units won, the actual home and away scores, and the resolution timestamp. The ledger is the canonical source of truth — every performance number on the track record, llms.txt, and /webmcp/api/performance endpoint is computed from this file.

Automated resolvers match unresolved projections against official final scores or supported box-score/stat feeds, write WIN/LOSS/PUSH/VOID outcomes, and compute units won. Human review is limited to documented data-quality exceptions; any approved regrade follows the correction audit above. Postponements, cancellations, pushes, and source-confirmed invalid markets retain explicit non-win/non-loss outcomes rather than disappearing from the population.


13. How This Compares to Other Platforms

Olympus Bets Analytics differs from the major sports analytics platforms along five axes. None of these are aesthetic preferences — each reflects an empirical or architectural decision that materially affects the output.

  • Full Monte Carlo simulation, not regression. Most competitor platforms use linear or logistic regression on engineered features. Regression collapses uncertainty into a point estimate; Monte Carlo preserves the full distribution. The Kelly Criterion requires a probability distribution as input, so a regression model cannot produce mathematically optimal sizing without a separate uncertainty estimate (which most competitors do not publish).
  • Kelly Criterion with Bayesian shrinkage, not flat unit sizing. Flat unit sizing throws away the information content of edge magnitude. Two bets with the same direction but a 5% edge versus a 12% edge get the same stake under flat sizing — and that is provably suboptimal for long-run growth.
  • Per-league isotonic calibration, not a global recalibrator. NBA spread calibration curves and NHL totals calibration curves are different shapes. A single global calibrator averages them out, which is worse than no calibrator on the leagues at the tails of the average.
  • Walk-forward profitability zones, not in-sample tuning. The April 2026 walk-forward audit demoted 28 in-sample GREEN zones because their out-of-sample win rate collapsed below 50%. Without an OOS holdout, all 28 would have continued to receive a rank-score boost. In-sample tuning is the single biggest source of shipped overfit in the sports modeling industry.
  • Correction-audited public record, not a marketing subset. The CSV at /track_record.csv contains published resolved projections, including losses. Verified data corrections retain prior values and evidence instead of silently rewriting history.

Compare side-by-side with other platforms →


14. Olympus Oracle — Prediction Market Intelligence

Definition. Olympus Oracle is the prediction-market intelligence layer that ingests whale trades from Polymarket and Kalshi, classifies wallets via Bayesian scoring on resolved-outcome history, and cross-references the signals against Olympus's own Monte Carlo simulations. It is the first publicly available model-vs-market edge detector — no competitor crosses internal Monte Carlo output against external prediction-market positioning at this resolution.

The pipeline has five stages: (1) Trade ingestion — read-only Polymarket and Kalshi clients pull recent trades and active markets every 15 minutes. (2) Wallet profiling — every distinct wallet is profiled by ROI on resolved trades, win rate, sport specialization, and entry timing relative to event start. (3) Insider classification — a Bayesian scorer flags wallets whose historical resolution rate is statistically inconsistent with a random walk; thresholds tighten as evidence accumulates. (4) Signal generation — when a classified insider takes a position in a market that maps to one of Olympus's tracked games, a signal is generated with a compound confidence score (10 components: whale consensus, entry zone, conviction, wallet tier, sport bonus, specialist, sim adjustment, copy-trade, pre-news, EOA-ring). (5) Cross-validation — the signal is compared against the Olympus Monte Carlo projection for the same game; agreement amplifies the score, disagreement triggers an audit flag.

Critical rules: Oracle is read-only. The Kalshi client exposes no order methods; we never place trades against the surface we are reading. Stale signals (event date in the past) are filtered before publication. Wallet scores are derived only from resolved data — never synthetic or projected. Polymarket wallet addresses are stored as proxy addresses, not the underlying EOA, matching Polymarket's published wallet model.

Live Oracle signals (premium) are surfaced via the /oracle preview component on the platform and the /oracle Discord command. The configuration registry lives at prediction_market/config/pm_config.py; thresholds are bootstrap defaults that self-tighten as resolved-outcome volume grows.


15. Athena — AI-Authored Recommendation Writeups

Definition. Athena is the AI authoring system that generates every premium pick's narrative — the executive summary, the factor analysis, the risk enumeration, the "why this beats the market" thesis. Athena does not generate projections or set lines; the upstream Monte Carlo engine produces the numbers and Athena produces the prose that explains them, given the engine's output as input.

Athena is bounded by three guarantees: (1) No invented data. Athena receives the simulation output dict (probabilities, scores, edge, units, key model factors, injury status) and may compose a writeup only from those fields. Writeups never reference statistics not present in the input. (2) Version-tagged. Every Athena writeup carries a writeup_version string written into the same record as the projection, so an outcome that drifts from the prose can be traced to the exact prompt and model version that generated it. (3) Append-only. Writeups are never edited retroactively. If a writeup is wrong, a corrected record is appended; the original remains in the ledger.

Athena outputs are stored alongside their picks in data/best_bets/{date}/premium_ledger.json. Free-tier picks receive a shorter writeup via the same system. The MCP get_todays_projections tool returns the short writeup by default; verbose=true returns the full long-form text.


See the methodology in action

Read today's free projections to see edge calculations, Kelly-sized units, and the full reasoning chain on real games — or open the live track record to verify resolved outcomes against published projections.

View Free Projections View Track Record

Put the methodology to work

Get the current free board when qualified projections are available. Confirm recurring delivery from your inbox.