1. How to compensate the loss from the previous bets in my next bet?

Strictly speaking, the concrete formula depends on your staking plan.

However, in the general case, you can use the following formulas to compensate the total loss (+ exchange commission) accumulated since your last profit.

There is a built-in variable last_lost that holds the amount you’ve lost since your last win. Conversely, the last_won variable holds the amount of profit you’ve won since your last loss.


The complete list of win/lose variables is available in the user manual, chapter “Triggered Betting – Reference – Variables – Win/Lose History”.

To place the regular bet AND compensate the loss:

For backing:

Fixed bet size:

Amount: liab_size + last_lost/((back_price-1)*(1-commission))

Fixed profit:

Amount: (profit_size + last_lost/(1-commission))/(back_price-1)

For laying: 

Fixed bet size (profit):

Amount: profit_size + last_lost/(1-commission)

Fixed liability:

Amount: liab_size/(lay_price-1) + last_lost/(1-commission)

For back Dutching:

Amount to win (profit): profit_size + last_lost/(1-commission)

Amount to spend (liability): liab_size + last_lost*match_b_book/(100 - match_b_book)

For lay Dutching: 

Amount to win: profit_size + last_lost/(1-commission)

Amount to spend: liab_size + (last_lost/match_l_book)*(100 - match_l_book) 

Where liab_size is the size of your fixed liability; profit_size is the amount of expected profit, meaning you can use either of these depending on your strategy.

Download the triggers with all the formulas.

2. How to bet on the player who has won the previous set or game in tennis?

To select the player who has won the previous set:

Selection’s Trigger Expression tennis_p_player_sets_won is less than tennis_player_sets_won

and All Other Selection’s Trigger Expression other_tennis_p_player_sets_won is equal to other_tennis_player_sets_won

To select the player who has won the previous game in the current set:

Selection’s Trigger Expression tennis_p_player_games_won is less than tennis_player_games_won

and All Other Selection’s Trigger Expression other_tennis_p_player_games_won is equal to other_tennis_player_games_won

The meaning of these conditions is that the current number of sets/games won by the sought player is greater than the previous number of won sets/games. The previous score is the number of sets/games the players had won before the said score changed. 

3. How to calculate the book% of my existing back or lay bets?

You probably know already that a book% is the sum of selections’ chances to win, or 100/price1 + 100/price2 + … + 100/priceN for selections from 1 to N.

The book% figure is used in a multitude of Dutching strategies.

Normally you check this figure before you place either back or lay bets (to determine your liability for example). But sometimes you also need to know the book% formed of the prices of the bets you have placed already. For example, in The Dutching Chaser, the triggers monitor the current price of the selections that are still without matched bets, add their chances to the book% of matched bets and makes a decision as to whether it is profitable to place a new bet right now (or whether it is better to wait until the prices improve).

Take a look at this picture:

Book% of matched back bets

The book% based on matched back bets on this screen is 87.15%. There are also two unmatched bets, £5.56 @ 18.00 and £4.17 @ 24.00. Suppose, I want to earn 5% profit from this Dutching. The back book% in that case must be below (100% - 5%) = 95% for it to be profitable, so the chances of the unmatched bets must be no higher than 95 – 87.15 = 7.85%. Which means I can’t match them at the existing prices, 15.5 (Tornado Flyer) and 18.55 (Castlebawn West), because 100/15.5 + 100/18.55 = 11.84%. I need to wait until the combined price of these two selections grows higher.

Use these triggers to calculate the book% of matched and unmatched back and lay bets:

Download the trigger file.

After these triggers fire, they will create the following variables:

bm_book – book% of matched back bets;

bu_book – book% of unmatched back bets;

lm_book – book% of matched lay bets;

lu_book – book% of unmatched lay bets.

Place these triggers on top of other triggers that will use the variables. Inside the trigger file above, you will notice a block with optional initial back & lay bets, which you can enable to test the variables.

You might also like to check out this trigger example:

Two-Stage Dutching (Back)

4. How to recover the loss across the markets of the same football match?

In football, some markets will settle before others, for example, First Half 0.5 goals will be settled before Match Odds; or Over/Under 1.5 goals may settle before Over/Under 3.5 goals. This fact gives an opportunity for various loss recovery systems for football betting, such as the Over/Under Martingale.

The latter is a fairly complicated system, due to its ability to work with an undefined number of markets which settle at unpredicted times. The general approach is to make a user variable, e.g. current_lss, with a scope of the current event (as opposite to global or market variables) and set it to current_lss - market_settled_pl in all Settled markets, then use current_lss as the variable containing the current total loss.

But you can simplify it to one single formula if you bet in just 2 markets, and you know exactly that the bets in the second market must be placed after the first market is settled.

In that case you just need to know the right prefix for addressing those markets. For example, you lay on 0 – 0 in Half Time Score and want to recover the potential loss in Correct Score if none of the teams score in the first half. You know that the bet in Correct Score will only be placed in the second half if and after the Half Time Score market is settled.

Half Time Score vs Current Score loss recovery


Therefore, use the prefix football18_ for Half Time Score (the complete list of these prefixes is available in the manual, chapter “Triggered Betting – Reference – Variables – Market Variables – Prefixes for Cross-Market Betting). In the trigger for Correct Score add these conditions:

Selection’s Trigger Expression football18_market_inplay is equal to 3

and Selection’s Trigger Expression football18_market_settled_pl is less than 0

 which means that Half Time Score is settled and the bets placed there produced a loss. Then add any other conditions as necessary, e.g.

Selection’s Trigger Expression football18_market_inplay is equal to 3
and Selection’s Trigger Expression football18_market_settled_pl is less than 0
and Market’s Betting Code is Correct Score
and Selection’s Name is equal to “0 – 0”.

In the Amount field of the Correct Score trigger write the necessary formula for loss recovery from Question 1 above, only instead of last_lost use -football18_market_settled_pl, for example:

Amount: bet_size – football18_market_settled_pl/(1-commission)

Similarly, for First Half Goals 0.5 and Over/Under 0.5 Goals use:

Selection’s Trigger Expression football15_market_inplay is equal to 3
and Selection’s Trigger Expression football15_market_settled_pl is less than 0
and Market’s Betting Code is Over/Under 0.5
and Selection’s Index is equal to 1.

and in the Amount field of the Over/Under 0.5 trigger:

Amount: bet_size – football15_market_settled_pl/(1-commission)

If you have not heard of BetFair yet or do not have an account, register today and get £20 free. Use the link below:
New customers only, bet up to €/£20 on the Exchange and if your first bet loses, we’ll refund you €/£20 in Cash. Bet must be placed in first 7 days of account opening. T&Cs apply.
Gamble responsibly! Always be aware that betting is NOT risk-free. You must be 18+ years old before you try gambling, but even as an adult, withhold from spending money in an ill-judged manner. Our company does not encourage you to prefer gambling over other meaningful activities. If gambling is affecting your life or the lives of people close to you, please contact GamCare
© 2005-2023 WellDone Creative Software. All rights reserved. Terms and conditions.
BetFair® and the BetFair Logo are registered trade marks of Flutter Entertainment plc. Gamble responsibly.