Links

Coin Metrics Prices Methodology

The full text of this methodology can be downloaded as a pdf document using the link below.
coin-metrics-prices-methodology.pdf
290KB
PDF

Introduction

Coin Metrics publishes a collection of prices for a set of cryptocurrencies and fiat currencies consisting of the Coin Metrics Reference Rates (“CM Reference Rates”) and the Coin Metrics Principal Market Prices (“CM Principal Market Prices”), which are collectively referred to as the Coin Metrics Prices (“CM Prices”). This document describes the data inputs, calculation methodologies, and data exclusion rules for the CM Prices.
The CM Reference Rates are published once a day, once an hour, once a minute, once a second, and once every 200 milliseconds and utilize volume-weighted median, time-weighted average, and inverse price variance-weighted median techniques. Common use cases for the CM Reference Rates include research, backtesting, calculating net asset value for investment funds, calculating closing prices for indexes or financial benchmarks, serving as a data source for on-chain price oracles, risk management, indicative intraday values for investment funds and financial benchmarks, and settling financial derivatives.
The CM Principal Market Prices are published once a day, once an hour, once a minute, and once a second and adhere to the guidelines regarding fair value measurement issued by the International Financial Reporting Standards and the Association of International Certified Professional Accountants, specifically standards IFRS 13 and FASB ASC 820. The Principal Market Prices identify a principal market for each asset and utilize the most recent price from this market. Common use cases are for fair value measurement, preparing financial statements, and calculating closing prices for indexes or financial benchmarks.
The CM Prices are designed to serve as a set of transparent and independent pricing sources that promote the functioning of efficient markets, reduce information asymmetries among market participants, facilitate trading in standardized contracts, and accelerate the adoption of cryptocurrencies as an asset class with the highest standards. The CM Prices are calculated using robust and resilient methodologies that are resistant to manipulation and adhere to international best practices for financial benchmarks, including the International Organization of Securities Commissions’ (IOSCO) Principles for Financial Benchmarks. The Coin Metrics Oversight Committee (the “Oversight Committee”) and an independent governance structure protect the integrity of the CM Prices and ensure the CM Prices serve as a source of transparent and independent pricing.

Other Documents

The CM Prices are collectively governed by policies described in Coin Metrics Prices Policies which describes the administration, oversight, conflicts of interest, material changes and terminations, recalculations, internal controls, complaints, record retention, and compliance policies.
The CM Prices are supervised by the Coin Metrics Oversight Committee Charter which defines the responsibilities of the Oversight Committee.

Data Inputs

The Oversight Committee evaluates markets traded on digital asset exchanges as potential input data sources for the CM Prices using a Market Selection Framework. The framework consists of a fully-systematized process for evaluating markets along a wide set of criteria to determine if the data source reflects trading activity in a transparent and representative manner. In this framework, a market refers to a specific traded asset pair on a specific exchange. Only spot markets are considered. It produces a unique set of candidate selected markets for each asset in the coverage universe.
The Oversight Committee evaluates new markets for inclusion as a selected market and assesses already selected markets using the Market Selection Framework on a quarterly basis and during interim periods if market conditions warrant. Such market conditions include, but are not limited to, material changes in an exchange’s solvency risk, material changes in the degree of free capital flows in and out of an exchange, the presence of long-lasting price differences from other exchanges, and during times of market stress.
Markets that are approved by the Oversight Committee are added to a list of constituent markets (the “Constituent Markets”). A separate list of Constituent Markets is maintained for each of the assets in the coverage universe.
A candidate market can be nominated for inclusion and an existing constituent market can be nominated for exclusion by any member of the public or member of the Oversight Committee. Public nominations for inclusion or exclusion of a market can be submitted in writing to [email protected]. The Oversight Committee may convene to apply the Market Selection Framework to evaluate the inclusion or exclusion of a market between regularly-scheduled quarterly meetings if market conditions or circumstances warrant. Coin Metrics publishes a current list of Constituent Markets for each asset in the coverage universe, as well as updates on inclusions or exclusions of constituent markets, and the rationale for making any change.
The data inputs for the calculation of the CM Prices are observable transactions in a constituent where the given asset is traded.

Feature Descriptions

