Tax & reporting methodology
Last updated May 2026
This page explains exactly how Stratum builds the numbers in your tax reports for Bitfinex margin-funding income — what data we use, how earnings and fees are calculated, how we convert to a USD equivalent, and which time basis we apply. It is engineering documentation, not tax advice. See the disclaimer at the end.
1. Ledger-based, realized income
Every figure in a Stratum tax report comes from your synced Bitfinex ledger — the authoritative record of actual money movements on your account. We do not estimate, project, or accrue. Each line item in a report is one real Margin Funding Payment entry from your ledger: interest you actually received, on the timestamp it was credited.
Because the report is built from realized ledger entries only, it reflects cash you have already received. There is no accrual modeling and no forward-looking estimate of interest that has not yet been paid.
2. How earnings and fees are computed
For each funding interest payment, Stratum reports three figures:
- Gross — the interest amount as recorded in your Bitfinex ledger.
- Fee — the matching Bitfinex funding fee (the exchange's cut) for that payment. Stratum matches a fee to its payment by the API credential, the related loan, and the payment timestamp, then subtracts it.
- Net — gross minus fee.
For example, a 10.00 gross interest payment with a 1.50 funding fee is reported as 8.50 net. Gross, fee, and net are all shown so you can see precisely how the net figure was derived.
3. Income character
Stratum classifies margin-funding interest as ordinary income (interest income), not capital gains. In the US-style reports this is labeled for Schedule 1 / Schedule B interest income. In the German summary it is labeled as foreign capital income (ausländische Kapitalerträge). Crypto interest is generally treated as ordinary income in the year it is received; how that maps to your own return is a question for your tax professional.
4. Time basis
Stratum uses a receipt-time (cash) basis. Each payment is dated and valued at the moment it hit your ledger. A tax year runs from January 1 through the end of December of that year, evaluated in UTC, and all dates and times in the reports are rendered in UTC. A payment counts toward the year in which it was received.
5. FX and the USD-equivalent
Each net amount is converted to a USD equivalent as of the payment date. The conversion rules are deterministic:
- USD is the identity — its rate is 1.0.
- UST / USDT is treated as 1.0 unless Stratum has a recorded snapshot for that date reflecting a depeg, in which case the recorded rate is used.
- Any other currency uses the most recent FX snapshot on or before the payment date. Snapshots are daily-close rates; the latest-on-or-before lookup covers gaps such as weekends.
- If no rate is available for a currency on that date, the USD equivalent is left blank rather than guessed. In the CSV that column is empty; in the TurboTax TXF that currency is skipped.
The native-currency amounts are always preserved, and the FX rate used is shown in the CSV so you can audit every conversion. These are daily-close reference rates with an on-or-before fallback — they are a reasonable, documented basis, not a live per-second or officially-blessed FX feed. If your jurisdiction requires a specific reference rate, convert from the native amounts yourself.
6. On-screen summary
Before exporting, you can see a summary for the selected year: your total USD-equivalent income, a per-currency breakdown of net and USD-equivalent, the number of interest credits (line items), and an informational split of the USD totals across the four calendar quarters. The quarterly figures are aggregates to help you plan — they are not official quarterly tax statements.
7. Export formats
From the in-app tax page you can produce several outputs for the year you select:
- CSV (Schedule B style) — one row per interest payment, with columns: Date, Time (UTC), Currency, Gross, Fee, Net, USD Equivalent, FX Rate, and Description. Rows are not collapsed by day. Descriptions that could be interpreted as spreadsheet formulas are neutralized so the file opens safely.
- TXF (TurboTax) — a TurboTax import file with one interest-income record per currency, valued at that currency's USD equivalent and tagged as Schedule B interest income. Currencies with no USD rate are skipped.
- KAP (Germany) summary — a plain-text (.txt) summary, denominated in USD, that classifies the income as foreign capital income for line 19 (Zeile 19) of the Anlage KAP. It is an informational summary, not a fillable German form and not an e-file: Stratum does not perform the USD-to-EUR conversion — you fill in your EUR figures at your applicable reference rate.
- Print-ready report (save as PDF) — an HTML report styled to print cleanly, showing the total USD-equivalent income, a by-currency table, and the full line-item table. It opens in a new browser tab; use your browser's print dialog to save it as a PDF. There is no separate downloadable PDF file.
- JSON — a machine-readable export containing the summary and line items, for anyone who wants to process the data programmatically.
- Email the CSV — Stratum can email the CSV report for the selected year to your account email address.
You can run reports for the current year and prior years, and you can let Stratum auto-detect every currency you earned in, or restrict the report to a specific set of currencies.
8. Not tax advice
Stratum exports tax reports; we do not provide tax advice and we do not guarantee that any figure is correct for your filing. Crypto interest is generally treated as ordinary income in the year it is received, but your obligations depend on your jurisdiction and circumstances. Review the exports against your own ledger and consult a CPA or tax professional familiar with crypto for your specific situation.
Related: see how earnings are tracked from the live ledger on the how it works page, how your keys and data are protected on the security page, and how to connect Bitfinex in add your API key.