This is the kind of detail that sounds pedantic right up until it quietly corrupts a year of your work. I know, because I got it wrong first.
There are three legitimate ways to state what a stock’s price was on some day in the past:
They can differ enormously over long windows. A stock that returned, say, 300% on price might have returned 450% on total return, purely from dividends compounding. So which one do you use? The honest answer is: it depends on what you’re computing — and a good tool uses a different basis for different jobs. Getting to that answer took me longer than it should have.
Start with the easy one. A 2-for-1 split halves the share price overnight, but nothing happened economically — you just own twice as many shares at half the price. If your data treats that as a 50% one-day crash, every indicator and every signal you compute is garbage. So splits must always be adjusted out, no matter what you’re doing. That part isn’t controversial.
Dividends are where it gets interesting. On the ex-dividend date, a stock’s price mechanically drops by roughly the dividend amount. That drop is not a loss — if you held the shares, you received the dividend in cash; your total wealth didn’t change. Total-return data adds those dividends back in, so the series climbs smoothly through each ex-div date instead of stair-stepping down.
That’s exactly what you want for measuring performance. It’s exactly what you don’t want for computing signals.
Here’s the version of this I actually walked into. I had a mean-reversion rule — “enter when the stock drops 10% from its recent high” — and I ran it on total-return data because that was the column that was handy. The results looked fine. They were also fiction. On a total-return series, the real ex-dividend gaps have been smoothed away and the whole path drifts a little higher every quarter for reasons that have nothing to do with what any chart showed on the day. My rule was reading a price path that never traded. It fired on drops that hadn’t happened and slept through ones that had.
The same trap catches moving-average crossovers, channel breakouts, drawdown stops — anything that compares a price to another price. On a dividend payer with a 4% yield, the distortion isn’t hypothetical; it’s about 1% a quarter of pure phantom drift.
So the convention that holds up is:
There’s a nice consequence: because the simulation credits dividends as cash while you hold a position, your strategy’s returns land on a total-return footing by construction, while its entries and exits were still decided on the real traded path. You get both, without mixing them.
One piece of this is deliberately not symmetric, and I’d rather explain it than have someone find it.
The buy-and-hold benchmark uses fully dividend-adjusted data, which assumes every dividend is reinvested and compounds from that day forward. The strategy, by contrast, credits dividends as cash while you hold — they’re added to the trade’s P&L, but they don’t buy more shares and they don’t compound.
Over a decade on a high-yield name, that hands the benchmark a small but real edge the strategy doesn’t get. I could have modeled reinvestment on both sides and closed the gap. I chose not to, because reinvesting a dividend into a position you might exit next week is a modeling convenience that doesn’t match how anyone actually trades — and if I’m going to be wrong at the margin, I want to be wrong in the direction that makes my own strategies look worse than the benchmark, not better. A backtest that flatters you is worse than useless.
Worth saying plainly too: none of these bases account for taxes. Total return assumes dividends arrive whole and get reinvested instantly and for free. In a taxable account they don’t. Every number here is pre-tax, and the gap is not small for a high-yield strategy.
StrategyXL follows exactly this split — detection and the fills on split-only prices, returns and benchmarks on total return — so the numbers you compare are apples to apples. And in the Advanced Charting window you can flip a single switch between $ (price) and TR% (total return) and watch the gap open up: on many dividend payers, the total-return line pulls meaningfully above the price line over a decade. That gap is the dividends — real money, and the reason the distinction is worth getting right.
If your current tool doesn’t tell you which basis it used for which number, that’s worth an afternoon of digging. It’s the least visible way a backtest goes wrong, and the easiest one to never notice.
Questions about any of this, or a case where you think the convention should be different? .
Everything here is raw material for your own analysis, not a recommendation or financial advice.