The Market Selection Framework consists of 45 features, 36 of which are in active use. Features represent individual measurable properties that provide an indication of the suitability for a market to serve as an input data source, which are combined to form a market rating.
Some of the features described in this section are indicator variables that encode qualitative information about a market or exchange. These indicator variables can require a degree of subjectivity in determining whether a market or exchange meets a certain criteria. In such cases, the indicator variable is set to true only if an unambiguous source is found that provides sufficient information to make an evaluation. In the absence of such a source, the indicator variable is set to false.

Technology

An assessment of whether the technology infrastructure of the market’s exchange provides sufficient availability and reliability for input data collection. Evaluates whether the exchange offers a REST API or websocket feed for data collection. Evaluates the performance of the API in terms of reliability.
  1. 1.
    has_rest_api: An indicator variable for the existence of a REST API.
  2. 2.
    has_websocket_feed: An indicator variable for the existence of a websocket feed.
  3. 3.
    has_fix_gateway: An indicator variable for the existence of a FIX gateway.
  4. 4.
    has_historical_trade_data: An indicator variable for whether the exchange offers historical trade data via its API.
  5. 5.
    has_real_time_trade_data: An indicator variable for whether the exchange offers real-time trade data via its API.
  6. 6.
    has_real_time_order_book_data: An indicator variable for whether the exchange offers real-time order book data via its API.
  7. 7.
    api_downtime_incidents: A feature that represents the stability of an API.
An assessment of selected indicator variables relating to compliance and risk for each exchange. These indicator variables include whether the exchange has publicly-disclosed trading policies, uses market surveillance technology, obtains regulatory licenses, has fiat and crypto insurance, requires customers to verify their identity before opening an account as part of its KYC and AML process, and whether the exchange has functioning fiat and cryptocurrency withdrawals processed within a normal timeframe.
  1. 1.
    has_trading_policy: An indicator variable for whether the exchange has a trading policy to promote fair and transparent markets. The trading policy should explicitly address manipulative trading policies like front-running, wash trading, spoofing, layering, churning, and quote stuffing.
  2. 2.
    has_market_surveillance: An indicator variable for whether the exchange uses market surveillance technology to detect market manipulation practices, including front-running, wash trading, spoofing, layering, churning, and quote stuffing.
  3. 3.
    has_regulatory_oversight: An indicator variable for whether the exchange obtains licenses from national or regional regulatory organizations.
  4. 4.
    has_fiat_insurance: An indicator variable for whether the exchange maintains commercial insurance or is covered under government-provided insurance to insure against losses of customer funds denominated in fiat currencies.
  5. 5.
    has_crypto_insurance: An indicator variable for whether the exchange maintains commercial insurance to insure against losses of customer funds denominated in digital assets.
  6. 6.
    has_kycaml: An indicator variable for whether the exchange requires identity verification before being able to open an account as part of its KYC and AML process. For the purposes of this indicator variable, an exchange which requires identity verification only if a customer wishes to deposit or withdraw fiat or if a customer wishes to withdraw digital assets is determined to not have sufficient controls. An exchange must require customers to verify their identity when opening an account as part of its KYC and AML process.
  7. 7.
    has_free_capital_flows: An indicator variable for whether the exchange has had a history of free capital flows over the last quarter, including functioning fiat and digital asset deposits and withdrawals that are processed within a normal timeframe.

Business Model

An assessment of the market’s exchange with respect to its business model, including its fee structure and asset listing standards.
  1. 1.
    has_fiat_markets: An indicator variable that indicates whether the exchange has markets where the quote currency is a fiat currency.
  2. 2.
    has_fees: An indicator variable that indicates whether the exchange charges trading fees as a percentage of the trade size. Exchanges that charge zero fees or charge fees indirectly through a transaction mining model are determined to not charge fees.
  3. 3.
    has_listing_standards: An indicator variable that indicates whether the exchange has publicly disclosed a framework for deciding which assets to list.
  4. 4.
    has_usa_hq: An indicator variable for whether the company’s headquarters are domiciled in the United States.

Data Availability

An assessment of the available data the market’s exchange offers for the given digital asset, including the amount of historical data available for a market and the quoted currency of the market.
  1. 1.
    market_days_history: The number of days of historical data for the market.
  2. 2.
    market_quote_modifier: An optional modifier to give greater weight to a certain quote currency. Currently all quote currencies have equal weight.

