EMpulse

EMpulse Street FX Index — Methodology

The EMpulse Street FX Index publishes daily "street" exchange rates of emerging-market currencies against USDT (treated as 1 USD): the rate people actually pay, not the official one. The index combines transaction-based market data with quotes from public market sources; each series carries a confidence class, and the limits of the data are published with it.

Components

component what it is where it appears
transaction-based a weighted average of the day's market transactions, per currency and market side. Only aggregates enter the index: no individual transactions or counterparties are stored or published GET /v1/rates/*, the live table
multi-source rate quotes published by independent market sources (exchangers' public channels, the rates sections of local publishers, forums), weighted by the reliability each source has earned GET /v1/street-index/* (product "Street Rate Index — multi-source"); the live table for currencies the index covers through public sources only
exchange-based the open order books of crypto exchanges where the digital dollar is quoted against the currency, read once an hour through the exchanges' documented public APIs: the best offers of each side, their prices and the amount on offer, aggregated per exchange and across exchanges with the reliability each exchange has earned. Every exchange counts as one source; names are not attached to figures the live table and GET /v1/rates/* for currencies the index covers through exchanges; exchange_spread_pct (Pro); the external term of USDT Liquidity

All rates are quoted as fiat per 1 USDT.

The exchange-based component

Coverage and activity

The index of a currency is one number per day, built from the components above:

A currency is active when the index has a day within the last 14 days (/v1/currencies: status = "active", active_since = the first day of the current run of data without a break longer than 14 days). A currency without a recent day is coverage in progress: we are adding market sources for it, its published history stays available, and it returns to the active list on its own once a recent day exists. The live table of the website shows active currencies only; the number of currencies quoted in the plans is the number of active currencies.

For every active currency the latest day carries:

Daily index fields (GET /v1/rates/{cur})

"Valid mid" means a non-null mid that is not flagged as an outlier.

A side that does not move

Sometimes one side of the market stops moving while the other keeps trading at changing prices: over several days (five, for the daily index) its median rate stays within 0.05 %, or every day on that side clears at a single price. Such a price is quoted rather than traded, and a mid halfway between it and the live side would be meaningless. In that case the index is based on the moving side alone: mid equals that side's rate, side names it (buy or sell) although both buy and sell are published, and spread_pct is null. The rule is applied day by day and lifts itself as soon as the quiet side starts moving again; when both sides are equally still (a flat market) nothing changes. The hourly index applies the same rule over a window of 24 hours.

Outliers

A day is flagged flag = "outlier" when all of the following hold:

  1. it has a mid;
  2. it has few data points (a large move on a well-covered day is never flagged: it is treated as a genuine market move);
  3. its mid deviates by more than 10% from the median mid of the surrounding window of ±15 calendar days (the day itself excluded);
  4. the window contains at least 3 other days with a mid (otherwise there is not enough data to judge, and the day is not flagged).

Outlier days keep their own buy, sell, mid and spread_pct values so that clients can see them, but they are excluded from mid_7d and all chg_* calculations (for the outlier day itself and for the days that would reference it).

Revisions and timing

Hourly index (GET /v1/rates/{cur}/hourly, Pro and Enterprise)

The hourly index is the daily index at hourly granularity: for every UTC hour and currency, buy and sell are the weighted average rates of the hour's market transactions on each side, mid, side and spread_pct follow the daily rules, and confidence is the currency's base class.

Multi-source street index (GET /v1/street-index, product "Street Rate Index — multi-source")

For every currency where public market sources publish street rates — next to the transaction-based series where one exists, on its own where it does not — the index publishes the rate quoted in open sources: exchangers' public Telegram channels, the rates sections of local publishers, forums. A published rate is a fact; we keep the number, the time and the link to the post, never the text.

Currency pages and site statistics

Limitations