---
title: "Why We Publish a Daily 16:00 London Reference Rate"
description: "A live exchange rate changes every minute, so two people asking for \"yesterday's EUR/USD\" get different answers. Our Daily Reference Rate fixes one mid-market value per currency at 16:00 London and never revises it. How it is computed, how to use it, and when not to."
canonical: https://allratestoday.com/blog/daily-reference-rate-16-00-london/
source: AllRatesToday (https://allratestoday.com/) — Markdown mirror of the page above; index of all pages at https://allratestoday.com/llms.txt
generated: 2026-10-19T16:47:36.228Z
---

Ask two systems for "yesterday's EUR/USD rate" and you will usually get two different numbers. Both are correct. One read the rate at 09:14, the other at 17:40, and the market moved in between. For a live price on a checkout page that is fine. For an index level, a research series or a month-end report it is a problem, because nobody can reproduce your number.

Since 12 October 2026 we publish one fixed value per currency per business day for exactly that job: the **[AllRatesToday Daily Reference Rate](https://allratestoday.com/reference-rate/)**, set at 16:00 London and never revised.

## The problem with "the rate on a date"

A real-time API answers "what is the rate now?". When the question is "what was the rate on 13 October?", there is no single right answer unless someone decided in advance which moment of 13 October counts. Central banks solve this for their own currency by publishing one table a day. The [ECB reference rates](https://allratestoday.com/blog/ecb-reference-rate-api/), for example, are published once a day at around 16:00 CET. But a central bank covers its own currency against a few dozen others, and each one fixes at a different local time.

Index providers, fund administrators and researchers asked us for the market-wide version: one timestamp, every currency, the same rule every day. London 16:00 is the conventional choice because it is when the most widely used FX benchmark is set. Many existing series and contracts already line up to it.

## How the value is computed

- **Window.** Five minutes centred on 16:00 Europe/London, from 15:57:30 to 16:02:30, Monday to Friday. The window follows UK daylight saving, so it is always 16:00 on a London clock.
- **Samples.** Once a minute inside the window we fetch the full mid-market USD table live, bypassing every cache. Five samples a day is normal, and a day needs at least three to publish.
- **Value.** For each currency the published value is the median of its samples. A median ignores a single bad tick in a way an average does not.
- **Transparency.** The window low, window high and sample count are published next to each value, so you can see how much the currency moved inside the window.
- **Coverage.** A currency is included for a day only if it appears in at least half of that day's samples.
- **Immutability.** The table is written once, a few seconds after 16:02 London, and never recomputed. If a day was not fixed at 16:00, we leave it empty rather than fill it from later live data, because that value would no longer be a 16:00 rate.

Every value is quoted as units of currency per 1 USD. Any other pair is the cross of two published USD values, flagged `"derived": true`. The cross is plain arithmetic on published numbers, so anyone holding the table can reproduce it exactly.

## Using it: the free, keyless table

The latest table needs no API key and no signup. Visible attribution linking to allratestoday.com is the only condition.

```
# Latest table, 160+ currencies per 1 USD (keyless)
curl "https://allratestoday.com/api/open/reference-rate"

# One pair, crossed through USD
curl "https://allratestoday.com/api/open/reference-rate?source=EUR&target=GBP"

# The same table as CSV or Excel
curl "https://allratestoday.com/api/open/reference-rate?format=csv"
```

A pair request returns the date it was fixed, when it was published, and how it was derived:

```
{
  "rate_date": "2026-10-15",
  "time": "16:00 London",
  "base": "USD",
  "published_at": "2026-10-15T15:02:52.896Z",
  "source": "EUR",
  "target": "GBP",
  "rate": 0.84532227,
  "derived": true,
  "method": "cross via USD",
  "attribution": {
    "source": "AllRatesToday Daily Reference Rate (16:00 London)",
    "url": "https://allratestoday.com/reference-rate/"
  }
}
```

That response is the real EUR/GBP value from the 15 October table. Run the same request any time and you will get the same number for that date.

## Dated tables and history

Reproducibility only matters if you can go back to a past date. With an API key, `/api/v1/reference-rate/latest` adds the window low, high and sample count. On a paid plan, two more endpoints return a specific day's table or a daily series for one currency or pair:

```
# The table published on a given date
curl "https://allratestoday.com/api/v1/reference-rate/2026-10-13?symbols=EUR,GBP,SAR,EGP" \
  -H "Authorization: Bearer art_live_your_key"

# One point per business day, as CSV
curl "https://allratestoday.com/api/v1/reference-rate/history?symbol=EGP&from=2026-10-12&to=2026-12-31&format=csv" \
  -H "Authorization: Bearer art_live_your_key"
```

Ask for a weekend or holiday and you get the previous published business day, and the response says which date it used. History is billed the same way as our other history endpoints, per currency per month of data. See [the docs](https://allratestoday.com/docs/#reference-rate) for every parameter. Commercial plans allow derived data such as index levels and returns to be distributed to your clients.

## When to use it, and when not to

| You need | Use |
| --- | --- |
| The price right now, for a checkout, a converter or a dashboard | [Real-time rates](https://allratestoday.com/exchange-rate-api/), updated every 60 seconds |
| One reproducible rate per day for an index, a research series, a report or a backtest | **[Daily Reference Rate](https://allratestoday.com/reference-rate/)** |
| A tax return, VAT invoice, customs declaration or audit where a rule names the publisher | The official [central bank](https://allratestoday.com/central-bank-rates-api/) or [tax authority](https://allratestoday.com/tax-authority-rates-api/) rate |
| The settlement rate of a financial contract that references a regulated benchmark | A registered benchmark administrator, such as LSEG's WM/Refinitiv. Not this rate. |

The last row matters. The Daily Reference Rate is the median of our own mid-market samples. It is not the WM/Refinitiv 4pm fix and it is not a benchmark registered under the EU or UK Benchmarks Regulation. It is built for research, reporting and index calculation, where what you need is a published, reproducible number with a clear method.

## For AI agents

The same table is available as the `get_reference_rate` tool on our [hosted MCP endpoint](https://allratestoday.com/mcp/), which is keyless. An agent asked for "the rate at yesterday's close" gets a dated, fixed value it can cite, not whatever the market happened to be when it ran.

## FAQ

### What is the AllRatesToday Daily Reference Rate?

One mid-market exchange rate per currency per business day, fixed at 16:00 London. It is the median of five once-a-minute samples of our USD table taken between 15:57:30 and 16:02:30 London time, published once and never revised. It covers 160+ currencies, each quoted per 1 USD.

### Is it the same as the WM/Refinitiv 4pm fix?

No. WM/Refinitiv (LSEG) is a regulated benchmark computed from market-wide trades and quotes. The Daily Reference Rate is the median of our own mid-market samples at the same time of day. It is not a benchmark registered under the EU or UK Benchmarks Regulation and should not be used as the settlement rate of a financial instrument.

### Is the Daily Reference Rate free?

The latest table is free and keyless at /api/open/reference-rate, with visible attribution linking to allratestoday.com. Tables for a specific past date and history series need a paid plan.

### What happens on weekends, holidays or a missed day?

Nothing is published on Saturdays and Sundays, and a lookup for a non-publication date resolves to the previous published business day and says which date it used. A day that was not fixed at 16:00 is never filled in later from live data, because that would no longer be a 16:00 value.

## See today's table

160+ currencies fixed at 16:00 London, with the method, the window low and high, and the API on one page.

 [Open the Daily Reference Rate](https://allratestoday.com/reference-rate/)

## Related Articles

- [Daily Reference Rate (16:00 London)](https://allratestoday.com/reference-rate/)
- [How Often Are Exchange Rates Updated?](https://allratestoday.com/blog/how-often-are-exchange-rates-updated/)
- [How Much Do Official Exchange Rates Differ?](https://allratestoday.com/blog/how-much-do-official-exchange-rates-differ/)
- [Central Bank Exchange Rates API](https://allratestoday.com/central-bank-rates-api/)
