Labnotes

Published

Expense in foreign currency

Expense in foreign currency

The IRS wants foreign spending in dollars, converted at the rate for the day you paid. Not the day you file, and not the day you finally remember the receipt. Expense does that conversion itself now.

The rate is the ECB's daily reference for the expense date, fetched from Frankfurter, which mirrors the ECB and needs no API key. Buy something on a Saturday and there is no weekend rate, so it rolls back to Friday's. If no rate exists at all, a future date or a currency the ECB does not publish, the receipt is stored as-is with a note saying so. Inventing a conversion would be worse than admitting there isn't one.

The note is written in a strict little format, in the description:

(Converted from EUR 50.00 at 1.1699 USD/EUR, ECB rate for 2026-08-27.)

Strict because the app rewrites it in place. Save again, or change the date, and the old note is replaced rather than stacked. The amount field stays the one number that reports, totals, and reconciliation use, so nothing downstream needs to know that currencies exist. Change the date in the editor and the receipt re-converts at the new rate, unless you edited the amount by hand, in which case it is yours.

It works on every route a receipt can take: the editor, receipts by email, and the MCP tool. Older expenses are not backfilled. They stay exactly as they were captured.

🔥 Looking for more? Subscribe to Weekend Reading.