Price

An assessment of the quality of the market’s price data, including testing for the occurrence of price outliers and impactful price deviations from other markets, and implementing tests that determine whether the exchange’s markets function as active markets in the underlying digital asset and are anchored by observable transactions entered into at arm’s length between buyers and sellers.
In this section, prices are compared to the global median price. The global median price is defined as the median price of all markets in which the digital asset is the base currency from the following list of exchanges: ["Coinbase", "Poloniex", "Bittrex", "Gemini", "Kraken", "Binance", "Bitstamp", "itBit"]. This list of exchanges was selected by first calculating the market ratings for each market but without the price-related features below. The median market rating was then calculated for each exchange and the top 8 exchanges were selected.
  1. 1.
    market_open_mape_all: The mean absolute percentage error of the market’s daily open price compared to the global median’s daily open price over the last 90 days.
  2. 2.
    market_close_mape_all: The mean absolute percentage error of the market’s daily close price compared to the global median’s daily close price over the last 90 days.
  3. 3.
    market_low_mape_all: The mean absolute percentage error of the market’s daily low price compared to the global median’s daily low price over the last 90 days.
  4. 4.
    market_high_mape_all: The mean absolute percentage error of the market’s daily high price compared to the global median’s daily high price over the last 90 days.
  5. 5.
    market_open_mape_trimmed: The mean absolute percentage error of the market’s daily open price trimmed to exclude the bottom and top 5th percentiles compared to the global median’s daily open price over the last 90 days.
  6. 6.
    market_close_mape_trimmed: The mean absolute percentage error of the market’s daily close price trimmed to exclude the bottom and top 5th percentiles compared to the global median’s daily close price over the last 90 days.
  7. 7.
    market_low_mape_trimmed: The mean absolute percentage error of the market’s daily low price trimmed to exclude the bottom and top 5th percentiles compared to the global median’s daily low price over the last 90 days.
  8. 8.
    market_high_mape_trimmed: The mean absolute percentage error of the market’s daily high price trimmed to exclude the bottom and top 5th percentiles compared to the global median’s daily high price over the last 90 days.

Volume

An assessment of the quality of the market’s volume data, including testing for manipulated volume figures, and implementing tests that determine whether the exchange’s markets function as active markets in the underlying digital asset and are anchored by observable transactions entered into at arm’s length between buyers and sellers. The size of the exchange’s markets is also considered.
  1. 1.
    market_volume_usd: The total volume of the market over the past 90 days in U.S. dollars.
  2. 2.
    market_volume_dispersion: The coefficient of variation of the market’s daily volume in U.S. dollars over the past 90 days.
  3. 3.
    market_volume_price_corr_raw: The correlation of the market’s daily return to detrended daily volume where volume is quoted in raw units over the past 90 days.
  4. 4.
    market_volume_price_corr_usd: The correlation of the market’s daily return to detrended daily volume where volume is quoted in U.S. dollars over the past 90 days.
  5. 5.
    alexa_rank: The global rank of the exchange’s website as reported by Alexa.
  6. 6.
    alexa_page_views_per_million: The average page views per million visitors of the exchange’s website over the past month as reported by Alexa.
  7. 7.
    alexa_reach_per_million: The average reach per million visitors of the exchange’s website over the past month as reported by Alexa.
  8. 8.
    alexa_pvpmvu: The total U.S. dollar volume of the exchange over the past month divided by the page views per million visitors as reported by Alexa.
  9. 9.
    alexa_rpmvu: The total U.S. dollar volume of the exchange over the past month divided by the reach per million visitors as reported by Alexa.
  10. 10.
    similarweb_global_rank: The global rank of the exchange’s website as reported by SimilarWeb.
  11. 11.
    similarweb_visit_monthly: The number of monthly visits as reported by SimilarWeb.
  12. 12.
    similarweb_vmvu: The total U.S. dollar volume of the exchange over the past month divided by the monthly visits as reported by SimilarWeb.

Order Book

