Table of Contents |
---|
Summary
This document explains how GTS Bet Assessment assesses bets, and how it calculates its responses.
...
Singles, Multis and System bets with Static Stake Apportionment
Separate liabilities and limits for PreMatch and InPlay
Liability Reservation
Multiple Number of Winner Markets
Dynamic Number of Winner Markets
Bet Delay
Assess a bet against the current status of the selection(s)
Assess a bet against the current price of the selection(s)
Assess a bet against per-player liability limits - limit set per user on a liability or risk that punter can have per one selection of the market. If the limit is exceeded every further bet on that selection by the punter will be rejected. The punter risk is multiplied by the punters individual Bet Factor. Example: With a punter risk limit of 100 Euros, the punter risk stands at 100 Euros on the market with a Bet Factor of 1, 200 Euros with Bet Factor 2 and 50 Euros with Bet Factor 0.5.
Assess a bet against market-level liability limits - limit set on the overall liability on each market. It determines the maximum amount a sportsbook is willing to lose or take risk on any selection across all customers. If that limit is exceeded every further bet on that market will be rejected unless the limit is increased or liability will decrease.
Assess a bet against per-bet maximum stake limits - the maximum allowed stake per user allowed per one bet, regardless if it's single or multibet. The stake limit on the market is multiplied by the punters individual Bet Factor. Example: With a stake limit of 100 Euros, the punter can bet maximum 100 euros with Bet Factor 1 but 200 Euros with Bet Factor 2 and 50 Euros with bet factor 0.5
Player's bet factor - an individual percentage of a limit attached to each customer. By changing the bet factor we can decrease or increase the betting limits for each specific customer individually. By default every customer BF is 1, meaning that if Limit Per Player is set to 100 Euros and stake limit is set to 100 Euros then the customer will have the same limits. However if we change a customer's BF to 0.5 then limits for that player would be cut to 50%, so new limits are 50 Euros.
Assessment against selection status and price
Selection status check
If the selection or all selections in multi bet are opened then selection(s) price(s) and liabilities will be checked
If the selection or any of the selections in multi bet is suspended/closed then the bet is rejected with the reason suspended/closed
Selection price check
The selection price check is done based on the priceChangeRule value sent in the bet assessment request.
...
If priceChangeRule is not defined, there will be no price check made and assessment is done only against the current liability and limits on player and selection(s).
Assessment against liabilities and limits
Example 1 - Single Bet Assessment (Allowed)
A player strikes their first bet on a market, in this instance Chelsea to win the match. Other players have already placed bets on various selections of the market, corresponding to a market-level liability of -685 for this particular selection.
...
Bet 1 | Per-Player Liability | Market-Level | |
---|---|---|---|
Existing Liability | 0 | -685 | |
New Liability | -240 | -240 | -925 |
Liability Limit | -500 | -1000 | |
Assessment | ALLOW | ALLOW : -500 < -240 | ALLOW: -1000 < -925 |
Example 2 - Single Bet Assessment (Rejected)
The player immediately tries to place another 10 Euro bet on this market, again on Chelsea to win the match. Note that the liability from the first bet has now altered both the per-player liability and the market-level liability. As such, the market limit is breached and so the bet is assessed as not allowed.
...
Bet 2 | Per-Player Liability | Market-Level | |
---|---|---|---|
Existing Liability | -240 | -925 | |
New Liability | -240 | -480 | -1165 |
Liability Limit | -500 | -1000 | |
Assessment | REJECT | ALLOW : -500 < -480 | REJECT : -1000 > -1165 |
What is the Maximum Allowed Stake?
The Assessment service calculates the maximum stake that the bet could have in order to not breach the limit. Often this value is returned to the customer, and auto-populated in their bet slip so that they can immediately place the bet at a reduced stake in case their stake is not allowed.
Note about Rounding
We do not applying rounding to the final maximum allowed stake as this would incorrectly assume that we know the minimum unit size of bet able to be placed by the calling betting platform. Theoretical minimum unit sizes :
...
Instead, we return the calculated decimal value and provide the assertion that the figure is accurate to at least 10 significant figures. It is up to the caller to round this value down to the nearest unit that makes sense to them.
Example 3 - Maximum Allowed Stake Calculation ( Single Bet )
Per-Player Liability | Market-Level | |
---|---|---|
Assessment | ALLOW : -500 < -480 | REJECT : -1000 > -1165 |
Existing Liability | -240 | -925 |
Maximum Allowed Liability* | 500 - 240 = 260 | 1000 - 925 = 75 |
Maximum Allowed Stake (for each Liability) | 260 / 24 = 10.83 | 75 / 24 = 3.12 |
Maximum Allowed Stake | Min (10.83, 3.12) = 3.12 |
*for clarity’s sake i have removed the double negatives and am displaying magnitudes only. The actual calculation is -1000 - -925 = -75
The odds for the selection are 25, meaning that the liability is 24 times the stake. Only -75 extra liability is allowed before the Market-level limit is reached, thus the punter may only place a 3.12 bet on this selection at this time.
Bet Types and Stake Apportionment
Singles, Multis and System Bets can be assessed. We assess each leg (selection) individually, and if any of the legs breach their corresponding limit the bet is rejected.
...
Regardless of the type of bet to be assessed, we end up with a list of legs, and their corresponding apportioned stakes. These are the main inputs used for bet assessment and the calculations are applied in the usual way.
Example 4 - Multi Bet Assessment (Multi, Rejected)
In this example we have a 3-leg Multi. The original stake is 100, and the apportionment algorithm has distributed the stake among the 3 legs based on the price of each leg. The corresponding takeout is calculated as per usual as Price * Apportioned Stake.
...
Leg 3 | Per-Player Liability | Market-Level | |
---|---|---|---|
Existing Liability | -0 | -450 | |
New Liability | -65.10 | -65.10 | -515.10 |
Liability Limit | -150 | -500 | |
Assessment | REJECT | ALLOW: -150 < -65.10 | REJECT: -500 > -515.10 |
Example 5 - Maximum Allowed Stake (Multi)
The Maximum Allowed Stake is calculated for each leg based on the apportioned stake, price and remaining allowed liability.
...
Leg 2 Per-Player Liability | Leg 3 Market-Level | |
---|---|---|
Assessment | REJECT: -500 > -704.97 | REJECT: -500 > -515.10 |
Existing Liability | -400 | -450 |
Maximum Allowed Liability* | 500 - 400 = 100 | 500 - 450 = 50 |
Apportionment Factor | 0.5545 | 0.3255 |
Maximum Allowed Apportioned Leg Stake | 100 / (6.5-1) = 18.18 | 50 / (3-1) = 25.00 |
Maximum Allowed Bet Stake (per leg) | 18.18 / 0.5545 = 32.79 | 25.00 / 0.3255 = 76.80 |
Maximum Allowed Stake | Min (32.79, 76.80) = 32.79 |
*for clarity’s sake i have removed the double negatives and am displaying magnitudes only
To quickly check this is the correct answer, say the player now attempts to place the same bet but with the suggested stake of 32.79 instead of the original 100.
...
Leg | Apportioned Stake | Takeout | New Liability | Allowed Player Liability | Allowed Market Liability | Assessment Result |
---|---|---|---|---|---|---|
1 | 3.94 | = 1.5 * 3.94 | -50 | -70 | ALLOW | |
2 | 18.18 | = 6.5 * 18.18 | =18.18 - 118.18 | -100 | -400 | ALLOW |
3 | 10.67 | = 3.0 * 10.67 | = 10.67 - 32.02 | -150 | -50 | ALLOW |
Player Bet Factor
Bet Factor is applied to player level liability limit and it affects max allowed stake of the specific player. It is player specific and applied to every sport. By default bet factor is 1.0.
Example 6 - Maximum Allowed Stake (Different Bet Factors)
Leg | Odds | Player Limit | Market Limit |
---|---|---|---|
Chelsea to win | 2.00 | 1000 | 10 000 |
Per-Player Liability | Market-Level Liability | Player Bet Factor | Player Limit of this Player | Max Allowed Stake |
---|---|---|---|---|
0 | 0 | 1.0 | 1000 * 1.0 = 1000 | 1000 |
0 | 0 | 5.0 | 1000 * 5.0 = 5000 | 5000 |
0 | 0 | 0.1 | 1000 * 0.1 = 100 | 100 |
0 | -9000 | 1.5 | 1000 * 1.5 = 1500 | 1500 |
-1000 | -2000 | 2.0 | 1000 * 2.0 = 2000 | 1000 |
Liability Reservation
Bet Assessment is only one part of a betting platform’s per-bet validation. Often a Betting Api will check a bet against current prices, trading status and liabilities during validation. If a bet is to be delayed, further validation may take place after an artificially-induced delay.
...
Note that reserved liabilities act against the player liability, but not the market liability.
Releasing Reserved Liability
Often a bet that passes the risk assessment check is then placed shortly thereafter. When the confirmed bet is received by Liabilities, the reserved liability is converted directly into realised liability.
...
By default, liability from any bet that is reserved but not placed within 30 seconds is automatically released. However if the Betting Api wants to do so, they can explicitly release the reserved liability sooner by calling /Release/ on the Assessment Api.
Fixed Multiple Number of Winner Markets
As explained here, markets that have a fixed multiple number of winners get their liability adjusted by the Liabilities engine. For Bet Assessment, we divide the limit by the number of winners instead. Why the difference? There are a couple of reasons:
If you know that a market will have three winners, you probably don’t want to max out the entire liability on a single selection because that then prevents you from taking bets on the other selections, even those that haven’t yet taken any bets.
It makes it easier to deal with partial settlement because when we want to take a new bet we need only calculate the new liability on that selection and not worry about the other selections, irrespective of whether they have already been settled.
Example 7 - Assessment with Multiple Number of Winners
In this example, the bet is on a Double Chance market, which has 2 winners. There is existing player and market-level liability but no limits have yet been breached.
...
Bet | Per-Player Liability | Market-Level | |
---|---|---|---|
Existing Liability | -100 | -350 | |
New Liability | -240 | -340 | -590 |
Limit | -500 | -1000 | |
Fixed Number of Winners | 2 | 2 | |
Effective Limit | -500 / 2 = -250 | -1000 / 2 = -500 | |
Assessment | REJECT | REJECT: -250 > -340 | REJECT : -500 > -590 |
Example 8 - Maximum Allowed Stake with Multiple Number of Winners
The Maximum Allowed Stake calculation remains the same, albeit using the effective limits are per above:
Per-Player Liability | Market-Level | |
---|---|---|
Assessment | REJECT: -250 > -340 | REJECT: -500 > -590 |
Existing Liability | -100 | -350 |
Maximum Allowed Liability* | = (250 - 100) = 150 | = (500 - 350) = 150 |
Maximum Allowed Stake | 150 / 24 = 6.25 | 150 / 24 = 6.25 |
*for clarity’s sake i have removed the double negatives and am displaying magnitudes only
Dynamic Number of Winner Markets
For Bet Assessment, the case of dynamic number of winner markets is slightly different. As explained here, these markets are treated as though each selection is their own independent market. The liability is calculated on a per-selection basis (selection stake - selection takeout). Additionally, the full liability limit is offered for each selection independently.
Since Liabilities has already calculated the existing liability to be per-selection, and the provided limit is interpreted as per-selection as well, no other adjustments are required to be made during Bet Assessment.
Fallback when Market Type Information is Missing
Due to technical issues, there may be temporary periods where the market type information is not available. In this case, there are two options considered:
...