Abelson Sports’ Props Markets States and Messages (Beta)
What is a Kero Props Market?
Section titled “What is a Kero Props Market?”Props are player specific markets that focus on specific player performances across a wide range of different metrics.
All markets are normal time markets, so pricing and settlement relates to 90 minutes only (plus any additional time added by the referee). Extra time and penalties will not appear in the feed.
Event Status
Section titled “Event Status”The event_status attribute tracks the current phase of a match throughout its lifecycle.
Status Values
Section titled “Status Values”| Status | Description | Phase |
|---|---|---|
"Fixture" | Scheduled Match | Match is scheduled but not yet started |
"Pre-Match" | Pre-Game Phase | Line-ups received, shortly before kick-off |
"1st Half" | First Half | First half in progress |
"Half Time" | Half Time Break | Between first and second half |
"2nd Half" | Second Half | Second half in progress |
"Full Time" | Match Completed | Match has finished (90 minutes + injury time) |
"Abandoned" | Match Abandoned | Match terminated before completion |
Future Extensions
Additional status values may be introduced as the service extends to support more scenarios.
Abandoned Match Settlement
Section titled “Abandoned Match Settlement”When a match has event_status: "Abandoned", special settlement rules apply:
Settlement Behavior:
- Known Outcomes: Only selections where the outcome is fully determined are settled
- Unknown Outcomes: All other selections remain as
"not settled" - Manual Intervention: Requires client-side handling per their specific settlement rules
Soccer Market Types
Section titled “Soccer Market Types”| Market Name | Indexed | Type |
|---|---|---|
| anytimePlayerToScore | false | In Play |
| firstPlayerToScore n | true | In Play |
| FirstTeamHomeGoalscorer n | true | In Play |
| FirstTeamAwayGoalscorer n | true | In Play |
| ScoreAndTeamWin | false | In Play |
| ScoreAndTeamDraw | false | In Play |
| ScoreAndTeamLose | false | In Play |
| ScoreFirstAndTeamWin | false | In Play |
| ScoreFirstAndTeamDraw | false | In Play |
| ScoreFirstAndTeamLose | false | In Play |
| ToScore2Plus | false | In Play |
| ToScoreAHattrick | false | In Play |
| lastPlayerToScore | false | Pre-match |
| PlayerToOutscoreTheOpposition | false | Pre-match |
| ScoreInBothHalves | false | Pre-match |
| ToScoreExactly1 | false | Pre-match |
| ToScoreExactly2 | false | Pre-match |
| ToScoreExactly3 | false | Pre-match |
| AnytimeCard | false | Pre-match |
| FirstCard | false | Pre-match |
| RedCard | false | Pre-match |
| PlayerToHave1PlusShots | false | Pre-match |
| PlayerToHave2PlusShots | false | Pre-match |
| PlayerToHave3PlusShots | false | Pre-match |
| PlayerToHave4PlusShots | false | Pre-match |
| PlayerToHave5PlusShots | false | Pre-match |
| PlayerToHave6PlusShots | false | Pre-match |
| PlayerToHave1PlusShotsOnTarget | false | Pre-match |
| PlayerToHave2PlusShotsOnTarget | false | Pre-match |
| PlayerToHave3PlusShotsOnTarget | false | Pre-match |
| PlayerToHave4PlusShotsOnTarget | false | Pre-match |
| PlayerToMake1PlusTackles | false | Pre-match |
| PlayerToMake2PlusTackles | false | Pre-match |
| PlayerToMake3PlusTackles | false | Pre-match |
| PlayerToCommit1PlusFouls | false | Pre-match |
| PlayerToCommit2PlusFouls | false | Pre-match |
| PlayerToWin1PlusFouls | false | Pre-match |
| PlayerToWin2PlusFouls | false | Pre-match |
| PlayerToHave1PlusLeftFootShotsOnTarget | false | Pre-match |
| PlayerToHave2PlusLeftFootShotsOnTarget | false | Pre-match |
| PlayerToHave1PlusRightFootShotsOnTarget | false | Pre-match |
| PlayerToHave2PlusRightFootShotsOnTarget | false | Pre-match |
| PlayerToHave1PlusHeadedShotsOnTarget | false | Pre-match |
| PlayerToHave2PlusHeadedShotsOnTarget | false | Pre-match |
| PlayerToHave1PlusShotsOnTargetFromOutsideBox | false | Pre-match |
| PlayerToHave2PlusShotsOnTargetFromOutsideBox | false | Pre-match |
| PlayerToBeOffside1PlusTimes | false | Pre-match |
| PlayerToBeOffside2PlusTimes | false | Pre-match |
| PlayerToAssist1PlusTimes | false | Pre-match |
| PlayerToAssist2PlusTimes | false | Pre-match |
| PlayerToAssist3PlusTimes | false | Pre-match |
| PlayerToMake1PlusSaves | false | Pre-match |
| PlayerToMake2PlusSaves | false | Pre-match |
| PlayerToMake3PlusSaves | false | Pre-match |
| PlayerToMake4PlusSaves | false | Pre-match |
| PlayerToMake5PlusSaves | false | Pre-match |
In-Play Market Suspension
Section titled “In-Play Market Suspension”For in-play markets, suspension can occur at either object level or selection level depending on match events.
Suspension Triggers
Section titled “Suspension Triggers”The following match events trigger automatic suspension (until they are confirmed with player data or cancelled):
- Goals - All scoring events
- Red Cards (including Second Yellow Cards)
- VAR Events - Video Assistant Referee reviews
- Penalties - Penalty kicks awarded
Additional Suspension Scenarios
Section titled “Additional Suspension Scenarios”- Feed Issues: Suspension will be sent across all markets if a scout feed becomes unavailable or match-level inputs are stale
- Late Match Suspension: All live markets are suspended from the 88th minute (calculated from 2nd Half KO + 43 minutes)
- Processing Order: Price changes and settlement will be processed before any unsuspension
Selection-Level Suspension
Section titled “Selection-Level Suspension”When an individual selection is set to "suspended": true, that selection should not be offered for wagering. This occurs when:
- A selection has been settled in a given market (e.g., Anytime Goalscorer)
- The partial outcome of a market is known without full settlement (e.g., Score and Team Win/Draw/Lose)
Current Metric Value
Section titled “Current Metric Value”The current_metric_value provides real-time tracking of player performance metrics during live matches.
Availability Requirements
This feature is only available when:
- The market is offered in-play
How It Works
Section titled “How It Works”The current_metric_value displays the current integer value of the related metric and operates as follows:
Initialization:
- Populated at kick-off (status change from
'Pre-Match'to'1st Half') - Only available for on-field selections or players who come on during the match
Live Updates:
- Updates across all live market types for the associated metric
- Reflects real-time player performance data
Example Usage
Section titled “Example Usage”When a player scores their second goal in a match, the attribute will display:
"current_metric_value": 2Field Status
Section titled “Field Status”The field_status attribute tracks a player’s participation status throughout the match lifecycle.
When It’s Populated
The field_status is populated when:
- Line-ups are received for a game covered by Abelson Sports in-play
- The match enters Pre-Match phase
Status Values
Section titled “Status Values”| Status | Description | Example Scenarios |
|---|---|---|
"on" | Active Player | Player is part of the starting XI or has come on to the field of play |
"off" | Inactive Player | Player has been substituted off or received a red card |
"bench" | Available Substitute | Player is a substitute who hasn’t yet played in the match |
"null" | Not Available | Selection is not part of the match-day squad |
Usage Examples
Section titled “Usage Examples”{ "field_status": "on", // Starting XI player "field_status": "bench", // Unused substitute "field_status": "off", // Substituted player "field_status": null // Not in squad}Market State
Section titled “Market State”The state attribute indicates whether a props market is available for betting.
State Values
Section titled “State Values”| State | Description | Betting Status |
|---|---|---|
"Open" | Market Available | Market is available for betting |
"Closed" | Market Unavailable | No bets should be accepted |
When Markets Are Closed
Section titled “When Markets Are Closed”Markets are set to "Closed" in the following scenarios:
- Placeholder Markets - Reserved for indexed markets (see Indexed Markets)
- Known Outcomes - When market outcome may already be determined
- Match Events - During certain match situations requiring suspension
In-Play Attribute
The state attribute is primarily an in-play feature and should only be relied upon for matches booked with Abelson Sports in-play coverage.
Indexed Markets
Section titled “Indexed Markets”Indexed markets provide dynamic goal-scoring markets that update throughout a match, allowing betting on the “next goal scorer” as the game progresses.
How Indexed Markets Work
Section titled “How Indexed Markets Work”Supported Markets:
- First Goalscorer (
firstPlayerToScore) - First Team Goalscorer (
FirstTeamHomeGoalscorer/FirstTeamAwayGoalscorer)
Market Lifecycle
Section titled “Market Lifecycle”Initial Setup:
firstPlayerToScore 1- Pre-match market (becomes active when game moves from “Fixture” to “Pre-Match”)firstPlayerToScore 2- Pre-created with'closed'state for preparation
Goal Event Process:
- Current indexed market settles and becomes
'closed' - Next index updates from
'closed'to'open' - Following index is created with
'closed'state for future goals
Indexing Approaches
Section titled “Indexing Approaches”Kero supports such configuration:
Total Match Goals (Including Own Goals)
Markets align with total goal count including own goals in the index progression.
Example: Match score 1-0 with an own goal
firstPlayerToScore 2becomes the open market- Index progresses based on total goals scored
Settlement
Section titled “Settlement”Settlement determines the final outcome for each selection once the result is known and confirmed.
Settlement Timing
Unless flagged as "resulted_postmatch", settlement is sent immediately once the outcome is known and confirmed.
Settlement Process
Section titled “Settlement Process”Initial Settlement Trigger:
- Occurs when match status changes from
FixturetoPre-Match - Any non-deleted selections not part of the match day squad are settled as
void
Settlement Values
Section titled “Settlement Values”| Settlement Status | Description | When It Occurs |
|---|---|---|
"not settled" | Outcome Unknown | Settlement is not yet determined for the selection |
"win" | Winning Selection | Selection successfully met the market criteria |
"lose" | Losing Selection | Selection failed to meet the market criteria |
"void" | Voided Selection | Selection had no opportunity to win the market |
Settlement Examples
Section titled “Settlement Examples”{ "settlement": "win", // Player scored as expected "settlement": "lose", // Player did not score "settlement": "void", // Player not in squad "settlement": "not settled" // Match still in progress}Post-Match Settlement
Section titled “Post-Match Settlement”Settlement Logic
Section titled “Settlement Logic”Special Selections
Section titled “Special Selections”Props markets may include special selections that represent “negative” outcomes, such as no events occurring.
Special Selection Types
Common special selections include:
- “No Goalscorer” - No player scores in the specified scenario
- “No Card” - No cards are issued during the match period
Entity Structure for Special Selections
Section titled “Entity Structure for Special Selections”Special selections use standardized entity values:
| Entity Type | ID Value | Name | Usage |
|---|---|---|---|
| PLAYER | 0 | "No Goalscorer" / "No Card" | Always set to ID 0 for special selections |
| TEAM | 0 or team ID | "" or team name | Depends on market scope |
Team ID Behavior
Section titled “Team ID Behavior”- General Markets: Both
player_idandteam_idare set to0 - Team-Specific Markets:
player_idis0, butteam_idcontains the actual team ID
Examples:
anytimePlayerToScore→team_id: 0FirstTeamHomeGoalscorer→team_id: 14(Real Madrid)
Example JSON Structure
Section titled “Example JSON Structure”{ "selection_id": 558435326, "suspended": false, "settlement": "not settled", "deleted": false, "field_status": null, "numerator": 28, "denominator": 1, "raw_price": 64.072, "expected_minutes": 0, "player_expectancy": 0, "player_percentage": 0, "likely_starter": false, "current_metric_value": null, "entities": [ { "type": "PLAYER", "id": 0, "name": "No Goalscorer" }, { "type": "TEAM", "id": 0, "name": "" } ]}Selection Deletion
Section titled “Selection Deletion”The deleted flag indicates when a selection is no longer available for the match.
Purpose
This prevents selections from simply “disappearing” from the message, providing clear visibility when players become unavailable.
When Selections Are Deleted
Section titled “When Selections Are Deleted”The "deleted" field is set to true when it becomes clear that a selection is no longer available for the match:
- Injuries - Player sustains injury preventing participation
- Bans - Player receives suspension or disciplinary action
- Squad Changes - Player excluded from match-day squad
Settlement Behavior
Section titled “Settlement Behavior”Player Reinstatement
Section titled “Player Reinstatement”In rare cases where a deleted player becomes available again:
- New Selection ID - Player is re-introduced under a new selection ID
- Original ID Unchanged - The original selection ID will not be settled
- Manual Intervention - May require operator intervention for proper handling
Example Scenario: An injury proves less severe than originally announced
Pricing
Section titled “Pricing”Props markets use a sophisticated pricing model with multiple price formats and algorithmic components.
Price Formats
Section titled “Price Formats”Prices are listed as both "raw_price" and a laddered (marginated or including vig) fractional price (combined "numerator"/"denominator").
| Attribute | Description | Example |
|---|---|---|
"raw_price" | True unmarginated price (without vig) | Calculated assuming player starts the game |
"numerator"/"denominator" | Margin-added fractional price | 5/4 = 2.25 decimal, +125 US, -0.80 Malay (44.44% implied probability) |
Price Behavior
Section titled “Price Behavior”In-Play Coverage:
raw_priceof starting XI snaps to 100% book at line-up receipt- Uses bell curve margin applicator
Pricing Components
Section titled “Pricing Components”Algorithmic Attributes:
"player_expectancy"- Expected total of the metric allocated to the player for this match (consistent across related markets)"player_percentage"- Assessed player share for the metric (range: 0.0 to 1.0)"expected_minutes"- Integer value factored into pricing (for visibility only)
Example Price Calculation
Section titled “Example Price Calculation”{ "raw_price": 4.5, "numerator": 5, "denominator": 4, "player_expectancy": 0.85, "player_percentage": 0.22, "expected_minutes": 90}Selection Suspension
Section titled “Selection Suspension”Selection-level suspension occurs when prices fall outside acceptable ranges.
Detailed player metrics Markets Only
This applies specifically to markets where the source is ‘PlayerToHave’, ‘PlayerToMake’, ‘PlayerToCommit’,‘PlayerToWin’ , ‘PlayerToBeOffside’, ‘PlayerToAssist’.
Suspension Criteria
Section titled “Suspension Criteria”Selections are created with suspended: true when underlying probabilities are:
- Minimum probability: ≤ 0.02 (2%)
- Maximum probability: ≥ 0.95 (95%)
This ensures selections remain within desired pricing ranges and maintain market integrity.
Likely Starter
Section titled “Likely Starter”The likely_starter flag identifies players expected to be in the starting XI.
How It Works
Section titled “How It Works”- Boolean flag -
trueindicates likely starter - Selection criteria - Highlights 5 players from each side
- Bias towards - Forward players and goalscorers
Use Cases
Section titled “Use Cases”Example Applications:
- Featured player selections
- Combination bet recommendations
- Market prioritization
- UI/UX enhancement