An assessment of the quality of the market’s order book data, including tests for manipulated orders, and implementing tests that determine whether the market functions as an active market in the underlying digital asset and are anchored by observable transactions entered into at arm’s length between buyers and sellers. The liquidity of the market is also considered.
  1. 1.
    order_book_depth: The total volume of bids and offers on the order book within 1 percent of the mid price of the exchange’s largest traded market where the given asset is the base currency reported in U.S. dollars.
  2. 2.
    slippage: The amount of slippage in percent terms if an immediate market sell order of $50,000 U.S. dollars is executed of the exchange’s largest traded market where the given asset is the base currency.
  3. 3.
    spread: The median of the spread calculated as the difference between the best bid minus the best ask divided by the mid-price over the past 30 days.
  4. 4.
    order_book_depth_residual: A regression model is fit by regressing volume on order book depth for the largest traded market for a collection of exchanges. Given an order book depth, an estimated volume is calculated and a residual is calculated as actual_volume - estimated_volume.
  5. 5.
    slippage_residual: A regression model is fit by regressing volume on slippage for the largest traded market for a collection of exchanges. Given a slippage, an estimated volume is calculated and a residual is calculated as actual_volume - estimated_volume.

Feature Normalization

All features are normalized to between 0 and 1, with a number closer to 1 meaning that the feature contributes positively to the likelihood that the market will be selected. The qualitative features are all indicator variables that take values 0 or 1. For quantitative features, a separate empirical cumulative distribution function is calculated for all the markets for each asset. The quantitative feature is normalized by converting the value to its equivalent value on the empirical cumulative distribution function.

Rating Algorithm

In order for a market to be eligible to receive a rating, the following three indicator variables for the market must be true: has_rest_api, has_real_time_trade_data, has_real_time_order_book_data. These indicator variables are required to be true because the ability to collect real-time trade data and real-time order book data via an API is necessary in order for the market to serve as an input data source.
The rating algorithm uses a weighted sum using a custom weighting function of the normalized features:
Feature
Weight
has_websocket_feed
1
has_fix_gateway
1
has_historical_trade_data
1
has_trading_policy
1
has_market_surveillance
1
has_regulatory_oversight
1
has_kycaml
1
has_fiat_insurance
1
has_crypto_insurance
1
has_free_capital_flows
3
has_fiat_market
1
has_fees
1
has_listing_standards
1
has_usa_hq
3
market_days_history
1
market_quote_modifier
1
market_open_mape_all
1
market_close_mape_all
1
market_low_mape_all
1
market_high_mape_all
1
market_open_mape_trimmed
1
market_close_mape_trimmed
1
market_low_mape_trimmed
1
market_high_mape_trimmed
1
market_volume_usd
3
market_volume_dispersion
1
market_volume_price_corr_raw
1
market_volume_price_corr_usd
1
alexa_rank
2
alexa_page_views_per_million
1
alexa_reach_per_million
1
alexa_pvpmvu
1
alexa_rpmvu
1
similarweb_global_rank
2
similarweb_visit_monthly
1
similarweb_vmvu
1

Selection Algorithm

Markets with a rating higher than 22.5 are selected. For each asset in the coverage universe, markets that are in the top 4 by rank are also selected, regardless of the market’s rating. Any market with volume, measured in U.S. dollars over the past 90 days, of less than 5 percent of the volume of the selected market with the largest volume is excluded.

Candidate Markets

The pool of candidate markets that are evaluated by the Market Selection Framework are determined by a hierarchy of data inputs that varies depending on the given asset.

Bitcoin (BTC) and Ethereum (ETH)

The pool of candidate markets that are evaluated for the calculation of the CM Prices for Bitcoin (BTC) and Ethereum (ETH) are determined using the following data hierarchy:
  1. 1.
    The primary data input is observable transactions in an active market where the given cryptocurrency is the base currency and the quote currency is U.S. dollars.
  2. 2.
    Markets where the given cryptocurrency is the base currency and the quote currency is not U.S. dollars are not considered, including markets quoted in other fiat currencies or markets quoted in stablecoins.

Other Cryptocurrencies Excluding Stablecoins

