Three dates, one boundary
Most adjustment errors are date errors, so the dates come first. 01.07.01 established three: the announcement, when the company declares; the record date, which decides who is on the register; and the ex-date, the first session the share trades without the entitlement.
The ex-date is the boundary, and only the ex-date. It is the first morning the price is quoted in new units, so it is the first price that needs no adjusting and the last one before it that needs all of it.
Adjust from the announcement and a block of sessions sits in the wrong units. Adjust from the record date and you are usually a session or two out. Both produce a history that is right at each end and wrong in the middle, which is the hardest kind of wrong to notice.
Four versions of one event
The same illustrative share through the same one-for-one bonus. Tap each to see what the mistake does to the picture.
Three of these four are visibly odd once you know what to look for. That is the whole defence — there is no error message.
How to spot each one
Not adjusted: a one-session fall of very close to 50%, 33.3% or 80% — the reciprocal of a common factor — on a day with no news. Check the corporate-action record for that date before believing it.
Adjusted twice: the price steps up on the ex-date and the older history sits implausibly low. It happens when a feed that already adjusts is loaded into software that adjusts again, so a factor of 2 is applied as 4.
Adjusted on the wrong date: a short block of sessions at the wrong level, with a step at each end rather than one step. The give-away is that the two steps are the same size in opposite directions.
Adjusted but rounded: after several splits an old price of ₹3.20 becomes ₹0.32 and then ₹0.06, and a series stored to two decimals starts losing the difference between one session and the next. A very old, very flat stretch on a much-split company is often precision, not calm.
- A one-for-one bonus, unadjusted
- price appears to fall 50.0%
- A one-for-two bonus, unadjusted
- appears to fall 33.3%
- A ₹10 to ₹2 split, unadjusted
- appears to fall 80.0%
- A ₹4 dividend on ₹500, unadjusted
- appears to fall 0.8%
- A real day's move that lands on exactly one of these
- worth one minute of checking
A chart shows a share falling 33.3% in one session, then trading normally afterwards. The company announced a one-for-two bonus a month earlier. What is the most likely explanation?
What the error does downstream
The chart is the least of it. Anything calculated from the series inherits the mistake, usually for far longer than the eye-catching day itself.
A moving average spanning the ex-date is an average of two different units, and stays wrong for its whole window afterwards. A high or low, a range, a percentage return, a correlation with another series — all of them cross the date and all of them are quietly corrupted.
This is also why the error survives. The single bad day looks obvious in hindsight, but the derived numbers look completely ordinary, and they are what most people actually read.
Which of these should make you check the corporate-action record?
Pick a corporate action you already know about — the most recent bonus or split in a company you follow — and look at what your data does on that ex-date. If it handles one correctly it probably handles them all; if it fails this one, nothing else in the series is worth measuring. It takes a minute and it is the only test of a data source that needs no second source to compare against.
Every error so far has been an equity one, and equities at least have a continuous history to get wrong. A futures contract does not: it expires, and a long history of one has to be assembled out of several.