Handle spin-off events
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
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
This commit is contained in:
1 parent
4681a34933
commit
f1a7f777ef
3 files changed
+288
-66
No files matched your search
@@ -0,0 +1,50 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user