• © Goverland Inc. 2026
  • v1.0.8
  • Privacy Policy
  • Terms of Use
Overtime GovernanceOvertime Governanceby0x461783A831E6dB52D68Ba2f3194F6fd1E0087E04Danijel

TIP-132: Change how min_spread variable is applied on Overtime

Voting ended about 3 years agoSucceeded
id Title Status Author Description Discussions to Created
TIP-132 Change how min_spread variable is applied on Overtime Draft Danijel (@danthales) Change how min_spread variable is applied on Overtime https://discord.gg/thales 2023-03-06

Simple Summary

Change the application of min_spread from an additive method to relative multiplication

Abstract

This TIP proposes to change the min_spread application from being added as a net value to the default odds, to being a multiplier

Motivation

Adding min_spread as an additive value was inherited from ThalesAMM architecture. While not an incorrect way to apply the margin, it led to Overtime having significantly better payouts on favourites and worse payouts on underdogs.

Overtime takes odds from oracle as those are provided by the selected book, e.g. Pinnacle, then we normalize odds to add up to 1 (or 100%). After the normalization we apply our own margin by adding min_spread variable and skew to the normalized odds. This yields a following scenario noticed on a tennis match with a heavy favourite:

API odds
favourite 1.03 | 97.1%
underdog 12 | 8.3%
sum = 105.4

Normalized odds:
97.1/105.4 = 0.9212
8.3/105.4 = 0.078

Our odds:
(0.9212 + 0.0133x1.5)x1.01 = 0.9505615 | 1.05
(0.078 + 0.0133x1.5)x1.01 = 0.0989295 | 10.1

In this example Overtime ended up having a 40% better payout on he favourite.

I believe its best to change our approach to using min_spread as a relative multiplier (4%), which will always get the odds back to the values on par with those received from the oracles. I feel this imperfection in odds has likely set us back somewhat PnL wise, and this change will allows us to have a better control over increasing liquidity.

After the change the odds would be:

0.9212 *1.04*1.01 = 0.96762848
0.078 *1.04*1.01 = 0.0819312

Thus almost exactly the same as on the API

Specification

Use min_spread as a relative multiplier instead of an additive constant. Set min_spread value to 4% (0.04 on 18 decimals)

Implementation

https://github.com/thales-markets/contracts/pull/301

Copyright

Copyright and related rights waived via CC0.

Off-Chain Vote

YES
7 TC-NFT100%
NO
0 TC-NFT0%
Download mobile app to vote

Timeline

Mar 15, 2023Proposal created
Mar 15, 2023Proposal vote started
Mar 18, 2023Proposal vote ended
Dec 19, 2024Proposal updated