vf-and-mba-targets draft

VF (vig-free) and MBA (Major Book Average) reference prices, and how to derive evaluation targets from them via the cross-side flip

Tags
reference-prices vf mba evaluation targets
Vocabulary
mba
Major Book Average — the cross-book average of customer-facing American odds on each side of a market. Includes the vig (because customer-facing prices include the vig). Notation: MBA-Magic, MBA-Lakers.
vf
Vig-Free — a devigged price pair where implied probabilities sum to exactly 1.0. Can be computed from a single book's two-sided line OR from the MBA pair. Strips the vig.
cross_side_flip
The operation -P that converts a price on one side of a binary market into a target on the OTHER side. Just the negation of an American odds value.
target_price
The price you need to beat on the side you're considering, derived from the OTHER side's MBA or VF via the cross-side flip.
evaluation_ladder
Two-tier framework: VF target is the minimum threshold (clearing it means at least fair-probability +EV); MBA target is the true goal (clearing it means better than the consensus implicit position).
major_books
The curated set of sharp books used in MBA computation — typically Pinnacle, BetOnline, Circa, BetCRIS in Kairos.

When you're evaluating a quote, two reference price pairs matter: the MBA (Major Book Average) and the VF (Vig-Free) version of it. They are two stops on the same evaluation ladder — VF is the minimum threshold to clear, MBA is the true goal.

The mechanic for deriving the target on a side you actually want to bet is the same in both cases: take the OTHER side's MBA (or VF) value, and negate it. That negation is the cross-side flip.

What MBA is

MBA stands for Major Book Average. For each side of a market, take the customer-facing American odds quoted by each major book and average them — that's the MBA on that side.

MBA prices include the vig. They are the prices the books are actually willing to sell to customers, vig and all. MBA is not vig-free.

Example. Magic vs. Lakers. The major books across the industry quote, on average:

So MBA-Magic = +150 and MBA-Lakers = −165. The implied probabilities (100 / 250 = 0.400 on Magic; 165 / 265 = 0.623 on Lakers) sum to 1.023 — the 2.3% excess is the vig the consensus is charging.

What VF is

VF stands for Vig-Free. To get VF, take a two-sided line — either a single book's quote or the MBA pair — and devig it. The devigged implied probabilities sum to exactly 1.0.

Continuing the Magic / Lakers example, devig the MBA pair:

Convert back to American:

So the VF pair is Magic +156 / Lakers −156 — a balanced, no-vig version of the same market. Note the symmetry: VF on a binary market always produces a numerically equal (sign-flipped) pair when the devig method is symmetric.

How MBA derives a target

If you want to bet Lakers, the MBA target on Lakers is the cross-side flip of MBA-Magic:

MBA target on Lakers = −(MBA-Magic) = −(+150) = −150

Plain English: when the major books sell Magic +150, they're implicitly long Lakers at −150 — that's their breakeven on the Lakers side, given what they took for the Magic side. The major-book consensus implicit position on Lakers is −150. To be better than that consensus, you need a Lakers price better than −150 — a softer book offering −145, or a Kalshi NO at the equivalent of −145, etc.

How VF derives a target

If you want to bet Lakers, the VF target on Lakers is the cross-side flip of VF-Magic:

VF target on Lakers = −(VF-Magic) = −(+156) = −156

Plain English: this is the line where there's no vig and no edge in either direction — pure 50/50 in pure-probability EV terms. Beating −156 means you've squeezed out positive EV against a no-vig fair line. It's the floor.

Evaluation hierarchy

For Lakers, from worst to best for the bettor:

Lakers price What it means
−165 Book's offered price (full vig). Avoid.
−156 VF target. Minimum threshold — beating this means you're at least fair-probability +EV.
−150 MBA target. True goal — beating this means you're +EV against the consensus implicit position.
less negative than −150 (e.g. −145, +120) You're winning against the consensus.

A Lakers price of −160: beats the book's offer (−165), doesn't beat VF (−156). Still −EV. Skip.

A Lakers price of −155: beats VF (−156), doesn't beat MBA (−150). Marginally +EV. Acceptable but not strong.

A Lakers price of −148: beats both. Strong bet — better than the major-book consensus implicit position.

VF can be computed from a single book OR from the MBA

Two ways to get a VF reference:

  1. Single-book VF. Take one book's two-sided line (e.g. that book's Magic +148 / Lakers −163), devig it, get that book's own VF pair. Useful when you're evaluating a single book in isolation.
  2. MBA-derived VF. Average across major books to get MBA, then devig the MBA pair. Useful when you want the consensus's vig-free belief, not just one book's. This is the canonical Mimir recommendation for evaluation against "what the market thinks."

The math is the same either way. The choice is just about scope: single book or consensus.

Cross-strike line translation (spread/total markets)

For moneyline markets, MBA computation is straightforward — every book quotes the same outcome (Magic wins / Lakers wins), so averaging across books works directly.

For spread and total markets, books often quote at different strike points. Book X has Patriots −3.5; Book Y has Patriots −4. You can't average those directly — they're prices on different products (Patriots winning by 4+ vs. winning by 5+). The fix is the "common denominator" step: translate each book's quote to a common target line first, THEN compute MBA at the target.

In Kairos, this lives in kairos/core/spread_mba.py::mba_at_target_line. The procedure:

  1. Pick a target line (e.g. Patriots −3.5).
  2. For each major book, translate that book's native odds to the target via convert_line_odds. The half-point conversion uses a default of 9 American-odds points per half-point of line, applied via a step-scale (american_to_step / step_to_american) that's monotonic but non-linear in American odds.
  3. Average the converted American odds in implied-probability space — equal weight across the sharp-book list (pinnacle, betonline, circa, betcris).
  4. Output: MBA pair at the chosen target line.

The line-translation step is the only thing spread/total-specific. Once everyone is at the common target, MBA computation and target derivation work the same as moneyline.

Worked example: cross-strike

Three sharp books quote a Patriots-vs-Jets spread; you want MBA at target line Patriots −3.5:

Book Native (Patriots) Native odds
Pinnacle −3.5 −110 / −110
BetOnline −4 +100 / −120
Circa −3.5 −108 / −112

Pinnacle and Circa are already at the target — pass through. BetOnline at −4 needs translation to −3.5: moving Patriots from −4 to −3.5 makes the bet easier for Patriots to cover (they only need to win by 4+ instead of 5+), so Patriots' converted odds get worse (less plus-money). The Jets side moves the opposite way: at +4, Jets cover when the margin is 1, 2, or 3 (a margin of 4 is a push); at +3.5, that push becomes a loss, so Jets cover in fewer outcomes — harder bet, Jets' odds at +3.5 get better. Cross-strike conversion always moves the two sides in opposite directions because the strike change shifts the push outcome.

Once translated, the three books are apples-to-apples and the standard MBA averaging applies.

Where this lives in Kairos

Gotchas

Open questions

Cross-references