{
  "slug": "season-win-total-ev-calculator",
  "title": "Season Win Total EV Calculator",
  "heading": "Season Win Total (Over/Under) EV Calculator",
  "category": "math",
  "url": "https://www.revenuelab.fyi/toolbox/season-win-total-ev-calculator",
  "summary": "Check if a team's win total over/under has expected value for you.",
  "description": "Preseason win total markets (e.g., a team's win total set at 8.5 games with over/under prices) are priced from a projected mean number of wins, converted into a probability distribution, then quoted as two-way odds with vig. This calculator estimates the implied probability of the over and under from the posted odds, compares it against your own projected win total (using a simple normal approximation around the number of games), and computes expected value for whichever side you think is mispriced. Win total markets move slowly over an entire season and are especially sensitive to key injury news, coaching changes, and offseason roster turnover that happens after the number is initially posted — lines set in May often look very different by the September opener. This tool assumes a roughly normal distribution of win outcomes around your projected mean, which is a reasonable approximation for most sports but breaks down for teams with unusually bimodal outcomes (e.g., a team that either tanks hard or unexpectedly contends with no in-between).",
  "formula": "Using a normal approximation with standard deviation ≈ 2.0 wins over a season, P(over) = 1 − Φ((line + 0.5 − your projection) ÷ σ), where Φ is the standard normal CDF.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=season-win-total-ev-calculator",
  "inputs": [
    {
      "id": "line",
      "label": "Posted win total line",
      "kind": "number",
      "hint": null,
      "default": 8.5,
      "unit": null,
      "min": 0,
      "max": 20
    },
    {
      "id": "overOdds",
      "label": "Over odds (American)",
      "kind": "number",
      "hint": null,
      "default": -115,
      "unit": null,
      "min": null,
      "max": null
    },
    {
      "id": "underOdds",
      "label": "Under odds (American)",
      "kind": "number",
      "hint": null,
      "default": -105,
      "unit": null,
      "min": null,
      "max": null
    },
    {
      "id": "yourProjection",
      "label": "Your projected win total",
      "kind": "number",
      "hint": null,
      "default": 9.5,
      "unit": null,
      "min": 0,
      "max": 20
    },
    {
      "id": "stake",
      "label": "Stake",
      "kind": "number",
      "hint": null,
      "default": 100,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "pOver",
      "label": "Your estimated P(over)",
      "format": "percent",
      "hint": null,
      "primary": true
    },
    {
      "id": "pUnder",
      "label": "Your estimated P(under)",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "evOver",
      "label": "EV betting the over",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "evUnder",
      "label": "EV betting the under",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Posted win total line: 8.5",
      "Over odds (American): -115",
      "Under odds (American): -105",
      "Your projected win total: 9.5",
      "Stake: 100 $"
    ],
    "outputs": [
      "Your estimated P(over): 59.9%",
      "Your estimated P(under): 40.1%",
      "EV betting the over: $11.93",
      "EV betting the under: -$21.65"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter posted win total line.",
      "Enter over odds (american).",
      "Enter under odds (american).",
      "Enter your projected win total.",
      "Enter stake ($).",
      "Read your your estimated p(over) on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "line": 5.1,
        "overOdds": -70,
        "underOdds": -65,
        "yourProjection": 5.7,
        "stake": 60
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "line": 8.5,
        "overOdds": -115,
        "underOdds": -105,
        "yourProjection": 9.5,
        "stake": 100
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "line": 13.600000000000001,
        "overOdds": -185,
        "underOdds": -170,
        "yourProjection": 15.200000000000001,
        "stake": 160
      }
    }
  ],
  "limitations": [
    "Results are rounded for display; the underlying calculation keeps full precision.",
    "Very large or very small inputs may hit floating-point limits in the browser.",
    "Inputs outside the accepted range are clamped rather than rejected."
  ],
  "faq": [
    {
      "q": "Why use 2.0 wins as the standard deviation?",
      "a": "It's a commonly used approximation for NFL season win totals based on historical variance in team win-loss records; other sports and team profiles vary. A rebuilding team with a rookie quarterback and a defending contender both nominally have season-long uncertainty, but their actual outcome distributions differ, so treat this sigma as a reasonable default, not a precise fit for every team."
    },
    {
      "q": "Why would a line set in May be wrong by September?",
      "a": "Injuries, holdouts, coaching staff turnover, and roster changes all happen after win totals are initially posted, and books are often slower to move preseason futures than game lines because there's less liquidity and less frequent new information forcing a repricing. A star player suffering a training camp injury after the number is set is the classic case where the market probability lags reality."
    },
    {
      "q": "Is my own projection likely to be better than the sportsbook's number?",
      "a": "For most bettors, no — books' win total lines are set using extensive modeling and are historically quite sharp on average. This tool is useful when you have specific information the market may be underweighting (a confirmed depth chart change, a schedule strength quirk, or a coaching change), not as a way to beat the market on general vibes about a team."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/expected-value-bet-calculator",
    "https://www.revenuelab.fyi/toolbox/futures-bet-hold-calculator",
    "https://www.revenuelab.fyi/toolbox/closing-line-value-calculator"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Season Win Total EV Calculator (https://www.revenuelab.fyi/toolbox/season-win-total-ev-calculator)"
}