GTS Bet Assessment Calculations

 

Summary

This document explains how GTS Bet Assessment assesses bets, and how it calculates its responses.

Bet assessment supports the following features:

  • 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.

  • AcceptAny - if the selection price or all selections prices in multi and system bet are the same or changed in any direction within the configured threshold then accept bet if it doesn't breach any liability limits

  • AcceptHigher - if the selection price or all selections prices in multi and system bet are the same or have become higher within the configured threshold then accept bet if it doesn't breach any liability limits

  • AcceptNone - if the selection price or any selection price in multi and system bet changes then accept bet if it doesn't breach any liability limits

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.

Leg

Stake

Odds

Bet 1 Liability

Per-Player Liability

Market-Level Liability

Player Limit

Player

Bet Factor

Market Limit

Leg

Stake

Odds

Bet 1 Liability

Per-Player Liability

Market-Level Liability

Player Limit

Player

Bet Factor

Market Limit

Chelsea Win

10

25

=10 - (25 * 10)

= -240

0.00

-685

-500

1.0

-1000

 

 

Bet 1

Per-Player Liability

Market-Level

 

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.

Leg

Stake

Odds

Bet 2 Liability

Per-Player Liability

Market-Level Liability

Player Limit

Player

Bet Factor

Market Limit

Leg

Stake

Odds

Bet 2 Liability

Per-Player Liability

Market-Level Liability

Player Limit

Player

Bet Factor

Market Limit

Chelsea Win

10

25

=10 - (25 * 10)

= -240

-240

-925

-500

1.0

-1000

 

Bet 2

Per-Player Liability

Market-Level

 

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 :

  • 1 cent

  • 25 cents

  • 1,000 satoshis (fraction of a bitcoin)

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

 

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.

Singles are straightforward as they consist of only one leg, and the full stake of the bet is assigned to that leg.

Multis consist of multiple legs, and each leg is assessed against the corresponding limits set for each selection. In order to do this, for each leg we must calculate the proportion of the bet’s total stake that should be assigned to each leg. We call this apportionment, please see this page for examples and details of the apportionment algorithm.

System Bets can be considered as a bundle of individual multis - there is one multi for each combination that makes up the System Bet. For the purposes of assessment, we also need to calculate how much stake should be assigned to each leg (noting that each leg may be a participant in many of the constituent multis). Please see this page for examples and details of the system bet apportionment algorithm.

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.

Note I have included the calculated apportionment factor in this table as well for reference. This is because it is required later to calculate the maximum allowed stake (see example 5, below)

Leg

Selection

Price (when struck)

Apportionment Factor (Ak)

Apportioned Stake

Takeout

Leg

Selection

Price (when struck)

Apportionment Factor (Ak)

Apportioned Stake

Takeout

1

Market 141515 : Selection Home

1.5

0.12

12.00

18.00

2

Market 157967 : Selection Draw

6.5

0.5545

55.45

360.42

3

Market 131093 : Selection 4 or More Goals

3.0

0.3255

32.55

97.65

Here are the corresponding Liabilities and Limits for each of the 3 legs. In this example, note that Leg 2 already has pre-existing player liability of -400 while leg 3 has existing liability of -450 and a low market-level limit set.

Leg

Stake

Odds

Per-Leg Liability

Per-Player Liability

Market-Level Liability

Player Limit

Player

Bet Factor

Market Limit

Leg

Stake

Odds

Per-Leg Liability

Per-Player Liability

Market-Level Liability

Player Limit

Player

Bet Factor

Market Limit

1

12.00

1.5

= 12.00 - 18.00

= -6.00

0

-430

-500

1.0

-500

2

55.45

6.5

= 55.45 - 360.42

= -304.97

-400

-600

-500

1.0

-1000

3

32.55

3.0

= 32.55 - 97.65

= -65.10

0

-450

-150

1.0

-500

Leg 1 will not breach any limits as its liability is relatively low. Leg 2 will breach the player limit, while leg 3 will breach the market limit. Because 1 or more legs breached the corresponding limit, the bet as a whole is rejected.

 

Leg 2

Per-Player Liability

Market-Level

 

Leg 2

Per-Player Liability

Market-Level

Existing Liability

 

-400

-600

New Liability

-304.97

-704.97

-904.97

Liability Limit

 

-500

-1000

Assessment

REJECT

REJECT: -500 > -704.97

ALLOW: -1000 < -904.97

 

Leg 3

Per-Player Liability

Market-Level

 

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.

Remember that when the multi was apportioned, the apportionment factors were calculated in order to go from original bet stake to apportioned leg for each leg. These are required again here in order to go from maximum allowed apportioned leg stake to maximum allowed bet stake.

One final note is that in this example, 2 of the 3 legs are rejected. Each leg has its maximum allowed stake calculated, and the final result is the minimum of these.

 

Leg 2 Per-Player Liability

Leg 3 Market-Level

 

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 2 was the primary reason for the maximum allowed stake of 32.79, and you can see below that leg 2 now equals the remaining liability limit and therefore the bet is now approved.

Leg

Apportioned Stake

Takeout

New Liability

Allowed Player Liability

Allowed Market Liability

Assessment Result

Leg

Apportioned Stake

Takeout

New Liability

Allowed Player Liability

Allowed Market Liability

Assessment Result

1

3.94

= 1.5 * 3.94
= 5.90

 

-50

-70

ALLOW

2

18.18

= 6.5 * 18.18
= 118.18

=18.18 - 118.18
= -100.00

-100

-400

ALLOW

3

10.67

= 3.0 * 10.67
= 32.02

= 10.67 - 32.02
= -21.35

-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

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

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.

Some time will therefore pass between when a bet is assessed and when it is placed. During this time, the player might place another bet on the same selection (especially in the case of bet slips where the player submits multiple bets at once). Indeed some players may purposefully break a large bet down into multiple smaller bets in order to bypass liability assessment. For these reasons when a bet is assessed, its implicit liability is reserved within the Risk Assessment system.

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.

In some cases however, a bet that is assessed may not be subsequently placed at all. For example, the bet may fail the selection price check after bet delay. In this case, Liabilities is left holding the reserved liability and this needs to be released, or future bets by the player maybe incorrectly rejected.

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.

Leg

Stake

Odds

Bet Liability

Existing Player Liability

Existing Market Liability

Leg

Stake

Odds

Bet Liability

Existing Player Liability

Existing Market Liability

Chelsea Win + Draw

10

25.0

(10 - 250)

= -240

-100

-350

For Bet Assessment, the limits are divided by 2 for each selection in the market. The remaining assessment calculations remain the same, but using this adjusted effective limit.

 

Bet

Per-Player Liability

Market-Level

 

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

 

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:

  • reject all bets on the market

  • fallback to the most common case of one fixed winner.

Because rejection of bets is deemed more likely to adversely impact the bookmaker than allowing assessment to continue by assuming the most common case scenario, Bet Assessment assumers the latter and continues to perform assessment. There is a small possibility that during this time bets may surpass the liability limit that would have otherwise been in place but most bets will be assessed correctly.