The pool of candidate markets that are evaluated for the calculation of the CM Prices for cryptocurrencies, excluding Bitcoin (BTC), Ethereum (ETH), and stablecoins are determined using the following data hierarchy:
  1. 1.
    The primary data input is observable transactions in an active market where the given cryptocurrency is the base currency and the quote currency is U.S. dollars.
  2. 2.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where the given cryptocurrency is the base currency and quote currency is Bitcoin (BTC).
  3. 3.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where the given cryptocurrency is the base currency and quote currency is Ethereum (ETH).
  4. 4.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where the given cryptocurrency is the base currency and quote currency is USD Coin (USDC).
  5. 5.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where the given cryptocurrency is the base currency and quote currency is Tether (USDT).

Stablecoins

The pool of candidate markets that are evaluated for the calculation of the CM Prices for stablecoins are determined using the following data hierarchy:
  1. 1.
    The primary data input is observable transactions in an active market where the given stablecoin is the base currency and the quote currency is U.S. dollars.
  2. 2.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where Bitcoin (BTC) is the base currency and quote currency is the given stablecoin.
  3. 3.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where Ethereum (ETH) is the base currency and quote currency is the given stablecoin.
  4. 4.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where the given stablecoin is the base currency and quote currency is USD Coin (USDC).
  5. 5.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where the given stablecoin is the base currency and quote currency is Tether (USDT).
The data hierarchy for stablecoins differs from other cryptocurrencies because market convention sets stablecoins as the quote currency for the majority of active markets. The following assets in the coverage universe are considered to be stablecoins:
Name
Ticker
Tether
usdt
TrueUSD
tusd
USD Coin
usdc
Paxos Standard
pax
Gemini Dollar
gusd
Binance USD
busd
Dai
dai
USDK
usdk
BIDR
bidr
sUSD
susd
Neutrino USD
usdn
TerraUSD
ust
Pax Dollar
usdp
USDD
usdd
Euro Coin
euroc
Staked Ether Lido
steth
poundtoken
gbpt

Fiat Currencies

The pool of candidate markets that are evaluated for the calculation of the CM Prices for fiat currencies are determined using the following data hierarchy:
  1. 1.
    The primary data input is observable transactions in an active market where the given fiat currency is the base currency and the quote currency is U.S. dollars.
  2. 2.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where Bitcoin (BTC) is the base currency and quote currency is the given fiat currency.
  3. 3.
    If the above data inputs do not exist or are insufficient to calculate the price, the universe of data inputs will expand to include observable transactions in an active market where Ethereum (ETH) is the base currency and quote currency is the given fiat currency.
The data hierarchy for fiat currencies differs from other cryptocurrencies because market convention sets fiat currencies as the quote currency for the majority of active markets. The following assets in the coverage universe are considered to be fiat currencies:
Name
Ticker
Euro
eur
British Pound
gbp
Japanese Yen
jpy
Canadian Dollar
cad
Korean won
krw
Russian Ruble
rub
Ukrainian Hryvnia
uah
Turkish Lira
try
Australian Dollar
aud
Brazilian Real
brl
Swiss Franc
chf
Hong Kong Dollar
hkd
Singapore Dollar
sgd

Reference Rates Calculation Methodology

The CM Reference Rates represent the reference rate of one unit of the asset quoted in U.S. dollars or other currency. The CM Reference Rates supports multiple frequencies. The daily and hourly frequencies utilize one calculation methodology and the minute, second, and 200 millisecond frequencies (“real-time frequencies”) utilize a separate calculation methodology. The daily and hourly frequencies are calculated at the end of every hour and day, respectively, (the “Calculation Time”) and are published within 5 minutes (the “Publication Time”). The real-time frequencies are published in real-time with no delay.

Coverage Universe

The set of assets included in the CM Reference Rates coverage universe are included in Appendix A.

Calculation Algorithm for Daily and Hourly Frequencies

