Contents Lesson 8 of 16

5 min read · practitioner

What is actually inside a thousand-pair universe?

Coverage figures are the easiest thing in market data to quote and the hardest to interpret. "Around a thousand currency pairs" is true — /exchange-symbol-list/FOREX held 998 rows on 2026-07-28 — and it is not the same claim as "a thousand tradeable markets with usable history".

That distance is measurable, and every step of the measurement subtracts something from 998.

Subtract the duplicates first

Of the 998 codes, 945 are six characters, 52 are three, and one is seven. The 52 short codes are USD-based inversions of pairs that also appear in six-character form, as the first lesson of this unit established. So the count of distinct relationships is closer to 946 than to 998.

That is not a criticism of the catalogue — both conventions are genuinely useful and both are in demand. It is a warning about what happens if you treat a row count as a market count.

Then subtract the ones with no depth

A pair being quoted does not mean it is continuously quoted. The majors carry decades of dense history; a cross between two thinly traded currencies carries holes, and the holes are invisible unless you count.

Here is the arithmetic that makes them visible. When this lesson was written FX in this data ran six days a week, so a full year was roughly 52 × 6 = 312 observations, minus a handful of genuine market closures. As the previous lesson records, some majors have since gained their Saturdays (EURUSD.FOREX held 361 rows for 2025 on 28 September 2026, EURGBP.FOREX 294), so first establish the calendar a pair is on, then count against it.

Now pull an exotic cross and count. If it returns 210 rows, then roughly a third of the expected observations are absent — 312 − 210 = 102 missing days, or 32.7% of the year. Every rolling twenty-day window you compute on that series is actually spanning about thirty calendar days, every annualisation is scaled by the wrong observation count, and nothing in the response told you.

Counting rows against an expected calendar is the cheapest completeness test that exists, and almost nobody runs it. Reading the Market treats this as the stale-and-missing problem; here it has a specific number attached to it.

Some pairs are manufactured

The symbol list does not distinguish a directly quoted pair from a derived one. At the wholesale level, many crosses are constructed from two dollar legs rather than quoted in their own right, which is why a cross's spread is roughly the sum of both legs'.

For a data consumer the consequence is narrower than it sounds: a derived cross inherits the timing of both legs. If the two legs were snapped at slightly different instants, the cross carries that mismatch, and it shows up as a triangular inconsistency larger than the spread. That is the test from earlier in this unit, and this is why it sometimes fails on perfectly good data.

The universe is not permanent

Currencies are political objects, and the catalogue changes with them.

Some pairs simply cannot extend as far back as you want. EURUSD has no history before 1999 because one of its two currencies did not exist. Every national currency the euro replaced took its pairs with it, and the list of replaced currencies has grown with each new member since — so the euro-area universe is not even fixed going forward.

Others contain level shifts that are not market moves. When a country redenominates its currency — Turkey removed six zeros from the lira in 2005, replacing a million old lira with one new one — any series spanning that date either contains a discontinuity of six orders of magnitude or has been silently spliced by whoever built it. Both outcomes are defensible; neither is safe to assume.

The check is mechanical and takes one line: scan a long series for any single-day change above, say, 50%. Currencies do occasionally move that much in a day, so a hit is not proof of anything — but every hit deserves a look before it lands in a return series.

Try it now

  1. Here is /exchange-symbol-list/FOREX grouped by code length, counted on 28 September 2026:
Code length Rows Example
6 944 EURUSD
3 52 AED
7 1 USDARSB
All 997

Produce your own count of distinct relationships from it, and write it down with the date. Then compare it with the 998-row list of 2026-07-28 above: which group lost the row? 2. A full year of each pair, /eod/{pair}.FOREX?from=2025-01-01&to=2025-12-31, counted by weekday on 28 September 2026:

Pair Rows Saturdays Sundays
GBPUSD 365 52 52
USDJPY 363 50 52
EURUSD 361 48 52
USDTRY 317 22 34
EURGBP 294 0 33
USDZAR 278 0 17

Each pair has 261 weekdays in the year, and every one of them is present. Decide which calendar each pair is on, compare its row count against that calendar (312 for six days a week, 365 for seven) and express the shortfall as a percentage. Then say which of the two numbers describes the pair's data quality and which describes nothing but its weekend.

Interactive line chart: EURUSD.FOREX (1Y)
  1. Here is the longest history the platform has for one exotic pair, USDTRY.FOREX, which starts on 3 January 2005. Measured on 28 September 2026 over its 5,961 rows, the largest single-day change was −17.7%, from 16.41 on 17 December to 13.51 on 20 December 2021, and the second largest +16.0%, from 5.54 to 6.43 on 10 August 2018. Find both on the chart, then find out what happened on those dates. Sometimes it is a market event; sometimes it is a currency reform, and the lira's 2005 reform sits just before the series begins.
Interactive line chart: USDTRY.FOREX (MAX)