…

How we parse your broker files

Exactly which rows from each broker statement map to which category, how the tricky cases are handled, and what is not covered. These mapping tables are generated live from the parser code, so they are always current.

Audit-first guarantee: every row whose description matches no rule is surfaced for your review — never silently dropped or mis-filed as a fee.
What the categories mean
trade (buy/sell) Stock/ETF/option buy or sell — §10 capital gains (FIFO-paired).
dividend Dividend income — §8 (foreign dividends recalculated to gross).
withholding_tax Tax withheld at source — claimed as a foreign-tax credit.
interest Interest / bond coupon — §8 interest income.
fee Broker fee — optionally deductible under §10(4).
deposit / withdrawal Cash in/out of the account — not taxable.
fx_conversion Currency conversion leg — not a taxable disposal.
capital_return Return of capital — reduces cost basis, not income.
fund_distribution Fund / PTP distribution.
cash_settlement Cash settlement of a corporate action.
stock_split / spinoff / merger / delisting / isin_change / rights_issue / exchange_offer Corporate actions — adjust position & cost basis (not a sale).
stock_grant RSU/ESPP grant — taxable income at vest, opens a position.
transfer_in / transfer_out Broker-to-broker self-transfer — non-taxable; opens/closes the position.
_skip / _skip_internal Recognised but intentionally not booked (internal transfer, DRIP cash leg, rights received).
Degiro cs en de

File: Account.csv
Export: Activity → Account statement → export CSV for the full date range.
Detected by: CSV header with Datum/Produkt/ISIN/Popis columns.

Mappings (58)
Description / actionCategoryDirection
stock split: nákup stock_split buy
stock split: prodej stock_split sell
stock split: stock_split —
úprava splitu: stock_split —
uprava splitu: stock_split —
spin off: nákup spinoff buy
spin off: prodej spinoff sell
merger: nákup merger buy
merger: prodej merger sell
take over: nákup merger buy
take over: prodej merger sell
delisting: prodej delisting sell
změna isin kódu: nákup rename buy
změna isin kódu: prodej rename sell
změna produktu: nákup rename buy
změna produktu: prodej rename sell
rights issue: nákup rights_issue buy
exchange offer: nákup exchange_offer buy
exchange offer: prodej exchange_offer sell
konverze peněžního fondu: nákup fee —
konverze peněžního fondu: prodej fee —
nákup trade buy
prodej trade sell
daň z dividendy withholding_tax —
oprava srážkové daně withholding_tax —
partnership - srážková daň withholding_tax —
reinvestice dividendy _skip_internal —
dividenda dividend —
partnership distribuce fund_distribution —
fund distribution fund_distribution —
vrátka kapitálu capital_return —
vratka kapitálu capital_return —
korporátní akce hotovostní vypořádání akcie cash_settlement —
degiro transaction and/or third party fees fee —
degiro peněžní fond - kompenzace fee —
degiro poplatek za obchodování na zahraničních burzách fee —
adr/gdr pass-through poplatek fee —
londýn/dublin kolkovné fee —
náklady akcie fee —
francouzská transakční da fee —
degiro kompenzace fee —
degiro poplatek za schodek fee —
flatex interest income interest —
flatex interest interest —
interest income distribution interest —
úrok interest —
fx vyučtování konverze měny fx_conversion —
fx vyúčtování fx_conversion —
vklad deposit —
flatex deposit deposit —
processed flatex withdrawal _skip_internal —
zpracovávaný výběr _skip_internal —
flatex withdrawal withdrawal —
výběr withdrawal —
degiro cash sweep transfer _skip_internal —
transfer to your cash account at flatexdegiro bank _skip_internal —
transfer from your cash account at flatexdegiro bank _skip_internal —
změna ceny peněžního fondu fee —
Special handling
  • Fee merging: Trade fees on separate rows are merged into their parent trade via the transaction UUID.
  • Stock splits: Both the verbed ("Stock split: Nákup/Prodej …") and verbless ("Stock split: 30 X @ …") formats are recognised; the split ratio is derived from the paired rows.
  • Return-of-capital reclass: Cross-year ROC dividend reclassifications are back-dated to the original payment year.
  • Languages: English and German exports follow the same mapping (German uses Kauf/Verkauf etc.).
Not covered / edge cases
  • No options data (Degiro does not export it).
  • Any row whose description matches no rule is SURFACED for review (never silently dropped or mis-filed as a fee).
Fio e-Broker cs

File: Obchody_<rok>.csv
Export: e-Broker → Přehledy → Obchody → export CSV per year.
Detected by: Semicolon-separated file with a "Datum obchodu" header.

