Summary

This document introduces a quality ranking system to ensure high quality pricing data on Pythnet. The ranking system will use 3 criteria to evaluate each publisher’s performance: uptime (weight of 40%), price deviation (weight of 40%), lack of stalled prices (weight of 20%). The ranking will be calculated on a monthly basis to ensure that only the top-performing publishers remain permissioned for each price feed on Pythnet.

Eligibility

Important: Publishers who have an uptime of at least 50% in the period considered will be included in the ranking and eligible to compete for a top 32 spot. If uptime is less than 50%, then deviation and stalled scores will be 0 to reflect ineligibility.

Publishers in Pythtest conformance who are not publishing on Pythnet and pass this uptime condition will also be ranked together with the Pythnet publishers for each symbol.

Metrics Used

  1. Uptime: This metric measures the percentage of time a publisher is available and actively publishing data. A higher numerical score indicates a higher uptime maintained for the price feed. Score range: 0-1.
  2. Price Deviation: This metric measures deviations that occur between a publishers’ price and the aggregate price, normalized by the aggregate confidence interval. A higher numerical score indicates a lower degree of price deviation. Score range: 0-1.
  3. Stalled Prices: This metric penalizes publishers reporting the same value for the price of an asset for at least 100 consecutive slots, because such instance indicates potential data staleness. Publishers with less stalled prices will get a higher score. Score range: 0-1.

Ranking Algorithm

  1. Calculate Scores for Each Metric: Each metric is assigned a weight, and the score for each metric is calculated based on the publisher's performance.
  2. Aggregate the Scores: The scores from all metrics are aggregated with respect to their weights to calculate a final score for each publisher.
    1. Weight distribution:
      1. Uptime: 40%
      2. Price Deviation: 40%
      3. Stalled Prices: 20%
  3. Sort and Rank Publishers: Publishers are sorted based on their final scores, with the highest score indicating the best performance.

Scoring and Ranking

Metrics

Uptime: 40% weight

$$ \text{Score}_{\text{Uptime}} = \frac{\text{Publisher Slot Count}}{\text{Aggregate Slot Count}} $$