Data quality · Currency pairs
FX, measured against the market.
No central tape in FX, so pairs are held against a selected consensus of separate price streams, plus a cross-rate test the book must pass against itself.
EURUSD against the reference
One sample per second across the run.
Headline measurements
Measured, not asserted.
30k matched samples across 20 names, one per second.
Price fidelity
0.13bp
Median midpoint deviation from the selected multi-source consensus, symbol balanced.
How is this measured?
- Definition
- Median across symbols of each symbol's median |TickerLayer mid − reference mid| / reference mid × 10,000.
- Reference
- selected multi-source consensus
- Aggregation
- Per symbol first, then the median of per-symbol medians so active names cannot dominate.
- Window
- 25 minutes, sampled every 1 s
- Universe
- fx-core-20 v1, 20 of 20 symbols
- Samples
- 30k matched samples
- Method
- fx-consensus-v1
Cross-rate consistency
0.12bp
Median residual across 8 currency triangles built only from TickerLayer legs.
How is this measured?
- Definition
- For EURUSD × USDJPY → EURJPY and seven more triangles: |cross − synthetic| / cross × 10,000, median over the run.
- Why
- A coherent FX book must reconcile with itself; this needs no external reference.
- Window
- 25 minutes, sampled every 1 s
- Universe
- fx-core-20 v1, 20 of 20 symbols
- Samples
- 30k matched samples
- Method
- fx-consensus-v1
Tail deviation p95
0.48bp
Within 1 bp in 98.5% of samples. The references disagree by 0.69 bp between themselves.
How is this measured?
- Definition
- Median across symbols of each symbol's 95th percentile absolute deviation.
- Dispersion
- Median absolute difference between the reference sources at the same sample; the natural floor of any measured deviation.
- Window
- 25 minutes, sampled every 1 s
- Universe
- fx-core-20 v1, 20 of 20 symbols
- Samples
- 30k matched samples
- Method
- fx-consensus-v1
REST and WebSocket agree
92.6%
Same quote on both interfaces across 149 checks.
How is this measured?
- Definition
- A REST quote compared with WebSocket frames received within ±1.5 s of the request; exact when bid and ask are identical to one of them.
- Cadence
- One check every ten seconds, symbols rotating through the universe.
- Window
- 25 minutes, sampled every 1 s
- Universe
- fx-core-20 v1, 20 of 20 symbols
- Samples
- 30k matched samples
- Method
- fx-consensus-v1
Distribution
Where the deviation actually lands.
Every matched sample by absolute deviation. Threshold shares are symbol balanced.
Distribution of absolute deviation
Share of all matched samples in basis points.
- under 0.25 bp74.6%
- 0.25 to 0.5 bp18.2%
- 0.5 to 1 bp5.7%
- 1 to 2 bp1.5%
- over 2 bp0.1%
Threshold alignment
Symbol balanced share of samples within each band.
- Within 0.5 bp92.8%
- Within 1 bp98.5%
- Within 2 bp99.9%
- p99 absolute deviation1.16 bp
Signature test
Cross-rate consistency.
EURUSD times USDJPY has to equal EURJPY. Eight triangles, rebuilt from TickerLayer legs alone.
Universe detail
Every symbol in the universe.
One row per name in the benchmark universe, with the figures a customer would compute from the same feed.
| Symbol | Samples | Median dev bp | p95 bp | Signed bp | Median pip | Within 0.5 bp | Within 1 bp | Spread bp |
|---|---|---|---|---|---|---|---|---|
| EURUSD | 1,484 | 0.11 | 0.34 | +0.01 | 0.13 | 99.7% | 100.0% | 0.34 |
| GBPUSD | 1,484 | 0.11 | 0.42 | -0.02 | 0.15 | 96.6% | 99.7% | 0.44 |
| USDJPY | 1,484 | 0.27 | 0.76 | -0.15 | 0.42 | 78.5% | 98.3% | 0.91 |
| USDCHF | 1,484 | 0.10 | 0.43 | 0.00 | 0.08 | 96.8% | 99.7% | 0.49 |
| USDCAD | 1,484 | 0.09 | 0.32 | +0.05 | 0.13 | 98.4% | 100.0% | 0.58 |
| AUDUSD | 1,484 | 0.11 | 0.38 | +0.04 | 0.08 | 97.2% | 99.9% | 0.42 |
| NZDUSD | 1,484 | 0.17 | 0.56 | +0.08 | 0.10 | 93.6% | 98.5% | 1.20 |
| EURGBP | 1,484 | 0.12 | 0.49 | +0.09 | 0.10 | 95.8% | 100.0% | 0.58 |
| EURJPY | 1,484 | 0.16 | 0.73 | -0.04 | 0.29 | 90.5% | 96.7% | 0.61 |
| GBPJPY | 1,484 | 0.20 | 0.85 | -0.08 | 0.42 | 85.1% | 96.0% | 0.82 |
Freshness and consistency
Delivery, agreement, reproducibility.
Timing is kept apart from price fidelity on purpose.
Update cadence
200ms
Median gap between consecutive frames per symbol on the public stream.
REST vs WebSocket exact
92.6%
149 checks, midpoint gap p95 0.00 bp.
Settled bars reproducible
100.0%
91 one-minute bars re-fetched later; close unchanged in 100.0%.
Reference model
Selected multi-source consensus
The reference midpoint is the consensus of two separately sourced FX price streams that do not feed TickerLayer: a broker dealing feed with bid and ask, and an institutional aggregated price feed.
Universe
20 pairs: majors, liquid crosses, two emerging-market pairs.
Reference
Consensus of two separately sourced FX streams outside the aggregation.
Session
Weekday sessions only; weekends and holidays are excluded.
Benchmark run
One run behind every figure.
We keep measuring and publish each run as it lands.
- Benchmark run
- TLQ-FX-20260910-0845
- Methodology
- fx-consensus-v1
- Universe
- fx-core-20 v1, 20 of 20 measured
- Observation window
- Sep 10, 2026, 08:45 to 09:10 UTC
- Window length
- 25 min, sampled every 1 s
- Matched samples
- 30k
- Published
- Sep 10, 2026, 09:10 UTC
Benchmark results describe observed behaviour under the stated methodology during the published window. They are not a guarantee of future performance and not a service level agreement unless separately agreed in writing. These comparisons evaluate TickerLayer quotes against selected market references during the stated observation window. They do not imply exchange affiliation, endorsement, or certification.
Frequently asked questions
Why is there no official EURUSD price?
Spot FX trades over the counter across many dealers and venues. There is no consolidated tape, so a benchmark builds a reference from separate streams and says how they were combined.
What does cross-rate consistency prove?
That the feed is internally coherent. If EURUSD and USDJPY are right, EURJPY must reconcile with their product. The residual needs no external source.
Are pips or basis points the better unit?
Pips are natural per pair but not comparable across pairs. Aggregates use basis points and each pair also shows its pip figures.
What is reference dispersion?
How much the reference streams disagree with each other at the same moment. It is the natural floor for any deviation measured against them.
How often is forex data updated?
Once per second the observer matches the latest TickerLayer state with the latest reference state; the stream itself updates many times a second on major pairs.
Is forex data available on weekends?
The market is closed from Friday evening to Sunday evening New York time; benchmark runs are taken during weekday sessions only.