⚽ Tomulator
Overview
β—ˆDashboardπŸ“…Today's gamesβ—ŽState of play
Money
πŸ’·Bets & strategies
Explore
⊞Leagues & seasonsπŸ“Metricsβ–€Data sources
Engine room
🎲SimulationsπŸ§ͺLab≣Catalog?How this works

Metric registry

Every number the machine computes about teams, players and matches β€” 143 metrics, 15,422,978 stored values. Add one to registry/metrics.json and it becomes queryable, chartable and testable everywhere.

The honesty rule: metrics marked before kickoff use only information available before a match starts, so they're safe to predict with. Metrics marked outcome are what actually happened β€” models try to predict them but never peek at them. This split is what keeps every backtest honest.

Basketball (NBA)

MetricWhen knownValuesWhat it measures
congestion 21dbefore kickoff7,940Games played in the previous 21 days.
elobefore kickoff7,940NBA Elo entering the game (K=20, home advantage 100).
elo momentum (last 5)before kickoff7,774Elo change over last 5 games.
matches since winbefore kickoff7,901Games since last win (capped 15).
points against avg (last 10)before kickoff7,624Average points conceded over previous 10 games.
points for avg (last 10)before kickoff7,624Average points scored over previous 10 games.
rest daysbefore kickoff7,901Days since previous game (capped 10; back-to-back = 1).

Betting-market signals

MetricWhen knownValuesWhat it measures
ah linebefore kickoff28,318Opening Asian handicap line (home side) β€” the market's own margin-of-victory forecast.
disagreement homebefore kickoff69,302Cross-book relative spread of home price β€” market uncertainty.
overround 1x2before kickoff74,756Bookmaker margin on the opening 1x2 market β€” pricing confidence signal.
p awaybefore kickoff74,756Opening-odds de-vigged away-win probability.
p drawbefore kickoff74,756Opening-odds de-vigged draw probability.
p homebefore kickoff74,756Opening-odds de-vigged probability of home win β€” the market's opinion as a feature.
p over25before kickoff29,343Opening-odds de-vigged P(3+ goals).
sharp soft gap awaybefore kickoff42,610Sharp-vs-soft divergence at the open: de-vigged P(away) at Pinnacle minus the soft-book consensus median. Positive = sharp money rates away higher than recreational books. The origination signal nobody re-sells.
sharp soft gap drawbefore kickoff42,610Sharp-vs-soft divergence at the open: de-vigged P(draw) at Pinnacle minus the soft-book consensus median. Positive = sharp money rates draw higher than recreational books. The origination signal nobody re-sells.
sharp soft gap homebefore kickoff42,609Sharp-vs-soft divergence at the open: de-vigged P(home) at Pinnacle minus the soft-book consensus median. Positive = sharp money rates home higher than recreational books. The origination signal nobody re-sells.

Match conditions & context

