What do splits do to a price series?
A split multiplies the share count and divides the price by the same factor, leaving the holder's position value unchanged — so in an unadjusted series it appears as a sudden, enormous price drop with no corresponding economic event.
The effect on a backtest is immediate and severe. A momentum rule sees a crash and exits. A dip-buying rule sees an opportunity and buys. A volatility filter sees a spike that never occurred. None of these reactions are errors in the strategy; they are correct responses to fabricated data.
Reverse splits do the same thing upward and are more insidious because they usually happen to companies in trouble. A one-for-ten reverse split shows as a tenfold overnight rally in an unadjusted series, at exactly the moment the company was doing worst.
Split adjustment itself is arithmetically unambiguous: divide every pre-split price by the ratio, multiply pre-split volumes by it. The difficulty is never the maths — it is whether the adjustment was applied to your whole history, consistently, by whoever produced the data.
Which dividend adjustment should you use?
Both conventions are defensible and they answer different questions: adjusted-close series measure total return including dividends, while raw close series measure what the screen showed. The error is mixing them.
If your strategy's returns are meant to include dividends — which is usually correct for any long-horizon equity study — use a series that back-adjusts historical prices for dividend payments. The resulting returns match what a holder actually experienced, and the historical prices will not match what was quoted at the time.
If your strategy's rules reference specific price levels that a trader would have seen — a round number, a prior high, an entry at a remembered price — then adjusted prices will not match those references, and the raw series is the right input with dividends accounted for separately.
The mixed case is where results go wrong quietly: computing signals from an adjusted series and returns from a raw one, or refreshing part of a cached history after an adjustment factor changed. Both produce a series that is internally inconsistent, and the resulting trades will look like the strategy did something clever.
How do you verify your data is adjusted correctly?
Verify it directly: pick a stock with a well-known split in your window, pull the series, and check that the price is continuous across the split date and that the ratio matches the known one.
This check takes minutes and catches the majority of corporate action problems. Look at the bar immediately before and after the event. A continuous series shows an ordinary daily move; an unadjusted or partially adjusted one shows a jump of exactly the split ratio, which is unmistakable once you know to look.
Run the same check at the boundary of any cached data. If you stored history before a corporate action and refreshed only recent bars, the join point will contain an artificial jump — this is a common failure in home-built pipelines and it is invisible in aggregate statistics.
Then scan for impossible moves across the whole universe. Any single-day change beyond a large threshold is either a genuine extraordinary event, which you should be able to name, or a data artefact. A pipeline that cannot distinguish the two will trade both.
What other corporate actions affect backtests?
Spin-offs, mergers, rights issues and symbol changes all alter a price series or terminate it, and each requires a decision that a naive pipeline makes silently.
Spin-offs are the most awkward, because value leaves the parent company and appears elsewhere. An unadjusted parent series shows a drop; a properly adjusted one accounts for the distributed value, which requires knowing the spin-off ratio and the child's opening valuation.
Mergers terminate a series, sometimes with a cash payment and sometimes with shares in the acquirer. Both need handling, and dropping the ticker entirely is the survivorship problem in miniature — an acquisition at a premium is a positive outcome that should be in the sample.
Symbol changes break any join on ticker. A company that renames appears to delist and a new one appears, splitting one history into two and losing the continuity that a long-horizon strategy depends on.
None of this is exotic; it happens constantly across any broad universe. The practical requirement is a data source that provides a stable identifier independent of the ticker, and a pipeline that states which corporate actions it handles rather than leaving you to discover the gaps through strange trades.