Skip to content

History & Settlement Signals

Sharp / mainstream divergence

How far the mainstream market sits from the sharp one, per market.

Compares DE-VIGGED probabilities, never prices. Books carry different margins, so a sharp book at 2% against a soft one at 8% shows a wide price gap on a market they agree about perfectly — comparing prices measures margin and calls it disagreement.

gap is mainstream minus sharp per selection. A positive gap means the mainstream market rates that selection higher than the sharp market does, which is the side to fade. Markets are ordered by max_gap, so a truncated response keeps the useful half.

Read sharp_book_count and mainstream_book_count before acting: a consensus of one book is a price, not a market.

Markets where either side has not priced every selection are omitted rather than reported. De-vigging a partial market normalizes over a subset, which inflates every probability in it and manufactures a gap out of a quote we simply did not collect.

Requires the signals entitlement (Max plan). See Responses & Errors for the success envelope and availability rules.

GEThttps://api.sportquanta.com/v1/{league}/games/{id}/odds/divergence
GETSharp versus mainstream divergence (Max signals)
GET/v1/{league}/games/{id}/odds/divergence

Sharp versus mainstream divergence (Max signals)

How far the mainstream market sits from the sharp one, per market.

Compares DE-VIGGED probabilities, never prices. Books carry different margins, so a sharp book at 2% against a soft one at 8% shows a wide price gap on a market they agree about perfectly — comparing prices measures margin and calls it disagreement.

gap is mainstream minus sharp per selection. A positive gap means the mainstream market rates that selection higher than the sharp market does, which is the side to fade. Markets are ordered by max_gap, so a truncated response keeps the useful half.

Read sharp_book_count and mainstream_book_count before acting: a consensus of one book is a price, not a market.

Markets where either side has not priced every selection are omitted rather than reported. De-vigging a partial market normalizes over a subset, which inflates every probability in it and manufactures a gap out of a quote we simply did not collect.

Requires the signals entitlement (Max plan). See Responses & Errors for the success envelope and availability rules.

Authorization
Path
Query
Sharp versus mainstream divergence (Max signals)cURL
200Example

Reference context: WKBL.

Overview · Response conventions

Authorizations

Authorizationstringheaderrequired

Send a workspace API token in the Authorization: Bearer <token> header.

Path Parameters

leagueenum<string>default:wkblrequired

League for this reference section: wkbl.

Available options: wkbl

idstringrequired

Query Parameters

bookmakerstring

CSV of bookmaker IDs used to build sharp and mainstream consensus.

Response

application/json

Divergence per market.

dataobjectrequired
data.game_idstringrequired
data.leaguestringrequired
data.countintegerrequired
data.marketsobject[] | nullrequired
data.markets.marketstringrequired
data.markets.periodstring
data.markets.linenumber
data.markets.sharp_book_countintegerrequired
data.markets.mainstream_book_countintegerrequired
data.markets.sharp_fair_probabilitiesobject | nullrequired

Fair probabilities keyed by selection (for example home, away, draw, over, under as appropriate to the market). Values are 0–1 fractions. Only returned selections appear.

data.markets.sharp_fair_probabilities.{key}number
data.markets.mainstream_fair_probabilitiesobject | nullrequired

Fair probabilities keyed by selection (for example home, away, draw, over, under as appropriate to the market). Values are 0–1 fractions. Only returned selections appear.

data.markets.mainstream_fair_probabilities.{key}number
data.markets.gapobject | nullrequired

Mainstream minus sharp fair probability, keyed by selection. Values are signed probability fractions (0.03 means 3 percentage points); positive means mainstream assigns the selection more probability.

data.markets.gap.{key}number
data.markets.max_gapnumberrequired

Largest absolute selection probability gap; used to order markets.

_metaobject

Response request/cache metadata. Optional evidence fields are specific to this handler; cache TTL does not measure source-data freshness.

_meta.request_idstring
_meta.served_fromenum<string>

Available options: live, cache

_meta.cache_ttl_secondsinteger

Response cache TTL; independent of source freshness. Omitted when zero.