💧Maker Points

Definitions

TermDefinition

Maker Score

Dynamic score for each Maker based on quality of quotes and recent maker volume (as measured by Quote Quality and Maker Volume Score)

Maker Point Share

Determines the share of the Maker from the total points allocated to the instrument within a small timeframe. It is calculated as the share of a Maker score from the total score of all Makers

Quote Quality

Dynamic USD value calculated for each Maker to assess the quality of provided liquidity. It is calculated as the exponential moving average of Sample Quote Quality

Maker Volume Score

Dynamic score that takes into account recent maker volume of the wallet and decays exponentially over time

Volume weight

Power weight assigned to the maker volume in the Maker score formula. The remaining weight is assigned to the quote quality

For each instrument, each wallet is assigned a dynamic Maker Score which is calculated as the (power) weighted product of the Quote Quality and the Maker Volume Score :

Maker Score=(Quote Quality)1Volume Weight  (Maker Volume Score)Volume Weight\text{Maker Score}=\text{(Quote Quality})^{1-\text{Volume Weight}}~*~\text{(Maker Volume Score)}^{\text{Volume Weight}}

where Volume Weight\text{Volume Weight} is a pre-defined weight parameter. It is equal to :

  • 80% for Tier 1

  • 70% for Tier 2

Calculating the Quote Quality

TermDefinition

Quote Quality

Dynamic USD value calculated for each Maker to assess the quality of provided liquidity. It is calculated as the exponential moving average of Sample Quote Quality

Sample Quote Quality

Minimum of Sample Bid and Ask Quality

Sample Bid/Ask Quality

USD value that assesses the equality of quotes on the bid and ask side depending on the quote sizes and their distance from mid-price (order depth)

Scaling factor

Factor used to scale the order size down exponentially depending on its depth

For a wallet with a number of open buy and sell orders on a given instrument, Sample Quote Quality is calculated as

Sample Quote Quality =Weight on Minmin(Sample Bid Quality , Sample Ask Quality)+(1Weight on Min)max(Sample Bid Quality , Sample Ask Quality)\small\text{Sample Quote Quality }=\text{Weight on Min}*\\\min( \text{Sample Bid Quality}~,~\text{Sample Ask Quality})+(1-\text{Weight on Min})*\\\max( \text{Sample Bid Quality}~,~\text{Sample Ask Quality})

i.e. Sample Quote Quality\small\text{Sample Quote Quality} is a weighted average between the min and the max of the Sample Bid Quote Quality\small\text{Sample Bid Quote Quality} and Sample Ask Quote Quality\small\text{Sample Ask Quote Quality}

where : Weight on Min​=70%\small\text{Weight on Min}​=70\% which incentivizes two-sided quoting

