Player-prop matching and settlement rules
Compare the same player prop without confusing it with an equivalent contract.
Two markets can ask the same player to exceed the same line and still pay
differently when that player does not play. PredictorSDK separates prop
identity from settlement equivalence. These options apply to player props
only. Moneylines, spreads, and game totals publish a smaller matrix of their own
(tie, overtime, push), with its rows only when you send include_rules=true; a
player prop's matrix is always there. See game-line rules.
Choose a policy
Use the existing sports matching endpoint.
| Request | Player props returned |
|---|---|
| No parameters | Each event's full-game moneyline only; no player props |
include_submarkets=true | Strict settlement-equivalent player props only |
include_submarkets=true&player_prop_match=strict | Same strict default, explicitly selected |
include_submarkets=true&player_prop_match=same_prop | Verified same-prop identities, including different or unverified settlement rules |
player_prop_match with include_submarkets=false, or in list mode without include_submarkets=true | 400; the requested comparison would not be visible. A lookup sets include_submarkets=true by default. |
An empty, repeated, or unsupported player_prop_match | 400; no silent fallback |
Both policies work with list pagination, lookups (event_id and source_id on
GET /v1/matching-markets/sports/lookup), and include_settled=true. A cursor belongs to one policy and cannot be reused
after switching policies. Lookup still accepts at most 100 unique identifiers
and remains unpaginated. Without include_submarkets=true, each event carries
only its full-game moneyline, never player-prop outcomes.
GET /v1/matching-markets/sports?include_submarkets=true&player_prop_match=same_propFor a known event, call GET /v1/matching-markets/sports/lookup?event_id=<canonical-event-id>;
do not search every page to rediscover it. A result requires at least two distinct providers, not two
markets from the same venue. An event whose only matches are player props is
listed only when the policy admits its props: with
include_submarkets=true&player_prop_match=same_prop today, because the strict
policy currently admits none.
What must match in both modes
The sport and league, both teams, game date, player, statistic, full-game period, threshold, and native selection meanings must agree. NFL kickoff dates are normalized to America/New_York; Polymarket's UTC-dated slug is not used as the Eastern game date. Player names are resolved against both teams' ESPN rosters to an unambiguous athlete ID, and exactly one ESPN fixture must corroborate the matchup and Eastern game day. An explicit source kickoff that conflicts with ESPN is refused. Explicit full/display-name aliases and individually reviewed, athlete-bound spellings may match; initials, surname-only guesses, suffix removal, and arbitrary collision resolution do not.
For integer statistics, 250+ means Over 249.5, not Over 250. A contract requiring more than 10 points is not the same as 10+ points. Only verified nonnegative half-point thresholds are admitted in this release; whole-number push contracts, exact-value/range bets, fractional statistics, weekly accumulation, season props, and D/ST units are not player-prop matches. Passing touchdowns and touchdowns scored are separate statistics.
Roster checks are performed during sports ingestion, with a five-minute
cache and bounded requests. A missing or stale roster, a team conflict, or an
ambiguous athlete removes that prop, not ordinary game lines. Current rosters
cannot certify historical membership: ingestion does not newly admit props
more than 48 hours past their scheduled start. Previously verified archived
props remain eligible under include_settled=true; older snapshots without
identity verification do not acquire it retroactively.
Read the rule matrix
Every returned player prop has settlement_equivalence and rule_comparisons.
| Equivalence | Meaning |
|---|---|
equivalent | Every source has a completely reviewed, equivalent settlement profile |
different | At least one known difference exists, even if other rules remain unknown |
unverified | No difference has been established, but equivalence has not been proved |
Each rule_comparisons row has a machine-readable rule, readable label,
comparison, and source_values. Each source value names its exact
provider and market_id, a machine-readable value, a plain-language
description, and an evidence_url when verified. The matrix always covers:
| Rule | What to check |
|---|---|
non_participation | Inactive, withdrawn, or no-play settlement; minimum participation |
overtime | Whether overtime statistics count |
stat_definition | Which statistic and attribution rules govern |
threshold | Comparison operator, equality, and push behavior |
stat_corrections | Whether later official corrections can change settlement |
postponement | How long a delayed game remains eligible |
cancellation | Fair-price settlement, split payout, or refund conditions |
interruption | Abandonment, minimum play, and restart conditions |
resolution_source | Official source, fallbacks, and missing-data handling |
Filter rows with comparison=different to find known differences. Filter
unverified rows to find evidence gaps. Values are extensible strings; display
the description rather than guessing an unfamiliar value's meaning. A row can
have a known difference and still contain an unknown source value. Agreement
on observed clauses is not a complete contract review, and unknown values
never mean equivalent or unrestricted.
Rule evidence is attached to individual source contracts, not assumed from the provider's name. Market clauses are observed at ingestion. Kalshi product terms require the current series to link to the reviewed document; ProphetX requires its filings index to retain the reviewed NFL filing. Both require the document's SHA-256 to match the reviewed version; these checks are cached for at most five minutes. Changed or unavailable documents leave affected dimensions unknown. Known unresolved wording is not assigned an invented precedence. Read the evidence link for additional applicable terms.
Example: a no-play difference
The September 2026 audit found Josh Allen passing-yard props with matching game/player/249.5 identities, but different non-participation treatment:
| Source | Active player takes no snap |
|---|---|
| Polymarket | Under wins; Over loses |
| Kalshi | Settles at a pregame fair price, not necessarily zero or one |
| ProphetX | Filed rules require active status and at least one snap for validity; no automatic Under win |
A fair-price settlement, a 50-50 split, and a purchase-price refund are not interchangeable. A same-prop match is useful for discovery and comparison; it does not establish a risk-free arbitrage or a perfect hedge.
For a comparison UI, show the prop's display_name, an overall
settlement_equivalence badge, and the descriptions from each rule row. Keep
unknown rows visible. A simplified excerpt (the actual response contains all
nine rows and exact source market references) looks like:
{
"display_name": "Josh Allen Passing yards O/U 249.5",
"settlement_equivalence": "different",
"rule_comparisons": [
{
"rule": "non_participation",
"label": "Player does not participate",
"comparison": "different",
"source_values": [
{
"provider": "kalshi",
"market_id": "KXNFLPASSYDS-26SEP13BUFHOU-BUFJALLEN17-250",
"value": "active_no_snap_pregame_fair_price",
"description": "If active but never takes a snap, settles at the pregame fair price. Inactive-player handling has not been verified here.",
"evidence_url": "https://api.elections.kalshi.com/trade-api/v2/markets/KXNFLPASSYDS-26SEP13BUFHOU-BUFJALLEN17-250"
},
{
"provider": "polymarket",
"market_id": "4080510",
"value": "under_wins",
"description": "If the player does not participate or is inactive, Under/No wins and Over/Yes loses.",
"evidence_url": "https://gamma-api.polymarket.com/markets/4080510"
}
]
}
]
}Coverage and limitations
| Provider | Player-prop admission in this release |
|---|---|
| Kalshi | Thirteen NFL families listed below; validated NBA/WNBA full-game count props when listed |
| Polymarket | Corresponding NFL families, including anytime/2+ touchdowns; validated NBA/WNBA full-game count props when listed |
| Predict | No new admission: weekly NFL contracts are not single-game props; a bridge alone does not certify prop rules or selections |
| ProphetX | Eleven NFL integer-stat families below, using the same primary strike as market detail; whole-number lines and contradictory selections are refused |
| SX Bet, AlphaArcade, Hyperliquid | No verified game player-prop pairing in the audited NFL inventories |
| NFL statistic | Kalshi | Polymarket | ProphetX |
|---|---|---|---|
| Passing yards | Yes | Yes | Yes |
| Rushing yards | Yes | Yes | Yes |
| Receiving yards | Yes | Yes | Yes |
| Receptions | Yes | Yes | Yes |
| Passing completions | Yes | Yes | Yes |
| Passing touchdowns | Yes | Yes | Excluded: filing assigns the scorer to the receiver |
| Touchdowns scored (anytime / 2+) | Yes | Yes | No verified matching family |
| Passing attempts | Yes | No observed family | Yes |
| Passing interceptions | Yes | No observed family | Yes |
| Rushing attempts | Yes | No observed family | Yes |
| Rushing + receiving yards | Yes | No observed family | Yes |
| Longest reception | Yes | No observed family | Yes |
| Longest rush | Yes | No observed family | Yes |
These are supported families, not a promise of a matching line at every venue. ProphetX alternate strikes are not exposed under the primary market ID: its market-detail response selects one current primary strike. Both selection labels and structured strike values must agree, including every order-book level's outcome identity. A whole-number primary line is excluded even when an alternate half-point line exists.
The September 14 audit read all seven upstreams. Predict's 20 NFL statistical props were weekly passing-yard or anytime-touchdown contracts, not single-game contracts. SX Bet's 386 NFL markets, AlphaArcade's current NFL game children, and Hyperliquid's NFL outcomes provided no verified player-stat pairing. Provider tags alone are insufficient: AlphaArcade even carried an NFL tag on a SpaceX IPO question. Missing coverage stays explicit rather than creating a player match from unrelated or ambiguous data.
The Chiefs' published roster names Kenneth Walker, while ESPN calls athlete
4567048 Kenneth Walker III. This reviewed alias is tied to that exact athlete
and still requires a fresh matching-team roster. It does not remove suffixes
from other players or resolve a name collision automatically.
Availability is dynamic. NBA points inventory was empty on Kalshi during this audit; basketball evidence includes historical Polymarket contracts and the current published Kalshi terms, not a certified live NBA pair. This release does not claim a complete settlement profile for any audited provider pair; strict mode can legitimately return no player props. Previous NBA/WNBA name-and-line groupings are not grandfathered into strict equivalence.
Canonical player keys use espn_<league>_<athlete-id>. Same-prop keys identify
the base prop; strict keys additionally identify a reviewed settlement group.
One base prop can contain several equivalent subsets: strict mode emits each
qualifying subset separately and never pulls in an incompatible third venue.
Join native market/outcome IDs to market detail
for current data; this endpoint adds no prices, liquidity, or execution advice.
ProphetX market detail converts its Trading API's American-odds offers into
probabilities: the cheapest available back offer is the named selection's
ask, and the opposite selection's ask supplies the complementary bid.
price is the midpoint when both are present, not a last trade or a guaranteed
fill. A one-sided book remains one-sided, and an empty book has null quotes.
These quote conventions do not establish settlement equivalence or make an
alternate strike interchangeable with the current primary strike.
Filtering
Narrow the list of matched sports events by league, date or participant, and look up specific matches by identifier.
Game-line rules - ties, overtime and pushes
How each venue settles a tied game, overtime and a line that lands exactly, summarised on every moneyline, spread and total, with the rows behind it on request.