⚽ 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, 22,497,496 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 kickoff44,609Opening Asian handicap line (home side) β€” the market's own margin-of-victory forecast.
disagreement homebefore kickoff145,544Cross-book relative spread of home price β€” market uncertainty.
overround 1x2before kickoff162,034Bookmaker margin on the opening 1x2 market β€” pricing confidence signal.
p awaybefore kickoff162,034Opening-odds de-vigged away-win probability.
p drawbefore kickoff162,034Opening-odds de-vigged draw probability.
p homebefore kickoff162,034Opening-odds de-vigged probability of home win β€” the market's opinion as a feature.
p over25before kickoff49,444Opening-odds de-vigged P(3+ goals).
sharp soft gap awaybefore kickoff79,813Sharp-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 kickoff79,813Sharp-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 kickoff79,807Sharp-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
bttsoutcome213,573Both teams scored.
comeback happenedoutcome165,267Final winner was trailing at half-time.
drought gapbefore kickoff212,334Home winless run minus away winless run.
elo gapbefore kickoff213,573Home Elo minus away Elo.
first goal minuteoutcome68,833Minute of the first goal (from the event timeline; only contests with events).
form gapbefore kickoff208,091Home 5-match form points minus away.
ht resultoutcome165,267Half-time result (H/D/A).
humidity pctoutcome9,881Relative 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 goaloutcome74,093Any goal in the 85th minute or later (late drama).
mismatchbefore kickoff213,573Absolute Elo gap β€” how lopsided the pairing is.
momentum clashbefore kickoff208,093Home Elo momentum minus away β€” form trajectory differential.
penalty awardedoutcome74,327Was a penalty kick taken in this match (scored or missed)? Target for the ref pointing tendency.
points gapbefore kickoff184,218Home points minus away points before kickoff.
rainedoutcome9,881Did 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,881Total 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 kickoff184,218Home rank minus away rank before kickoff (positive = home worse-placed). The dated 'who is above whom' feature.
red card shownoutcome74,093At least one red card shown (from the event timeline).
ref cards avgbefore kickoff85,540Referee's average total cards per match before this one (min 10 matches).
ref fouls avgbefore kickoff84,776Referee's average total fouls per match before this one (min 10 matches).
ref pen ratebefore kickoff63,296Referee'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 kickoff63,302Referee'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.
resultoutcome213,573Full-time result: H, D or A.
second half goalsoutcome165,267Goals scored in the second half (both teams).
stakesbefore kickoff161,155How 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 kickoff213,326Home state_index minus away state_index β€” the composite of composites.
style clash cornersbefore kickoff131,498Home corners won + away corners conceded: expected corner pressure.
temp coutcome9,881Air 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 kickoff110,628Combined shot volume of both sides β€” match tempo proxy.
total cardsoutcome112,678Total cards shown (yellow + red, both sides).
total cornersoutcome112,121Full-time total corners.
total foulsoutcome110,878Total fouls committed (both sides).
total goalsoutcome213,573Full-time total goals.
var intervenedoutcome74,327Did VAR intervene in this match (any review event)? Target for the ref VAR rate.

Baseball (MLB)

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

Tennis players

