⚽ 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

line movement (clean open/close discipline)

← lab · 48,132 selections · does steam beat the close? · ran 7/4/2026

What this is: Compares opening and closing odds over 20+ years: when a price shortens (steam), is that information already fully absorbed by kickoff, or does following the move still pay?
Selections bucketed by how much their probability moved between opening and closing. If the “actual” column matches “close implied” in every bucket, the market absorbs its own moves — no free lunch in following them.
Move bucketnAvg moveClose impliedActual wonResidual
big drift2,030-5.48pts37.11%36.06%-1.05pts
drift5,033-2.81pts33.35%34.23%+0.88pts
flat33,9950pts31.33%31.24%-0.09pts
steam5,034+2.8pts39.88%39.09%-0.79pts
big steam2,040+5.5pts46.77%49.12%+2.35pts
Rule (flat stakes)nROI
Follow steam at the close7,074-3.15%
Fade drift at the close7,063-1.92%
Bet everything at the close (margin baseline)48,132-3.63%
Bet steamers at the OPEN (perfect-foresight bound)7,074+7.28%

Reading the columnswhat each number actually means

Move buckethow much the selection's implied probability moved open → close
Close impliedwin rate the closing price predicts
Actual wonwhat actually happened in that bucket
Residualactual − implied; 0 everywhere = the market absorbs its own moves
Spec · the reproducible recipe
{
  "kind": "line_movement",
  "market": "1x2",
  "competitions": [
    "EPL",
    "ELC",
    "EL1",
    "EL2",
    "SPL"
  ]
}