720 days of rate history: why a wallet from 2022 decides the valuation method

Status: measured on 22 October 2026. The figures below come from a real run on that day, on a public wallet, with the rates the sources returned that day. If a source changes, we change the article.

This article assumes the ground covered in documenting the rate source (German). The BMF letter of 6 March 2025 asks, in margin numbers 43 and 91, for a market rate at the time of the transaction, from a named source, under a rule that is documented and stays the same. This is about the case where the named source suddenly has no rate.

What happened

On 22 October 2026 we loaded a public wallet into the back office for our product film. The wallet has stablecoin receipts going back to May 2022. The organisation's valuation method was set to the market rate: the daily close of USDC in euro, trading platform Kraken, UTC calendar day of the transaction.

The sync stopped with this text:

Kraken has no daily candle for USDCEUR on 2022-05-09:
outside the platform's window or the pair did not trade

No rate for 9 May 2022. Not because USDC did not trade that day. Because the platform no longer hands it out.

The window

Kraken documents this itself. The endpoint for daily candles, quoting its documentation as read the same day:

Returns up to 720 of the most recent entries (older data cannot be retrieved, regardless of the value of since).

720 daily candles are about two years. On 22 October 2026 exactly 721 candles came back, the first for 1 November 2024, the last for the day itself. Every transaction before 1 November 2024 has no rate from this source. Not today, and not next year, because the window moves with the calendar.

This is not a Kraken quirk. Every rate source has a depth, and most do not print it on the front page. Whoever picks a source has to know its depth before picking. After picking, it is a change, and a change is exactly what margin number 91 wants to see once, on a clear date, with documentation.

For a company this means: if the oldest wallet has transactions older than the source, the market-rate route fails not on method but on supply. In the worst case that shows up only when the tax firm is asked to book 2022 and 2023 after the fact.

The two routes the letter leaves open

Route one: a source with full depth. Margin number 43 names web-based lists alongside trading platforms. Some of them carry daily USDC rates in euro years back. This is the route that keeps the market rate of the crypto asset in the sense of margin number 43. Its price: the source is changed, or it is the only one from the start. Either way it goes into the documentation, and the change needs a date.

Route two: par with the ECB reference rate. 1 USDC is taken as 1 US dollar, and only the currency leg is converted, at the ECB reference rate of the transaction date. The ECB publishes that rate for every working day since 1999. That source reaches further back than any wallet.

One honest sentence belongs here: par is not a market rate of the crypto asset under margin number 43. It is a documented convention that assumes the stablecoin trades at its face value. How good that assumption is can be measured. We measured it.

How big the difference is, measured

For each of the 721 days in the Kraken window we divided the USDC/EUR daily close by the ECB EUR/USD reference rate of the same day. The result is the dollar value the market put on one USDC that day, taking the ECB conversion as given.

Figure, 1 November 2024 to 22 October 2026 Value
Days with both rates 721
Median deviation from par 1.2 basis points below 1.00
Mean deviation, unsigned 24.3 basis points
Lowest implied value 0.98462 USD (3 August 2025)
Highest implied value 1.01508 USD
Days within 10 basis points 32.3 %
Days within 25 basis points 67.0 %

Two things are in this table. First: at the median, par holds. Second: on an ordinary day the two routes sit a quarter of a percent apart, on bad days one and a half.

Most of that deviation does not come from the stablecoin. It comes from the clock. The ECB reference rate is set in the concertation at 14:10 CET and published around 16:00 CET. The Kraken daily close is the last trade before midnight UTC. Between the two lie ten hours in which the euro-dollar rate moves. Whoever compares the two methods is mostly comparing two times of day, not two opinions about USDC.

One payment, two amounts

The payment from the product film: 21,632.071495 USDC, received on 6 January 2025.

Method Rate Amount
Par, ECB reference rate 06.01.2025 0.959141 EUR per USD 20,748.21 EUR
Market rate, Kraken daily close 06.01.2025 0.963000 EUR per USDC 20,831.68 EUR
Difference 83.48 EUR

83.48 euro on 20,000. Four per mille. Not an amount an audit turns on. An amount an audit does turn on when it arose one way in one year and another way the next, and nobody can say why.

What we decided for the film, and why

The organisation in the film switched to the par route before the wallet was synced. Not because it is the better rate. Because it is the only one that can be evidenced without a gap for this wallet, from May 2022 to today, from a source that does not move.

The switch is in the books: with a name, with a time, and in the audit report with the month it applies from. Every entry carries the rate, the source as text and the moment, and none is revalued later when a source hands out different numbers. That is no more than margin number 91 asks. It is what it asks.

Whether a tax firm carries the par route for a particular company is its call. The table above is the material for that conversation: the deviation is known, small at the median, and it has an explainable cause.

The decision rule

  1. Oldest wallet younger than the source's depth: market rate from a named platform, daily close, calendar day fixed. That is the straight road through margin numbers 43 and 91.
  2. Oldest wallet older than the source's depth: either a web-based list with full history, chosen once and named, or par with the ECB reference rate, chosen once and named.
  3. In every case: the choice has a date, a name and a sentence in the audit report. A later change has the same.

What does not work: the first two years at market rate, the older years at par, and both under "market rate" in the entry. That is the case margin number 91 describes as missing uniformity, and it arises not from intent but from a window nobody looked at before choosing.

Frequent questions

Is it enough to fill in the old years by hand from another source? Technically that is a change of source, even if it only concerns the past. It is documented like any other, with source and date. Without that line the books hold a market rate without origin, and that is the gap audits fail on.

Does this apply to EURC too? For a euro stablecoin the currency leg disappears. The par route takes 1 EURC as 1 euro, no conversion. The market-rate route still needs a source with depth, and EURC/EUR has a shorter history than USDC/EUR on most platforms.

Why not store both rates? You can store both. You can book only one. The question is not which number sits in the system, but which one is in the entry and whether it got there by the same rule every year.