MetricWhen knownValuesWhat it measures
congestion 21dbefore kickoff32,062Matches played in the previous 21 days.
elobefore kickoff32,062Tennis Elo rating entering the match (K=32, no side advantage, set-margin multiplier).
elo momentum (last 5)before kickoff29,778Elo change over the last 5 matches.
goals prevented (last 10)before kickoff120,865Goals 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 kickoff31,459Matches since last win (capped 20).
rest daysbefore kickoff31,459Days since the player's previous match (capped 30).
save pct (last 10)before kickoff124,340Keeper'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 kickoff124,863Keeper'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 ratiooutcome143,498Shots 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 kickoff139,004Rolling mean of team.accuracy_ratio over the previous 10 matches (leak-free).
accuracy ratio (last 3)before kickoff141,543Rolling mean of team.accuracy_ratio over the previous 3 matches (leak-free).
accuracy ratio (last 5)before kickoff141,543Rolling mean of team.accuracy_ratio over the previous 5 matches (leak-free).
blown lead rate (last 20)before kickoff317,081Share of the last 20 games where a half-time lead was not converted to a win (bottling index).
box shareoutcome137,954Shots inside the box / total shots this match β€” chance QUALITY. Low = shooting from distance out of ideas.
box share (last 5)before kickoff136,186Rolling mean of box share over the previous 5 matches (leak-free).
cards avg (last 5)before kickoff419,698Average cards received (yellow + red) over the previous 5 contests.
cards shownoutcome142,942Cards shown to this side in the match (yellow + red, API-Football).
coach daysbefore kickoff323,154Days 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 kickoff317,081Share of the last 20 games won from behind at half-time (never-say-die index).
congestion 21dbefore kickoff427,146Matches played in the previous 21 days (fixture pileup).
conversion (last 5)before kickoff222,348Shot conversion: goals per shot, previous 5.
corner diff avg (last 5)before kickoff265,321Average corner differential over previous 5.
corners against avg (last 5)before kickoff265,321Average corners conceded over the previous 5 contests.
corners for avg (last 5)before kickoff265,321Average corners won over the previous 5 contests.
corners takenoutcome146,246Corners taken by this side in the match (API-Football).
corners volatility (last 10)before kickoff261,084Std-dev of corners won, previous 10.
defensive leak (last 5)before kickoff222,348Goals conceded per shot faced, previous 5.
dominance (last 5)before kickoff222,432Share of total shots in own matches, previous 5.
elobefore kickoff427,146Elo rating entering the contest (K=20, home advantage 60, goal-margin multiplier).
elo momentum (last 5)before kickoff419,700Elo change over the last 5 matches β€” trajectory, not level.
eye test v1before kickoff141,551The 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 kickoff139,386Looking 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 kickoff144,959Rolling 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 kickoff419,698League points collected over the previous 5 contests (any venue).
goal diff avg (last 5)before kickoff419,698Average goal differential over previous 5.
goals against avg (last 5)before kickoff419,698Average goals conceded over the previous 5 contests.
goals for avg (last 5)before kickoff419,698Average goals scored over the previous 5 contests.
goals volatility (last 10)before kickoff413,112Chaos index: std-dev of goals scored, previous 10.
h2 goals (last 10)before kickoff323,450Average second-half goals scored over the last 10 games (late-game engine).
h2h win rate (last 5)before kickoff240,182Score vs THIS opponent over their last 5 meetings (win=1, draw=0.5), any venue, strictly pre-kickoff.
ht lead rate (last 20)before kickoff317,081Share of the last 20 games this team led at half-time.
keeper form v1before kickoff126,153Save% (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 kickoff368,436League points accumulated before kickoff.
league rankbefore kickoff368,436League table position before kickoff (running points table, recomputed leak-free for all seasons). Lower = better.
matches since blankbefore kickoff425,546Matches since last failing to score (scoring streak length, capped 20).
matches since clean sheetbefore kickoff425,546Matches since last clean sheet (defensive drought, capped 20).
matches since winbefore kickoff425,546Matches since last win (winless run, capped 20).
new coachbefore kickoff323,154Coach changed within the last 60 days - the new-manager-bounce window.
pass acc avg (last 5)before kickoff136,971Average pass accuracy % over the previous 5 matches. Leak-free: only games strictly before kickoff.
pass accuracyoutcome138,740Completed-pass percentage in this match.
possessionoutcome144,132Share of the ball this side had (%), from API-Football match statistics.
possession avg (last 5)before kickoff142,207Average possession % over the previous 5 matches. Leak-free: only games strictly before kickoff.
rest daysbefore kickoff425,546Days since the competitor's previous contest (capped at 30).
scorer concentrationbefore kickoff129,342Top scorer's share of the team's season goals before kickoff (from timed goal events). 1.0 = one-man team.
season ppgbefore kickoff408,764Points per game in the current season before this contest.
shot diff avg (last 5)before kickoff222,432Average shot differential over previous 5.
shots for avg (last 5)before kickoff222,433Average shots taken over the previous 5 contests.
shots inside boxoutcome138,754Shots taken inside the box in this match.
shots on targetoutcome144,480Shots on target in this match.
shots totaloutcome144,490Total shots attempted (API-Football).
skill v1before kickoff136,473Invented 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 kickoff32,108The 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 kickoff142,495Shots on target CONCEDED per game over the previous 5 matches. Leak-free: only games strictly before kickoff.
sot for avg (last 10)before kickoff139,952Rolling mean of team.shots_on_target over the previous 10 matches (leak-free).
sot for avg (last 3)before kickoff142,507Rolling mean of team.shots_on_target over the previous 3 matches (leak-free).
sot for avg (last 5)before kickoff142,507Shots on target per game over the previous 5 matches. Leak-free: only games strictly before kickoff.
squad agebefore kickoff153,263Minutes-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 kickoff426,652'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 kickoff141,674Possession 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 rateoutcome144,094Total 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 kickoff139,658Rolling mean of team.threat_rate over the previous 10 matches (leak-free).
threat rate (last 3)before kickoff142,172Rolling mean of team.threat_rate over the previous 3 matches (leak-free).
threat rate (last 5)before kickoff142,172Rolling mean of team.threat_rate over the previous 5 matches (leak-free).
travel kmbefore kickoff18,780Away side's great-circle distance from home city to the match city (clubs with known coordinates only).
venue ppg (last 5)before kickoff413,145Points per game over previous 5 matches at the same venue side (home form for home side).
xgoutcome33,771Expected goals (xG) posted in this match β€” chance quality, not luck.
xg against avg (last 5)before kickoff32,520Expected goals CONCEDED per game over the previous 5 matches. Leak-free: only games strictly before kickoff.
xg for avg (last 5)before kickoff32,521Expected 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 kickoff26,796Clutch: share of career deciding sets won entering the match (null under 5 deciders).
rankbefore kickoff32,031Published world ranking walking into the match (as recorded by tennis-data at match time).
sets played 14dbefore kickoff32,062Sets played in the previous 14 days β€” honest fatigue (a five-set war and a walkover are not the same 'one match').
straight sets ratebefore kickoff27,845Dominance: share of career wins in straight sets entering the match (null under 5 wins).
surface elobefore kickoff32,062Elo maintained separately per surface β€” the rating entering THIS match on THIS surface. Specialists diverge from overall Elo; the gap is the signal.