OSDtools
Max Odds Diff Studio
OSD / Studio / Align Max Odds Diff

Align Max Odds Diff — cross-book max delta tuning

How alignMaxOddsDiff works

Fix shipped 2026.4.28.4 — currently in logOnly mode. The candidate book is now correctly excluded from the gap calculation. Because the prior thresholds were calibrated against the broken (no-op) behavior, the new defaults are looser (global 250¢, scoped per-(book,flow) overrides) and the gate is in filters.alignment.logOnly = true for telemetry-only rollout. Bets that would block now log wouldBlock: true in diagnostics but still place. After a few days of telemetry confirms the thresholds, promote to enforcement by setting logOnly: false. Key insight from the 14-day replay: arb-flow gap is the alpha (cheap-leg arbs are *supposed* to be far from market) — arb books get effective-disable thresholds (400¢) so the gate only acts on EV-flow stale-line traps.

The alignWithMarket gate (controlled by filters.alignment.alignMaxOddsDiff) is the candidate-vs-market distance check. It blocks a candidate bet whose price is too far away from every other book on the same line — the classic stale-line-trap signal. Unlike sharp-tightness (which checks whether sharps agree among themselves with the candidate book excluded), alignment compares the candidate's price directly against the rest of the market.

The check, end to end

  1. Read the candidate's price and dom.oddsByBook (every book offering this side).
  2. For each other book in oddsByBook, compute americanOddsGap(otherOdds, candidateOdds).
  3. Find minDiff — the gap to the closest book (`getMinOddsDiff`).
  4. Resolve the threshold: scoped match by book/league/market/mode/flow first, falling back to filters.alignment.alignMaxOddsDiff (default 30¢). High-EV tail guard can tighten further via HIGH_EV_TAIL_GUARD.alignMaxOddsDiff / alignMaxOddsDiffStrict on a flagged book.
  5. alignsWithMarket returns true if at least one book is within the threshold (i.e. minDiff ≤ threshold). Otherwise the candidate is "out of line" and the gate fails.
  6. If alignWithMarket is disabled at the config level (filters.alignment.alignWithMarket = false), the gate is skipped entirely.

Worked example

Live MLB Cubs Over 13.5 placed at DraftKings −350. Full oddsByBook snapshot:

minDiff = 854¢. Default threshold is 30¢. 854 > 30FAIL. The bet should be blocked. This is the gate that catches stale-line traps — DK's price is so far from every other book that it cannot be a real market.

Sharp-tightness vs. alignMaxOddsDiff (the difference)

Threshold tuning

Implementation: getAlignMaxOddsDiffForDom, alignsWithMarket, getMinOddsDiff in osd-auto-edge-bb.js. Gate call sites: the EV/arb evaluator badge pipeline (`addStage("alignWithMarket", ...)` near line 21277) and three additional consultative call sites for diagnostics.

Data

Load remote positions to begin.

Controls

Run Settings

This is the score the optimizer maximizes when ranking candidates.
Requires at least this many bets for a recommendation to be eligible.

Sweep Setup

Scoped optimizer tunes global + scoped alignMaxOddsDiff rules.
0 disables sharp-count gating.
Run-engine safety cap for Grid and Sharp sweeps (not a segment filter).

Guardrails

Requires recommendations to span at least this many settled days. Set 0 to disable.
Rejects recommendations when worst-day profit drops by more than this amount. Set 0 to disable.
Requires this minimum share of profitable days for recommendations. Set 0 to disable.

Segment Filters

Sub-selection filters below are applied after Run Mode + Objective Metric.

Data Quality & Output

Load remote positions to start.

Summary

Rows Loaded
-
Settled Matched
-
Baseline (ROI)
-
Best Delta
-
Baseline snapshot: ROI -, Profit -, Win Rate -, Bets -
This is historical replay on bets you already took. It cannot estimate bets that were never placed.
Alignment: Candidate Odds
-
Alignment: Sharp Odds >=1 / >=2
-
Alignment Inputs Ready
-
Min Alignment Rows
-
Parameter results are ranked here first. In Auto mode, charts below use the top-ranked parameter row.
Param Scope Status Baseline Best Bets (best/baseline) within scope Baseline Score Best Score Delta
Run a single-parameter sweep or Auto mode to populate these charts.
Shaded band = top-performing value zone (top 20% by selected objective metric).
Gold dot = best score in this sweep.
Line + dots = metric result for each tested value.
X-axis = tested parameter value.
ROI Curve
Run a single-parameter sweep (or Auto mode) to render ROI curve.
Profit Curve
Run a single-parameter sweep (or Auto mode) to render profit curve.
Win Rate Curve
Run a single-parameter sweep (or Auto mode) to render win-rate curve.
Bet Count Curve
Run a single-parameter sweep (or Auto mode) to render bet-count curve.

Distribution

Rows are tested parameter values. Each row shows aggregate results for that value.
Parameter Value Bets Pass Rate Distinct Days Green Day % Worst Day Win Rate ROI Profit Stake Avg EV