The calculation algorithm of the CM Reference Rates for daily and hourly frequencies is described below.
  1. 1.
    All observable transactions from Constituent Markets are combined and partitioned into time intervals, with each time interval spanning a period of one minute. The first one-minute time interval begins 60 minutes before the Calculation Time and the last one-minute time interval begins at the Calculation and ends one minute after the Calculation Time. In total, the calculation period spans a period of 61 minutes (the “Observation Window”). A total of 61 one-minute time intervals are created.
  2. 2.
    The price of each observable transaction for one unit of the given asset is converted to U.S. dollars if necessary using the Reference Rates calculated for Bitcoin (BTC), Ethereum (ETH), USD Coin (USDC), or Tether (USDT).
  3. 3.
    The volume-weighted median price (VWMP) of each time interval is calculated. The volume-weighted median rate is calculated by ordering the transactions from lowest to highest price, taking the cumulative sum of volumes of these transactions, and identifying the price associated with the trades at the 50th percentile of volume measured in native units.
  4. 4.
    The time-weighted average price (TWAP) of the 61 time intervals is calculated using a custom weight function. The weight function assigns a weight of 0 percent to the first time interval, subsequent time intervals are assigned a weight that increases linearly, and the last two time intervals are assigned a weight of 5 percent such that the sum of all weights equals 100 percent. The weight function assigns more weight to time slices that are closer to the Calculation Time. The resulting figure is the published reference rate.
A chart of the weights is included below and the exact weights for each time interval are listed in Appendix B:

Data Contingency Rules for Daily and Hourly Frequencies

The following contingency rules are followed to address situations where data is delayed, missing, or unavailable due to periods of illiquidity, extraordinary market circumstances, or outside factors beyond the control of Coin Metrics.
  1. 1.
    If observable transactions from a constituent market are unable to be collected due to technical problems specific to the constituent market’s exchange during the calculation of a reference rate, the observable transactions from the constituent market are not included in the calculation of the specific instance of the given reference rate.
  2. 2.
    If no observable transactions from constituent markets occur during the first one-minute time interval, the next one-minute time interval’s volume-weighted median price is used as the volume-weighted median price. This contingency rule is applied recursively if necessary.
  3. 3.
    If no observable transactions from constituent markets occur during any one-minute time intervals, excluding the first and last one-minute time intervals in the Calculation Window, the next one-minute time interval’s volume-weighted median price is used as the volume-weighted median price. This contingency rule is applied recursively if necessary.
  4. 4.
    If no observable transactions from constituent markets occur during the last one-minute time interval, the previous time interval’s volume-weighted median price is used as the volume-weighted median price. This contingency rule is applied recursively if necessary.
  5. 5.
    If no observable transactions from constituent markets exist during the Calculation Period for a reference rate, the reference rate will be determined to equal the previous hourly reference rate in which there were trades during that hour’s Observation Window.

Calculation Algorithm for Real-Time Frequencies

The calculation algorithm of the CM Reference Rates for the real-time frequencies is described below.
  1. 1.
    Calculate the volume denominated in units of the given asset from observable transactions that occurred over the trailing 60 minutes for each of the Constituent Markets. Calculate the volume weight for each of the Constituent Markets by dividing the volume figure for each of the Constituent Markets by the total volume across all Constituent Markets. The resulting figure is referred to as the volume weight.
  2. 2.
    Convert the trade price of all observable transactions over the trailing 60 minutes for each of the Constituent Markets to U.S. dollars if necessary using the Real-Time Reference Rate calculated for Bitcoin (BTC), Ethereum (ETH), USD Coin (USDC), or Tether (USDT). Calculate the inverse variance of the trade price converted to U.S. dollars for each of the Constituent Markets using the population mean in the calculation of variance, where the population mean is defined as the mean price of all trades from Constituent Markets over the trailing 60 minutes. If a Constituent Market has an infinite or undefined inverse price variance, the inverse price variance for that Constituent Market is set to zero. Calculate the inverse price variance weight for each of the Constituent Markets by dividing the inverse price variance by the total inverse price variance across all Constituent Markets. The resulting figure is referred to as the inverse price variance weight.
  3. 3.
    Calculate the final weight for each of the Constituent Markets by taking a mean of the volume weight and the inverse price variance weight.
  4. 4.
    Extract the most recent observable transaction from each of the Constituent Markets. Convert the trade price of the most recent observable transactions to U.S. dollars if necessary using the Reference Rate calculated for Bitcoin (BTC), Ethereum (ETH), USD Coin (USDC), or Tether (USDT).
  5. 5.
    Calculate the weighted median price of the most recent observable transactions using the prices calculated in step 4 and the final weights calculated in step 3. The weighted median price is calculated by ordering the transactions from lowest to highest price, and identifying the price associated with the trades at the 50th percentile of final weight. The resulting figure is the published reference rate for the given asset.