Mappings (12)
Description / actionCategoryDirection
Nákup trade buy
Prodej trade sell
Převod z účtu … deposit —
Převod na účet … withdrawal —
… poplatek / fee fee —
Srážková daň / Daň z divid. zaplacená v USA / regulace 1446(f) / Refundable U.S. Fed Tax withholding_tax —
Úrok / Kupón / Výnos z dluhopisu / Bond Interest interest —
Rights Distribution _skip —
Partnership Distribution fund_distribution —
Return of Principal capital_return —
Dividenda / dividend dividend —
Vloženo deposit —
Special handling
  • Czech dividends reconstructed to gross: CZ-issuer dividends are reported net (15% withheld); the parser reconstructs gross + a synthetic withholding-tax row.
  • Bond coupons: Coupons become interest; the tax engine treats them as §8 when the row has an instrument.
Not covered / edge cases
  • Rights are received (not sold) → skipped; a later sale would surface on its own.
  • Any row whose description matches no rule is SURFACED for review (never silently dropped or mis-filed as a fee).
Trading 212 en

File: from_<date>_to_<date>.csv (or API sync)
Export: History → Export → CSV (or connect the API key for autosync).
Detected by: CSV header starting "Action,Time,ISIN,…".

Mappings (18)
Description / actionCategoryDirection
market buy trade buy
market sell trade sell
limit buy trade buy
limit sell trade sell
stop buy trade buy
stop sell trade sell
dividend (dividend) dividend —
interest on cash interest —
lending interest interest —
deposit deposit —
withdrawal withdrawal —
transfer out transfer_out sell
transfer in transfer_in buy
spin off spinoff buy
stock acquisition spinoff buy
card debit card_transaction —
spending cashback card_transaction —
new card cost fee —
Special handling
  • Cross-currency trades: A trade priced in a non-account currency is split into the trade leg + two FX-conversion legs so units never mix.
  • Pence sterling: The LSE quotes in pence. Prices sent in pence are converted to GBP on import, so everything you see is pounds.
  • Broker-to-broker transfers: Transfer in/out are non-taxable self-transfers: transfer_out closes at zero realized gain, transfer_in opens at the carried basis.
  • Withholding tax: A dividend row's withholding tax is emitted as its own row.
Not covered / edge cases
  • CSV exports over ~1 year are chunked automatically on sync.
  • Any row whose description matches no rule is SURFACED for review (never silently dropped or mis-filed as a fee).
XTB en cs

File: Account statement (.xlsx) + optionally Open Position History (.xlsx)
Export: xStation → Account history → Cash Operations → export to Excel. For transferred-in positions: also export Account History → Open Position History and upload that file too.
Detected by: Converted sheet rows (Cash Operations + Closed/Open Positions).

Mappings (27)
Description / actionCategoryDirection
stock purchase trade —
stock sell trade —
stock sale trade —
dividend dividend —
divident dividend —
withholding tax withholding_tax —
free funds interest interest —
free funds interest tax withholding_tax —
stamp duty fee —
sec fee fee —
rights_issue rights_issue —
spin off spinoff —
transfer deposit —
deposit deposit —
withdrawal withdrawal —
nákup akcií trade —
nákup akcie trade —
prodej akcií trade —
prodej akcie trade —
dividenda dividend —
srážková daň withholding_tax —
úrok z volných prostředků interest —
daň z úroku z volných prostředků withholding_tax —
převod deposit —
vklad deposit —
výběr withdrawal —
STC Transfer IN (Open Position History sheet) transfer_in —
Special handling
  • Quantity from Closed Positions: Cash rows carry the amount; share quantities come from the Closed/Open Positions sheets.
  • Stamp duty / SEC fee: UK stamp duty and US SEC fees arrive as standalone fee rows; the file sign is preserved.
  • Open Position History (transfer-in): Rows with "STC Transfer IN" in the Comment column of the Open Position History sheet are emitted as transfer_in events, establishing the original cost basis for positions transferred in from another broker.
Not covered / edge cases
  • CFD vs stock classification is reviewed per account.
  • Any row whose description matches no rule is SURFACED for review (never silently dropped or mis-filed as a fee).
Interactive Brokers (Flex) en

File: Flex Query (XML/CSV) — autosync or manual
Export: Performance & Reports → Flex Queries → run the configured query (or connect the Flex token for autosync).
Detected by: Flex section codes (TRNT, CTRN, CORP, DIV, …).

Mappings (8)
Description / actionCategoryDirection
Dividends dividend —
Payment In Lieu Of Dividends dividend —
Withholding Tax withholding_tax —
Broker Interest Paid interest —
Broker Interest Received interest —
Bond Interest Received interest —
Other Fees fee —
Deposits/Withdrawals _deposit_withdrawal —
Special handling
  • Open/close hints: IBKR provides explicit open/close flags, so FIFO pairing uses the broker's own trade side.
  • Deposits vs withdrawals: The single "Deposits/Withdrawals" cash type is split by amount sign.
  • Bond mark prices: Position summaries seed bond market prices into the pricing engine.
Not covered / edge cases
  • The manual Activity-Statement format is parsed too (its rule table will be added here next).
  • Any row whose description matches no rule is SURFACED for review (never silently dropped or mis-filed as a fee).