Odds represent the probability of a particular outcome in a Condition actually happening. The odds for each outcome of a Condition are determined as the ratio of the total Condition funds to the funds of that particular outcome.
The higher the odds, the lower the chances of the outcome happening and the higher the potential payout for the player who placed a bet on that outcome. Betting odds are used by the Pool to manage the risk and set payout rates for different bets.
The calculation of the odds is based on the virtual funds of the Condition and its margin. Once the Condition is created, initial reinforcement is distributed proportionally among the outcome virtual funds based on their initial odds provided by the data provider. When a bettor places a bet, the outcome virtual fund on which they bet increases by the amount of the bet, and the net odds are calculated using the following formula:
Also the betting odds are adjusted according to the profit margin size set when creating the Condition. In order for the betting app to make a profit, the final odds are decreased by the size of the outcome spread, which is calculated based on the probability of the outcome and the profit margin. The probability of the outcome is calculated as the reciprocal of the net odds of the outcome:
The size of the outcome spread is proportional to the size of the profit margin and inversely proportional to the probability of the outcome. The spread for odds is calculated in such a way that the following conditions are met:
To find the spreads that satisfy the conditions described above, it is necessary to solve a system of differential equations, which is not feasible within the framework of EVM smart contracts. Therefore, the spread is calculated using a special formula that approximates it with some degree of error.
The payout size for a bet on outcome i in the event of its winning is calculated as follows:
After the bet has been accepted, the virtual fund of the other outcome changes as follows:
Thus, automatic market making of the betting odds is performed. However, data provider also has the ability to change the odds of each outcome at any time by passing desired values to a special method, thereby setting the desired odds for accepting the next bets on the Condition.