How to Record Stock Splits & Broker Transfers
Corporate actions are where most portfolio trackers quietly break. A stock splits, a company you own gets acquired, or you move your holdings from one broker to another — and suddenly your position count, cost basis, or return numbers look wrong. Automatic-sync tools sometimes handle these silently, but if you track by transaction (as any accurate tracker should), you need to record them correctly by hand. Here's exactly how, for each case.
Forward stock split
In a forward split (e.g. 4-for-1), you get more shares at a proportionally lower price. Multiply your quantity by the ratio, divide your cost per share by the same ratio.
Reverse stock split
The opposite (e.g. 1-for-10): fewer shares at a proportionally higher price. Divide your quantity by the ratio, multiply your cost per share by it.
Merger or ticker change
When a company you own is acquired, or simply changes its ticker, record a sell of the old ticker and a buy of the new one on the same date, at the same value — so no artificial gain or loss appears from the changeover itself.
Spinoff
When a company spins off a division as a new stock, you end up holding two positions where you had one. The company publishes an allocation percentage — use it to split your original cost basis between the parent and the spinoff.
Transfer between brokers
This is the one people most often get wrong — they delete the old position and re-add it at the current price, which destroys their real cost basis and holding period. Don't. A transfer isn't a sale.
Instead, keep the original buy transactions exactly as they are — same dates, same prices — and only change the broker label to the new broker. Your cost basis, your holding period, and your return all stay correct, because economically nothing was bought or sold; the shares just moved custodians.
Qty and Price columns of the original row; a transfer is an edit to the Broker column only; a merger is a matched sell row plus a buy row on the same date. There's no dedicated "split" or "transfer" row type — you express these as ordinary transaction edits, which keeps the math transparent.