Files
any2anexoj/internal/trading212
natercio f1a7f777ef
Generate check / check-changes (pull_request) Successful in 25s
Generate check / verify-generate (pull_request) Skipped
Quality / check-changes (pull_request) Successful in 2s
Quality / static-checks (pull_request) Successful in 54s
Quality / run-tests (pull_request) Successful in 54s
Handle spin-off events
2026-10-27 21:59:04 +00:00
..
2026-10-27 21:59:04 +00:00
2026-10-27 21:59:04 +00:00
2026-10-27 21:59:04 +00:00

Trading212

Turns Trading212 account statements (CSV) into the internal record model used to build Anexo J reports. This file records how statement events are interpreted, and why.

Spin-off events

A spin-off distributes shares of one company to the shareholders of another. Trading212 reports it as an Action of Spin off:

Spin off,2026-02-11 13:41:43+00:00,US9418481035,WAT,"Waters",EOF46451921527,0.0406450000,0E-10,USD,,,,0.00,"EUR",,,,,,

These rows are booked as buys with a cost of zero: quantity and timestamp are kept, and every cost column (price, result, total, stamp duty reserve tax, currency conversion fee, French transaction tax) is required to be zero — anything non-zero, or a non-positive quantity, is logged and returned as an error, stopping the run. A row that surprises the reader must be looked at by a human, not silently booked.

Why cost zero is fair

No money was paid for the new shares, and their value came out of the value of the parent shares — on the distribution date the parent's price drops by roughly the distributed value. The position's total basis is unchanged; it is just partitioned over two lots: the spin-off lot at 0 and the parent lot at its original, unreduced basis. Selling the spin-off lot books full proceeds as gain; selling the parent lot shows the offsetting smaller gain or bigger loss. Netted together, the result equals the true economic gain.

Example — buy 100 parent shares for 10,000; a spin-off delivers new shares worth 2,000; later sell the new shares for 2,200 and the parent for 8,100:

Lot Basis (cost 0) Sold for Gain (cost 0) Gain (pro-rata)
New 0 2,200 2,200 200
Parent 10,000 8,100 -1,900 100
Total 300 300

Either partition of the same 10,000 basis yields the same net gain of 300 (true gain: 10,300 received − 10,000 paid) — as long as gains and losses are assessed together, as they are in Anexo J within the same year. If the two lots are sold in different years the per-year attribution differs (the total does not). Trading212 statements don't report a pro-rata basis allocation, so cost 0 also keeps the report reproducible from the statement alone.

Warning

Verify any outputs of this tool on your own or with a certified accountant.