OpenRate / Methodology

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.

OpenRate is not affiliated with Binance, Bybit, OKX, HTX, or any listed exchange. Exchange names are used only to identify public P2P marketplace data sources.

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.

CategoryTypeSource / Formula
Live buy/sell adsReal marketplace dataFetched from live P2P exchange order books.
Spot FX ratesReal reference dataECB / reference FX rates, refreshed periodically.
Merchant namesReal marketplace dataAs published on exchange P2P marketplaces.
Payment methodsReal marketplace dataAs listed on each ad.
PremiumsComputed from real data(cleanP2PPrice − spotFX) / spotFX × 100
SpreadsComputed from real data(sellPrice − buyPrice) / buyPrice × 100
Merchant scoreModel-based estimateBased on completion rate, order count, liquidity, and method coverage.
Calculator confidenceModel-based estimateFills estimated from cleaned visible merchant liquidity.
Est. net arbitrage spreadEstimatedGross spread minus model-based fee/buffer assumptions.
Settlement timeApproximate estimateVaries by exchange, merchant, payment method, and conditions.
Market feed signalsModel-based signalBased on moving metrics; not investment advice.
Warning thresholdsModel-based thresholdHeuristics 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.

INVALID_PRICE
Price is zero, null, or not a valid number.
LOW_LIQUIDITY
Ad offers less than the minimum USDT liquidity threshold for the corridor.
LOW_COMPLETION_RATE
Merchant completion rate is below the corridor minimum (typically 85%).
LOW_ORDER_COUNT
Merchant has too few completed orders to establish reliability.
STALE_AD
Ad was last observed more than the corridor's max age (typically 10 minutes).
PRICE_OUTLIER_HIGH
Price is significantly above the corridor median — potential bait or anomaly ad.
PRICE_OUTLIER_LOW
Price is significantly below the corridor median — possible error or misleading listing.
CURRENCY_MISMATCH
Ad currency does not match the expected corridor fiat.
Corridor-specific thresholds (default): outlier tolerance ±8%, min completion rate 85%, min orders 30, min liquidity 20 USDT, max ad age 10 min.

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 Premiums Are Calculated

Premium is the percentage difference between the cleaned P2P market price and a reference spot FX rate.

premium (%) = (cleanP2PPrice − spotFXRate) / spotFXRate × 100

Example: If the ECB USD/INR reference is ₹87.00 and the cleaned P2P USDT/INR best buy price is ₹89.00:

premium = (89 − 87) / 87 × 100 ≈ +2.30%

A positive premium means USDT is trading above spot — buyers pay more fiat per USDT than the reference rate. A negative premium (discount) means USDT is below spot.

Note: USDT and USD are not identical assets. USDT carries issuer risk and P2P settlement risk. The premium reflects market supply/demand conditions and friction, not just an exchange rate premium.

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).

spread (%) = |sellPrice − buyPrice| / buyPrice × 100

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.

Deep discount
below −3%
USDT is trading significantly below spot reference.
Discount
−3% to −1%
USDT is slightly below reference spot.
Normal
−1% to +1%
P2P price near reference — typical market.
Elevated
+1% to +3%
Moderate premium — moderate demand or friction.
High
+3% to +6%
Significant premium — high demand or low supply.
Extreme
above +6%
Very high premium — severe friction or crisis-level demand.

Data Quality Labels

Each market corridor is assigned a data quality label (High, Medium, Low, or Insufficient) based on the following factors:

Clean ad count
Number of ads that passed all filters. More clean ads → higher confidence.
Excluded ad percentage
High exclusion rate can indicate a noisy or illiquid market.
Spread stability
A narrow, stable spread indicates a deeper and more reliable market.
Merchant depth
Total available USDT across clean ads.
Spot availability
Whether a reliable spot FX reference is available for this corridor.
Data freshness
How recently ads were observed. Stale data lowers quality.

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
Model-based estimates are provided for informational purposes only. They are not investment advice, financial guidance, execution guarantees, or official exchange ratings.

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
Actual execution may vary due to merchant limits, exchange rules, payment methods, response time, settlement risk, and counterparty behavior. Calculator results use visible cleaned order book data and do not guarantee execution.

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).