Data Contingency Rules for Real-Time Frequencies

The following contingency rules are followed to address situations where data is delayed, missing, or unavailable due to periods of illiquidity, extraordinary market circumstances, or outside factors beyond the control of Coin Metrics.
  1. 1.
    If observable transactions from a constituent market are unable to be collected due to technical problems specific to the constituent market’s exchange during the calculation of a real-time reference rate, the observable transactions from the constituent market are not included in the calculation of the specific instance of the given real-time reference rate.
  2. 2.
    If no observable transactions from constituent markets exist during the trailing 60 minutes, the value of the real-time reference rate will be determined to equal the value calculated during the previous second.

Principal Market Prices Calculation Methodology

The Principal Market Prices are published once per second, every day of the year, and represent the price of one unit of the asset quoted in U.S. dollars.

Fair Market Valuation Background

The Principal Market Prices were developed taking into account the requirements of IFRS 13 and FASB ASC 820 accounting guidelines defining what a Principal Market is and how it should be selected. These guidelines also allow for additional controls to verify the market is active and trades are orderly.
As Coin Metrics already provides the CM Reference Rates methodology to price cryptocurrencies which we believe to be robust and stable, it is worth briefly describing the philosophy behind producing the Principal Market Prices to supplement the reference rates. The first and most significant criteria is that certain regulatory agencies require a methodology consistent with the aforementioned accounting principles. These principles clearly describe the preferred “fair market value” calculation as one which identifies a Principal Market by trade volume and tracks executed trades in that market.
Beyond external requirements, the benefits for a Principal Market Prices methodology are that it is clearly defined and auditable. The price is always taken from a single market, which tends to remain constant, and can easily be traced and verified for a given time stamp. We minimize computations being done on the price, which reduces the likelihood of unforeseen behavior. Additionally, the trades are always taken from the exchange where the most of the activity occurs, which is a characteristic users are interested in.
Like all things in life, this comes with some trade offs. Our CM Reference Rates look for a central tendency among several markets. In some cases this can avoid volatility and the presence of outliers if the Principal Market Prices deviate from the global average, but it also means that the final price may be taken from comparatively insignificant market where the price is between the prices of markets of larger volume. With these trade-offs in mind, our methodology seeks to err on the side of trusting the largest market by volume of trades and only excludes a market in extreme situations.
We also attempt to avoid numerical comparisons of the price between markets in the methodology, in order to minimize the possibility that a price anomaly in another market could affect the calculation. Our CM Reference Rates by contrast choose to combine multiple markets to identify a more stable price representative of the global environment.

Coverage Universe

The set of assets included in the Principal Market Prices coverage universe are included in Appendix A.

Calculation Algorithm

The calculation algorithm of the Principal Market Prices is described below.
  1. 1.
    Consider the list of Constituent Markets selected by the Market Selection Framework.
  2. 2.
    Identify any inactive markets, and exclude all trades associated with the inactive market. A market is considered inactive if it meets the following conditions:
    The last trade was more than 1-minute ago and the last trade was either: longer than 10 minutes from the calculation time or longer than 100 * [mean trade interval].
    The mean trade interval is defined as the the average of all intervals between sequential trades in the window 0 to 60 minutes before the calculation time. For example, if trades occur at timestamps [00:02, 00:12, 00:37, 01:15], the mean trade interval will be mean([10 seconds, 25 seconds, 38 seconds]) = 23.3 seconds.
    If there are no active markets, then the Principal Market Price will forward-fill the last non-null value available.
  3. 3.
    Check if any trades in the markets are not considered orderly (IFRS 13.B37-B38). Exclude any non-orderly trades from the calculation.
    This is accomplished by examining the window 60 to 120 minutes before the calculation time to calculate a reference standard deviation of prices in each market separately. If there are insufficient trades to calculate a standard deviation, then all trades are considered orderly (i.e. no trades are dropped if there is sparse data).
    We then partition the calculation window 0 to 60 minutes before the calculation time into 60 one-minute time intervals and calculate how far each trade is from the mean price of trades from that market in the one-minute time interval the trade resides in.
    Finally, we exclude trades that occur more than three reference standard deviations from the mean price of trades within a particular one-minute time interval.
    We require at least five trades occur in a particular one-minute time interval in order to exclude trades. The two parameters (3 reference deviations and 5 trades) may be adjusted in the future.
  4. 4.
    Identify the active market with the largest volume of orderly trades in the calculation window 0 to 60 minutes before the calculation time. This will serve as the Principal Market (IFRS 13.16, FASB ASC 820-35-5).
  5. 5.
    Use the most recent orderly trade from the Principal Market and publish its price as the Principal Market Price.

