Tick size (or price increment) refers to the minimum price movement in a market. The price movements of different trading instruments vary, with their tick sizes representing the minimum amount they can move up or down on an exchange.
This enables a degree of standardization in the structure of the orders on the order book, and avoids the frustrating scenario where participants can be continuously outbid by an infinitesimally small change in price.
In traditional asset exchanges, price ticks tend to be standard right across the possible price range - for example, prices can increase or decrease in $0.01 steps. However, in probability based markets, the level of precision that is desired for high and low probability outcomes varies.
For example, we may wish to have sufficient precision to differentiate between 0.001 (Probability / 1000 Decimal) and 0.002 (Probability / 500 Decimal) events, while finding it unnecessarily precise and event leading to poor user experience to differentiate between 0.500 (Probability / 2.0 Decimal) and 0.501 (Probability / 1.99601 Decimal).
Tick bucketing on Aver
If you've placed an order on the aver.exchange application or interacted with the protocol via the SDK, it's likely that you've noticed your price being adjusted slightly before the order is posted. This is tick bucketing at play.
The order book can only accept prices which align to the specified set of acceptable price increments, so in anticipation of this, the front-end will adjust the price to align to the acceptable values.
Currently, one default approach to tick bucketing has been implemented in the Aver smart contract. Tick bucketing is carried out on the basis of Probability format prices, but for convenience, the approximate equivalent Decimal and American odds have been provided.
Decimal Price Bucketing (Approximate)
Bucketing is applied to the probability price as above. The increment actually applied is not linear when presented in Decimal odds, and so the Increment column below is purely indicative to give a sense of scale.
~26.32 - 111.11
~10.53 - 71.43
~5.26 - 22.22
~2.63 - 11.11
~1.05 - 7.14
~0.53 - 2.22
~0.01 - 1.11
Probability Odds Format Examples
If you are interacting with the platform using Probability price as your preferred format, the rounding is applied directly to the price entered in the new order form.
Entering a value of 0.007 will not be adjusted, as it already aligns to an acceptable 'tick'.
0.007 falls between 0.005 and 0.01, and requires that an acceptable value falls within 0.0005 increments.
(i.e. 0.0055, 0.006, 0.0065, 0.007, ... , 0.09, 0.0095, 0.01 are all acceptable)
Entering a value of 0.2345 would lead to a bucketed value of0.23.
0.2345 falls between 0.1 and 0.99 and requires that an acceptable value falls within 0.01 increments.
(i.e. 0.1, 0.11, 0.12, ..., 0.23, 0.24, ..., 0.98, 0.99 are all acceptable)
Since 0.23 is the closest acceptable value to 0.2345, this is the price at which the program will attempt to execute and place your order.
Decimal Odds Format Example
If you are interacting with the platform using Decimal price as your preferred format, the price is converted to probability prices first, before being bucketed to the nearest acceptable tick. The bucketed price you see is in fact an approximate Decimal equivalent of the underlying bucketed probability price.
Entering a value of 4.0 will not be adjusted, as it already aligns to an acceptable 'tick'.
4.0 is equivalent to a Probability price of 0.25, which falls between 0.1 and 0.99, and requires that an acceptable value falls within 0.01 increments.
(i.e. 0.1, 0.11, 0.12, ..., 0.24, 0.25, 0.26, ..., 0.98, 0.99 are all acceptable)
Entering a value of 33.0 will lead to an adjusted price being displayed.
33.0 is equivalent to a Probability price of 0.03333... which falls between 0.02 and 0.05 and requires that an acceptable value falls within 0.0025 increments.
(i.e. 0.02, 0.0225, 0.025, ..., 0.03, 0.0325, 0.035, ..., 0.045, 0.0475, 0.05 are all acceptable)
Since 0.325 is the closest acceptable (probability price) value to 0.03333..., this is the price at which the program will attempt to execute and place your order.
Converting this Probability price back to Decimal, gives us a price of 30.769, which is the Decimal representation of the nearest acceptable price tick - and the value which will be displayed in the interface.