How OpenRate calculates live P2P market prices.
OpenRate collects live P2P order book data, removes low-quality and extreme outlier ads, compares cleaned market prices against spot FX references, and calculates spreads, premiums, liquidity, and market signals.
Data Sources
OpenRate collects live P2P marketplace data from supported exchanges including Binance P2P, Bybit P2P, OKX P2P, and HTX P2P. Data is fetched from public P2P order books.
Spot FX reference rates are sourced from ECB and reference FX providers. Historical snapshots are stored for trend calculations. Payment method and merchant metadata is extracted from ad listings where available.
What Data Is Real vs Estimated
Not all data on OpenRate is raw marketplace data. Some values are computed from real data, some are model-based estimates. The table below clarifies each category.
| Category | Type | Source / Formula |
|---|---|---|
| Live buy/sell ads | Real marketplace data | Fetched from live P2P exchange order books. |
| Spot FX rates | Real reference data | ECB / reference FX rates, refreshed periodically. |
| Merchant names | Real marketplace data | As published on exchange P2P marketplaces. |
| Payment methods | Real marketplace data | As listed on each ad. |
| Premiums | Computed from real data | (cleanP2PPrice − spotFX) / spotFX × 100 |
| Spreads | Computed from real data | (sellPrice − buyPrice) / buyPrice × 100 |
| Merchant score | Model-based estimate | Based on completion rate, order count, liquidity, and method coverage. |
| Calculator confidence | Model-based estimate | Fills estimated from cleaned visible merchant liquidity. |
| Est. net arbitrage spread | Estimated | Gross spread minus model-based fee/buffer assumptions. |
| Settlement time | Approximate estimate | Varies by exchange, merchant, payment method, and conditions. |
| Market feed signals | Model-based signal | Based on moving metrics; not investment advice. |
| Warning thresholds | Model-based threshold | Heuristics derived from historical corridor data. |
How OpenRate Cleans P2P Ads
OpenRate does not blindly display all raw P2P ads. Each ad is evaluated against a set of corridor-specific filters before being included in market price calculations. Ads that fail any filter are excluded and counted as excluded ads.
Outlier Filtering
Prices that deviate significantly from the corridor median are flagged as outliers and excluded from market price computation. The threshold varies by corridor (default: ±8% from median).
Example: If most USDT/INR ads are in the ₹92–₹94 range and one ad appears at ₹135, OpenRate may exclude that ad as a PRICE_OUTLIER_HIGH. Similarly, an ad at ₹60 would be excluded as a PRICE_OUTLIER_LOW — it may be a bait listing or data error.
Median computation uses only the pre-filtered set (after basic validity checks), so extreme values do not skew the reference point.
How Spreads Are Calculated
Spread is the percentage gap between the best buy price (lowest ask — cheapest USDT to buy) and the best sell price (highest bid — best fiat received when selling USDT).
Example: Buy USDT at ₹92, Sell USDT at ₹94:
spread = |94 − 92| / 92 × 100 ≈ 2.17%
Buy/Sell label clarification:
- Buy USDT (best buy price) — the lowest fiat price at which a merchant is selling USDT. You pay this price when you want to acquire USDT.
- Sell USDT (best sell price) — the highest fiat price at which a merchant is buying USDT. You receive this price when you sell USDT for fiat.
A wide spread indicates a less liquid or more friction-heavy market. Corridor-specific configs may flag excessively wide spreads as a data quality warning.
Market Status Labels
Market status labels are assigned based on the premium versus the spot reference rate.
Data Quality Labels
Each market corridor is assigned a data quality label (High, Medium, Low, or Insufficient) based on the following factors:
Model-Based Estimates
The following outputs are model-based estimates, not real market data or official ratings:
- Merchant score
- Calculator confidence score
- Estimated net arbitrage spread
- Settlement time estimate
- Warning thresholds
- Market feed signals and headlines
- Report-generated text
Large Order Calculator Methodology
OpenRate simulates large P2P orders by filling the requested amount against visible cleaned merchant ads in price-priority order — cheapest first for buys, highest first for sells.
The calculator estimates:
- Effective rate — blended average price across all merchants needed to fill the order
- Slippage — percentage difference from best available price to effective rate
- Merchants needed — number of clean ads required to fill the full order
- Fill percentage — what fraction of the order can be filled from visible liquidity
- Liquidity available — total USDT across clean ads at or below the effective rate
Arbitrage Methodology
OpenRate computes cross-market arbitrage by comparing the premium differential between a buy-side market (where USDT is cheaper) and a sell-side market (where USDT is at a higher premium).
est. net spread ≈ gross spread − (fees + transfer buffer)
The fee buffer uses model-based assumptions for transfer costs, exchange fees, and execution friction. These assumptions are corridor-dependent and may not reflect actual costs.
Merchant Score Methodology
OpenRate Merchant Score is a model-based ranking. It is not fetched directly from any exchange. Inputs include:
- Completion rate (higher is better)
- Order activity (monthly and all-time order counts)
- Visible liquidity (total USDT offered across active ads)
- Payment method diversity (more methods → broader coverage)
- Active corridor coverage (how many P2P pairs the merchant is active in)
Update Frequency
OpenRate's crawler updates market data approximately every 60 seconds for active corridors. Spot FX reference rates are refreshed periodically from ECB and reference providers. Historical snapshots are stored at regular intervals for trend and chart data.
Update frequency may vary by market, exchange, data availability, and crawler health. If live data is unavailable, OpenRate may display the most recent cached snapshot with a stale indicator. The data quality label reflects freshness as part of its overall score.
Limitations
- Visible marketplace ads may not represent all available liquidity in a corridor
- P2P prices can change quickly — displayed prices may be seconds to minutes old
- Some ads may have hidden limits, conditions, or verification requirements not visible in the order book
- Payment method risk and settlement speed varies by method, merchant, and country
- Merchant completion rate does not guarantee settlement or counterparty behaviour
- Spot FX references may differ from local bank, cash, or black-market rates
- Estimated outputs (confidence scores, net spread, merchant score) are model-based and not guarantees
- OpenRate does not operate any P2P exchange or take custody of any assets