gross spread = sell market premium − buy market 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.

Arbitrage spreads are not guaranteed profits. Actual outcomes depend on liquidity, transfer fees, payment rails, capital movement, limits, execution time, and counterparty risk. Cross-border P2P arbitrage may be subject to local regulations.

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)
OpenRate Merchant Score is not an official exchange rating and does not guarantee safety, reliability, or execution. Always verify merchant reputation on the exchange directly before executing a trade.

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.

View current market data freshness on the Data Status page.

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

Terminology Reference

What is premium?
Premium is the percentage difference between the cleaned P2P market price and a reference spot FX rate.
premium = (P2P price − spot rate) / spot rate × 100
If spot USD/INR = ₹87 and P2P USDT/INR = ₹89, premium ≈ +2.3%.
What is spread?
Spread is the percentage gap between the best buy price (lowest ask) and the best sell price (highest bid) in cleaned P2P ads.
spread = |sellPrice − buyPrice| / buyPrice × 100
Buy USDT at ₹92, Sell USDT at ₹94 → spread = 2.17%.
What is data quality?
Data quality (High / Medium / Low) reflects how many clean ads are available, how much liquidity exists, how fresh the data is, and whether the spread is stable.
High: 50+ clean ads, tight spread, fresh data. Low: <5 clean ads or no spot reference.
What does cleaned data mean?
OpenRate does not blindly show all raw P2P ads. Ads with invalid prices, extreme outlier prices, low liquidity, low-rated merchants, or stale timestamps are excluded before computing market prices.
If 420 raw ads are collected and 66 are outliers or low-quality, the displayed price uses the remaining 354 clean ads.
What is estimated net spread?
Estimated net spread is the gross arbitrage spread minus a model-based estimate of fees, transfer costs, and execution buffer. It is not a guaranteed profit.
est. net ≈ gross spread − (transfer fees + exchange fees + buffer)
Gross spread 4.2%, estimated fees 2.0% → estimated net ≈ 2.2%.
What is merchant score?
Merchant Score is a model-based estimate of merchant reliability based on completion rate, order history, visible liquidity, payment method coverage, and corridor activity. It is not an official exchange rating.
What is confidence score?
Confidence score estimates how likely a simulated large order can be filled at or near the displayed rate. It is based on visible clean ad liquidity and is not a guarantee of execution.
High confidence: order can be filled within the top 5 clean ads. Low confidence: insufficient visible liquidity to fill the full order size.

Frequently Asked Questions

Are OpenRate prices the real P2P market prices?
OpenRate prices are derived from live P2P marketplace ads, with outlier and low-quality ads excluded. They represent cleaned market prices — not blindly copied raw ads and not centralized exchange prices.
Why are some ads excluded?
Some ads have prices far outside the market median, very low liquidity, merchants with low completion rates, or are stale. OpenRate excludes these to show more reliable market prices.
Can I execute at the displayed price?
No. Displayed prices are cleaned market observations, not guaranteed execution prices. Actual execution depends on merchant availability, your order size, exchange rules, payment method, and settlement conditions.
Why does my local cash price differ from OpenRate?
OpenRate shows online P2P marketplace prices, which may differ from local cash or black market rates. Spot FX references are from ECB or reference sources and may not match local bank rates.
Is the premium calculation exact?
Premium is computed from cleaned P2P prices and reference spot FX rates. It approximates the market premium but is not an exact guaranteed value — spot rates and P2P prices both change continuously.
Is OpenRate affiliated with Binance, Bybit, OKX, or HTX?
No. OpenRate is an independent data aggregator. Exchange names are used only to identify public P2P marketplace data sources. OpenRate has no official affiliation with any listed exchange.
Spotted a data issue?
If you see suspicious rates, outliers that were not excluded, or incorrect data — let us know.