Data Exclusion Rules

All observable transactions from constituent markets are evaluated using a systematic data quality control process. If potential errors or anomalies in the data are detected, the exercise of expert judgment will be applied to determine if the potentially erroneous data is included in the calculation of the price. The exercise of expert judgment in this circumstance is used to determine if the potentially erroneous data reflects observable transactions that are entered into at arm’s length between buyers and sellers and constitute an active market in the underlying asset, whether the observable transactions in question are formed by the competitive forces of supply and demand, and whether the observable transactions in question are a credible indicator of executable prices in the underlying asset.
An investigation into the causes of the potential error, including whether any price deviations are specific to the exchange itself, is conducted. Any exercise of expert judgment is subject to dual approval by staff members, and is logged and reported to the Oversight Committee which periodically reviews the application of expert judgment to ensure consistency.

Appendix A

The following table lists the current coverage universe:
#
Name
Ticker
1
Bitcoin
btc
2
Bitcoin Cash
bch
3
Litecoin
ltc
4
Euro
eur
5
XRP
xrp
6
Ethereum
eth
7
Ethereum Classic
etc
8
British Pound
gbp
9
Zcash
zec
10
Monero
xmr
11
Dash
dash
12
Japanese Yen
jpy
13
IOTA
miota
14
EOS
eos
15
OMG Network
omg
16
Neo
neo
17
Metaverse ETP
etp
18
Qtum
qtum
19
Aventus
avt
20
Bitcoin Gold
btg
21
Streamr
data
22
QASH
qash
23
Status
snt
24
Basic Attention Token
bat
25
Decentraland
mana
26
FUNToken
fun
27
0x
zrx
28
Time New Bank
tnb
29
TRON
trx
30
iExec RLC
rlc
31
Augur
rep
32
aelf
elf
33
IOST
iost
34
Aion
aion
35
Request
req
36
Loopring
lrc
37
WAX
waxp
38
Aragon
ant
39
Mithril
mith
40
Storj
storj
41
Stellar
xlm
42
Verge
xvg
43
Lympo
lym
44
Maker
mkr
45
VeChain
vet
46
Kyber Network Crystal
knc
47
Utrust
utk
48
Ripio Credit Network
rcn_ripiocreditnetwork
49
Polymath
poly
50
Fusion
fsn
51
Nitro Network
ncash
52
Cortex
ctxc
53
DATA
dta
54
Zilliqa
zil
55
Bancor
bnt
56
MonaCoin
mona
57
NEM
xem
58
BNB
bnb
59
Gas
gas
60
Tether
usdt
61
OAX
oax
62
district0x
dnt
63
Waltonchain
wtc
64
Chainlink
link
65
Moeda Loyalty Points
mda
66
Metal DAO
mtl_metal
67
AirSwap
ast
68
Viberate
vib
69
Powerledger
powr
70
Ark
ark
71
Enjin Coin
enj
72
Komodo
kmd
73
NULS
nuls
74
AirDAO
amb
75
Quantstamp
qsp
76
BitShares
bts
77
Lisk
lsk
78
Bitcoin Diamond
bcd
79
Ambire AdEx
adx
80
Cardano
ada
81
CyberMiles
cmt
82
Waves
waves
83
ICON
icx
84
PIVX
pivx
85
OST
ost
86
ChatCoin
chat
87
Civic
cvc
88
Steem
steem
89
Nano (New)
nano
90
Bluzelle
blz
91
Aeternity
ae
92
Ontology
ont
93
Wanchain
wan
94
Kepple
qlc
95
Syscoin
sys
96
Ardor
ardr
97
Holo
hot_holo
98
Loom Network
loom
99
Bytecoin
bcn
100
TrueUSD
tusd
101
Horizen
zen
102