MetricWhen knownValuesWhat it measures
bttsoutcome137,822Both teams scored.
comeback happenedoutcome75,410Final winner was trailing at half-time.
drought gapbefore kickoff136,680Home winless run minus away winless run.
elo gapbefore kickoff137,822Home Elo minus away Elo.
first goal minuteoutcome63,984Minute of the first goal (from the event timeline; only contests with events).
form gapbefore kickoff132,759Home 5-match form points minus away.
ht resultoutcome75,410Half-time result (H/D/A).
humidity pctoutcome9,880Relative humidity (%) at kickoff hour at the match location. Forecast stand-in, see match.temp_c. OBSERVED weather (post-contest fact β€” excluded from leak-free features; review #10).
late goaloutcome68,862Any goal in the 85th minute or later (late drama).
mismatchbefore kickoff137,822Absolute Elo gap β€” how lopsided the pairing is.
momentum clashbefore kickoff132,759Home Elo momentum minus away β€” form trajectory differential.
penalty awardedoutcome69,092Was a penalty kick taken in this match (scored or missed)? Target for the ref pointing tendency.
points gapbefore kickoff114,839Home points minus away points before kickoff.
rainedoutcome9,880Did it rain during the match window (kickoff to +2h, β‰₯0.1mm)? Forecast stand-in, see match.temp_c. OBSERVED weather (post-contest fact β€” excluded from leak-free features; review #10).
rainfall mmoutcome9,880Total precipitation (mm) during the match window (kickoff to +2h). Forecast stand-in, see match.temp_c. OBSERVED weather (post-contest fact β€” excluded from leak-free features; review #10).
rank gapbefore kickoff114,839Home rank minus away rank before kickoff (positive = home worse-placed). The dated 'who is above whom' feature.
red card shownoutcome68,862At least one red card shown (from the event timeline).
ref cards avgbefore kickoff49,785Referee's average total cards per match before this one (min 10 matches).
ref fouls avgbefore kickoff49,778Referee's average total fouls per match before this one (min 10 matches).
ref pen ratebefore kickoff58,047Referee's prior penalty kicks (scored or missed) per match before this one, min 5 prior matches. The pointing-to-the-spot tendency.
ref var ratebefore kickoff58,058Referee's prior VAR-interventions per match (any Var event: goal/penalty/card reviews), expanding history over our stored event feeds, min 5 prior matches. Officiating microstructure nobody prices.
resultoutcome137,822Full-time result: H, D or A.
second half goalsoutcome75,410Goals scored in the second half (both teams).
stakesbefore kickoff97,479How much the match matters: proximity of either side to the title race or drop zone (points gap <= 8), scaled by season progress. 0 = dead rubber, ~1 = late-season six-pointer.
state gapbefore kickoff137,572Home state_index minus away state_index β€” the composite of composites.
style clash cornersbefore kickoff78,708Home corners won + away corners conceded: expected corner pressure.
temp coutcome9,880Air temperature (Β°C) at kickoff hour at the match location. Actual conditions stand in for the near-perfect pre-kickoff forecast. OBSERVED weather (post-contest fact β€” excluded from leak-free features; review #10).
tempobefore kickoff66,366Combined shot volume of both sides β€” match tempo proxy.
total cardsoutcome67,953Total cards shown (yellow + red, both sides).
total cornersoutcome67,563Full-time total corners.
total foulsoutcome67,179Total fouls committed (both sides).
total goalsoutcome137,822Full-time total goals.
var intervenedoutcome69,092Did VAR intervene in this match (any review event)? Target for the ref VAR rate.

Baseball (MLB)

MetricWhen knownValuesWhat it measures
congestion 21dbefore kickoff13,032Games played in the previous 21 days.
elobefore kickoff13,032MLB Elo entering the game (K=4 β€” 162-game seasons need slow updates; home advantage 35).
elo momentum (last 5)before kickoff12,881Elo change over last 5 games.
matches since winbefore kickoff13,000Games since last win (capped 15).
rest daysbefore kickoff13,000Days since previous game (capped 7).
runs against avg (last 10)before kickoff12,730Average runs conceded over previous 10 games.
runs for avg (last 10)before kickoff12,730Average runs scored over previous 10 games.
starter era awaybefore kickoff29Probable away starter's season ERA at time of capture.
starter era gapbefore kickoff27Away starter ERA minus home starter ERA at time of capture (positive = home starter sharper).
starter era homebefore kickoff31Probable home starter's season ERA at time of capture.

Tennis players

MetricWhen knownValuesWhat it measures
congestion 21dbefore kickoff28,876Matches played in the previous 21 days.
elobefore kickoff28,876Tennis Elo rating entering the match (K=32, no side advantage, set-margin multiplier).
elo momentum (last 5)before kickoff26,706Elo change over the last 5 matches.
goals prevented (last 10)before kickoff111,361Goals prevented per match vs the pool-average save rate, rolling last 10 (min 5). PSxG-lite: positive = stopping more than an average keeper would from the same shots.
matches since winbefore kickoff28,308Matches since last win (capped 20).
rest daysbefore kickoff28,308Days since the player's previous match (capped 30).
save pct (last 10)before kickoff114,799Keeper's rolling save percentage saves/(saves+conceded) over his last 10 appearances (min 10 shots faced). The shot-stopping number.
saves avg (last 10)before kickoff115,306Keeper's rolling saves per appearance over his last 10 (min 3), strictly prior. The volume side of the save prop.

Football teams

MetricWhen knownValuesWhat it measures
accuracy ratiooutcome133,144Shots on target / total shots this match. High = they know what to do with their chances; low = hit-and-hope. The chance-intelligence number.
accuracy ratio (last 10)before kickoff128,708Rolling mean of team.accuracy_ratio over the previous 10 matches (leak-free).
accuracy ratio (last 3)before kickoff131,208Rolling mean of team.accuracy_ratio over the previous 3 matches (leak-free).
accuracy ratio (last 5)before kickoff131,208Rolling mean of team.accuracy_ratio over the previous 5 matches (leak-free).
blown lead rate (last 20)before kickoff141,062Share of the last 20 games where a half-time lead was not converted to a win (bottling index).
box shareoutcome127,609Shots inside the box / total shots this match β€” chance QUALITY. Low = shooting from distance out of ideas.
box share (last 5)before kickoff125,861Rolling mean of box share over the previous 5 matches (leak-free).
cards avg (last 5)before kickoff268,831Average cards received (yellow + red) over the previous 5 contests.
cards shownoutcome132,862Cards shown to this side in the match (yellow + red, API-Football).
coach daysbefore kickoff233,729Days since the current coach arrived (API-Football career spells; historical coverage from spell start dates). The 'what changed - coach?' factor.
comeback rate (last 20)before kickoff141,062Share of the last 20 games won from behind at half-time (never-say-die index).
congestion 21dbefore kickoff275,644Matches played in the previous 21 days (fixture pileup).
conversion (last 5)before kickoff133,683Shot conversion: goals per shot, previous 5.
corner diff avg (last 5)before kickoff158,930Average corner differential over previous 5.
corners against avg (last 5)before kickoff158,930Average corners conceded over the previous 5 contests.
corners for avg (last 5)before kickoff158,930Average corners won over the previous 5 contests.
corners takenoutcome135,824Corners taken by this side in the match (API-Football).
corners volatility (last 10)before kickoff197,058Std-dev of corners won, previous 10.
defensive leak (last 5)before kickoff133,683Goals conceded per shot faced, previous 5.
dominance (last 5)before kickoff133,741Share of total shots in own matches, previous 5.
elobefore kickoff275,644Elo rating entering the contest (K=20, home advantage 60, goal-margin multiplier).
elo momentum (last 5)before kickoff268,832Elo change over the last 5 matches β€” trajectory, not level.
eye test v1before kickoff131,149The eye test, formalized: 'damn, this team looks good' = z-combo over the last 5 matches of shots on target (25%), xG created (20%), threat rate (20%), chance intelligence (15%), possession (10%), pass accuracy (10%). Threat-weighted so sterile domination scores low.
eye trend v1before kickoff129,019Looking better than their own normal: threat components over the last 3 matches minus the same over the last 10. Positive = heating up, negative = going flat β€” the time-chunk comparison.
first sub minute (last 10)before kickoff134,551Rolling mean minute of the team's FIRST substitution over its last 10 matches with a recorded sub (strictly prior). Coach proactivity fingerprint: ~46 acts at half-time, ~70 waits.
form points (last 5)before kickoff268,831League points collected over the previous 5 contests (any venue).
goal diff avg (last 5)before kickoff268,831Average goal differential over previous 5.
goals against avg (last 5)before kickoff268,831Average goals conceded over the previous 5 contests.
goals for avg (last 5)before kickoff268,831Average goals scored over the previous 5 contests.
goals volatility (last 10)before kickoff262,834Chaos index: std-dev of goals scored, previous 10.
h2 goals (last 10)before kickoff145,638Average second-half goals scored over the last 10 games (late-game engine).
h2h win rate (last 5)before kickoff133,958Score vs THIS opponent over their last 5 meetings (win=1, draw=0.5), any venue, strictly pre-kickoff.
ht lead rate (last 20)before kickoff141,062Share of the last 20 games this team led at half-time.
keeper form v1before kickoff116,590Save% (rolling 10) of the keeper who STARTED the team's previous match β€” the last line of defence as known before kickoff, no team-news leak. Books rarely reprice a keeper change.
league pointsbefore kickoff229,678League points accumulated before kickoff.
league rankbefore kickoff229,678League table position before kickoff (running points table, recomputed leak-free for all seasons). Lower = better.
matches since blankbefore kickoff274,203Matches since last failing to score (scoring streak length, capped 20).
matches since clean sheetbefore kickoff274,203Matches since last clean sheet (defensive drought, capped 20).
matches since winbefore kickoff274,203Matches since last win (winless run, capped 20).
new coachbefore kickoff233,729Coach changed within the last 60 days - the new-manager-bounce window.
pass acc avg (last 5)before kickoff126,583Average pass accuracy % over the previous 5 matches. Leak-free: only games strictly before kickoff.
pass accuracyoutcome128,333Completed-pass percentage in this match.
possessionoutcome133,706Share of the ball this side had (%), from API-Football match statistics.
possession avg (last 5)before kickoff131,801Average possession % over the previous 5 matches. Leak-free: only games strictly before kickoff.
rest daysbefore kickoff274,203Days since the competitor's previous contest (capped at 30).
scorer concentrationbefore kickoff117,396Top scorer's share of the team's season goals before kickoff (from timed goal events). 1.0 = one-man team.
season ppgbefore kickoff261,587Points per game in the current season before this contest.
shot diff avg (last 5)before kickoff133,741Average shot differential over previous 5.
shots for avg (last 5)before kickoff133,741Average shots taken over the previous 5 contests.
shots inside boxoutcome128,340Shots taken inside the box in this match.
shots on targetoutcome134,052Shots on target in this match.
shots totaloutcome134,066Total shots attempted (API-Football).
skill v1before kickoff126,081Invented composite: 'skill on the ball' = 40% pass accuracy + 30% possession + 30% chance creation (xG for), each z-normalized, over the last 5 matches. Defined purely as registry data (ComboMetric) β€” the template for any made-up factor.
solidity v1before kickoff30,936The defensive eye test β€” 'the other team looks worse': MINUS xG conceded (45%), MINUS shots-on-target conceded (35%), MINUS goals conceded (20%), last 5, z-normalized. High = hard to play against.
sot against avg (last 5)before kickoff132,087Shots on target CONCEDED per game over the previous 5 matches. Leak-free: only games strictly before kickoff.
sot for avg (last 10)before kickoff129,583Rolling mean of team.shots_on_target over the previous 10 matches (leak-free).
sot for avg (last 3)before kickoff132,099Rolling mean of team.shots_on_target over the previous 3 matches (leak-free).
sot for avg (last 5)before kickoff132,099Shots on target per game over the previous 5 matches. Leak-free: only games strictly before kickoff.
squad agebefore kickoff46,812Minutes-weighted mean age of the side's previous-match lineup (person DOB from bio-profile enrichment; strictly prior lineup, no team-news leak).
state indexbefore kickoff275,146'How is this team right now' β€” weighted blend of strength (Elo), trajectory (momentum), attack/defence balance, control, home form, drought and fatigue. Each input z-scored against the past only. The first of many composites.
sterile dominance v1before kickoff131,271Possession without punch: +possession (35%) +pass accuracy (25%) MINUS threat rate (40%), last 5. High = they keep the ball and do nothing with it β€” the 'it's just them defending well / passing around the back' detector.
threat rateoutcome133,674Total shots per % of possession this match. High = the ball does something when they have it; low with high possession = sterile passing (or the other side parked).
threat rate (last 10)before kickoff129,295Rolling mean of team.threat_rate over the previous 10 matches (leak-free).
threat rate (last 3)before kickoff131,770Rolling mean of team.threat_rate over the previous 3 matches (leak-free).
threat rate (last 5)before kickoff131,770Rolling mean of team.threat_rate over the previous 5 matches (leak-free).
travel kmbefore kickoff10,624Away side's great-circle distance from home city to the match city (clubs with known coordinates only).
venue ppg (last 5)before kickoff262,867Points per game over previous 5 matches at the same venue side (home form for home side).
xgoutcome32,563Expected goals (xG) posted in this match β€” chance quality, not luck.
xg against avg (last 5)before kickoff31,348Expected goals CONCEDED per game over the previous 5 matches. Leak-free: only games strictly before kickoff.
xg for avg (last 5)before kickoff31,349Expected goals created per game over the previous 5 matches β€” chance quality walking in. Leak-free: only games strictly before kickoff.

tennis

MetricWhen knownValuesWhat it measures
deciding set ratebefore kickoff23,886Clutch: share of career deciding sets won entering the match (null under 5 deciders).
rankbefore kickoff28,848Published world ranking walking into the match (as recorded by tennis-data at match time).
sets played 14dbefore kickoff28,876Sets played in the previous 14 days β€” honest fatigue (a five-set war and a walkover are not the same 'one match').
straight sets ratebefore kickoff24,899Dominance: share of career wins in straight sets entering the match (null under 5 wins).
surface elobefore kickoff28,876Elo maintained separately per surface β€” the rating entering THIS match on THIS surface. Specialists diverge from overall Elo; the gap is the signal.