{Sample Bid Quality=Buy orders bi Size(bi)exp(scaling factorQuote Depth of bi)Sample Ask Quality=Sell orders si Size(si)exp(scaling factorQuote Depth of si)\begin{equation*} \small \begin{cases} \text{Sample Bid Quality}=\sum\limits_{\text{Buy orders }b_i} \text{ \text{Size}}(b_i)*\exp\Big(-\text{scaling factor}*\text{Quote Depth of }b_i\Big)\\\\ \text{Sample Ask Quality}=\sum\limits_{\text{Sell orders }s_i} \text{ \text{Size}}(s_i)*\exp\Big(-\text{scaling factor}*\text{Quote Depth of }s_i\Big) \end{cases} \end{equation*}

where the Order Depth is calculated as the distance from mid-price (average between the best bid and best ask on the market) expressed in bps :

Quote Depth=Quote Price - Orderbook Mid-PriceOrderbook Mid-Price10,000\text{Quote Depth}=\frac{|\text{Quote Price - Orderbook Mid-Price}|}{\text{Orderbook Mid-Price}}*10,000

i.e. each order is weighted with an exponential term that penalises distance from mid-price.

Example

The following example is based on an assumed scaling factor=0.3\text{scaling factor}=0.3

Order Depth (bps)Scaling

0.5

86%

1

74%

5

22%

10

5%

The first chart below shows an example snapshot of a wallet’s open orders as well as the scaling function for different price levels. In line with the definitions above, the scaling function is : exp(scaling factorQuote Depth)\small\exp\Big(-\text{scaling factor}*\text{Quote Depth}\Big)

After applying the scaling to each of the orders, the chart below shows the Adjusted Order Sizes, i.e. : Adjusted Quote Size=Quote Sizeexp(scaling factorQuote Depth)\small\text{Adjusted Quote Size}=\text{Quote Size}\exp\Big(-\text{scaling factor}\text{Quote Depth}\Big)

Summing up Adjusted Order Size by side gives the Sample Bid and Ask Quote Quality illustrated in the chart below :

Assuming Weight on Min=70%\small\text{Weight on Min}=70\%, a Sample Quote Quality is then determined at this sample timestamp :

  Sample Quote Quality =Weight on Minmin(Sample Bid Quality , Sample Ask Quality)+(1Weight on Min)max(Sample Bid Quality , Sample Ask Quality)42,894 USD\small\Longrightarrow~~\text{Sample Quote Quality }=\text{Weight on Min}*\\\min( \text{Sample Bid Quality}~,~\text{Sample Ask Quality})+(1-\text{Weight on Min})*\\\max( \text{Sample Bid Quality}~,~\text{Sample Ask Quality})\approx42,894~\text{USD}

The Quote Quality is a moving average of Sample Quote Quality. This chart shows an example of the variations in the Quote Quality from a illustrative data set of Sample Bid/Ask Quality (assuming here a 20% weight on the latest measurement)

i.e. for consecutive update timestamps tit_i and ti+1t_{i+1} (where ti+1=ti+10 secondst_{i+1}=t_i+10\text{ seconds} ) :

Quote Quality(ti+1)=20%Sample Quote Quality(ti+1)+80%Quote Quality(ti)\text{Quote Quality}(t_{i+1})=20\%*\text{Sample Quote Quality}(t_{i+1})+80\%*\text{Quote Quality}(t_{i})

Orders will be subject to a Maximum spread (e.g. 20bps) : Orders with a higher depth than the maximum spread will be discounted from the Quote Quality calculation

Calculating the Maker Volume Score

TermDefinition

Maker Volume Score

Dynamic score that takes into account recent maker volume of the wallet and decays exponentially over time

Decay factor

The factor by which the maker volume score decays exponentially over time

The scoring mechanism defines a dynamic score that increases by recent maker volume and decays exponentially over time.

For a given market, the maker volume score is calculated as follows :

Maker Volume Score=Previous Maker Volume Scoreexp(decay factor  time since last update)+Maker Volume since last update\small\text{Maker Volume Score}=\text{Previous Maker Volume Score}*\\\exp(-\text{decay factor}~*~\text{time since last update})+\text{Maker Volume since last update}

where time is expressed in days.

A common way to think about exponential decay is in terms of half-life, which quantifies how fast the decay is occurring. The half-life is the time required for the decaying quantity to be reduced to half its initial value :

Half-life=log(2)decay factor\text{Half-life}=\frac{\log(2)}{\text{decay factor}}

Example

In Tier 1 pool, the maker volume score has a half-life of 30 minutes i.e. a daily decay factor of 33.27 (exp(33.27302460)50%\exp(-33.27*\frac{30}{24*60})\approx50\%)

  • Decay Factor = 33.27 : i.e. In the absence of maker volume from wallets, the score decays by exp(33.27number of hours/24)\small\exp(-33.27*\text{number of hours} / 24) over time. This means that :

    • The score drops by 1exp(33.27/(2460))2.28%\small1-\exp(-33.27/(24*60))\approx2.28\% over 1 minute and

    • The score drops by 1exp(33.27/24)25\small1-\exp(-33.27/24)\approx25% over 1 hour

TimeMakerVolume (USD)

00:00:00

Alice

10,000

00:20:00

Bob

20,000

00:40:00

Alice

5,000

01:00:00

Charlie

15,000

02:00:00

Alice

5,000

03:00:00

Bob

8,000

Calculating the Maker Score and Point Shares

TermDefinition

Maker Score

Dynamic score for each Maker based on quality of quotes and recent maker volume (as measured by Quote Quality and Maker Volume Score)

MakerPoint Share

Determines the share of the Maker from the total points allocated to the instrument within a small timeframe. It is calculated as the share of a Maker score from the total score of all Makers

The Maker Score and Maker Point Share for a given Maker are calculated as follows :

Maker Score=(Quote Quality)1Volume Weight  (Maker Volume Score)Volume Weight\text{Maker Score}=\\\text{(Quote Quality})^{1-\text{Volume Weight}}~*~\text{(Maker Volume Score)}^{\text{Volume Weight}}

where Volume Weight is equal to :

  • 80% for Tier 1

  • 70% for Tier 2

Maker Point Share=Maker ScoreTotal Score of all Makers\small\text{Maker Point Share}=\frac{\text{Maker Score}}{\text{Total Score of all Makers}}

Using the example of Maker Volume Scores above, and an assumption that the Quote Quality for each of the 3 wallets has been constant over the whole timeframe and has been equal to 10,000, the Maker Score is obtained as the weighted product of the Quote Quality and Maker Volume Score :

Using the above Maker Scores, the following chart shows the Point Share of each liquidity provider over time:

Taking a further assumption that the Maker share for ETH-USD-PERP from the Tier 1 pool is a constant 50%, the total hourly number of points allocated to this market for the Maker program is :

  • Total weekly allocation is 1’000’000 points. This is equivalent to an hourly allocation of 1’000’000 / (7 x 24) ~ 5’952.4 points

  • 80% of this hourly allocation is available to Tier 1 pool, i.e. ~4’761.9 points

  • 30% of the hourly Tier 1 allocation is available to the Tier 1 Maker program, i.e. ~1’428.6 points

  • 50% of this hourly Tier 1 Maker allocation goes to ETH-USD-PERP, i.e. ~714.29 points

Therefore, 714.29 points is the total hourly number of points available to ETH-USD-PERP Makers.

From the Point Share which corresponds to the rate of accruing points, the cumulative points for each wallet (accumulated points since time 0) have been derived.

Note that Alice earns 238 points between 0:00:00 and 0:20:00 (i.e. a the rate of 714.29 points per hour) since the point share of this wallet was 100%. After Bob’s trade and score increase, Alice points share dropped to ~36% which decrease the rate of earning points of Alice to 0.36 * 714.29 ~ 257.1 point per hour.

Below the total points distributed across wallets. Points are distributed at the rate of ~714.28 points per hour :

Last updated