Skip to content
Preptima
hardScenarioDesignMidSeniorStaff

A researcher's backtest and the desk's live profit and loss disagree about the same stock's price history. Where do you look first?

Establish that both are talking about the same instrument, then about the same series. Adjusted histories are rewritten by every subsequent corporate action, tickers get reused, official closing prices are not last trades, and the currency conversion is a second series with all the same problems.

5 min readUpdated 2026-07-29Target archetype: Enterprise Captive
Practice answering out loud

What the interviewer is scoring

  • Does the candidate confirm instrument identity across the whole period before comparing any prices
  • Whether adjusted series are recognised as being rewritten by each new corporate action, so a backtest is irreproducible unless the adjustment vintage is pinned
  • That the specific price is pinned down, official closing price against last trade against a consolidated close
  • Whether survivorship in the vendor's universe is raised as something the live book cannot have
  • Does the answer treat the currency conversion as a separate series with its own timestamp and its own defects

Answer

Two systems, two definitions of the same word

This disagreement is almost never a bug in either system. It is two correct answers to two questions that nobody wrote down, and the way to resolve it is to narrow the definitions until only one can still be true. There is an order to that, because each step invalidates the comparison at the step below it: identity first, then series definition, then adjustment vintage, then the currency, and only then arithmetic.

Skipping to the arithmetic is what makes these investigations take a week. If the two sides are looking at different instruments, comparing their returns tells you nothing at all.

Is it the same instrument for the whole period?

Instruments are not stable objects. A company changes its name, moves its primary listing, reorganises and emerges with a new identifier, spins off a subsidiary, or is acquired and disappears. Meanwhile identifiers are recycled: a short ticker freed by a delisting can be reassigned to an entirely unrelated company, so a history keyed on ticker can contain two businesses joined at the point where one ended.

That is the reason a market data platform needs its own permanent internal instrument identifier, minted once and never reused, with every external identifier attached to it as a dated mapping rather than as a column. Then "the same instrument" is a question the system can answer, and a history assembled through the mapping is traceable to the entity rather than to the symbol. Without that, the first check available to you is manual: pull the corporate action and identifier history for the period and look for a discontinuity near where the two series diverge, because that is usually exactly where it will be.

The related defect is what is missing rather than what is wrong. A universe drawn from a vendor's current list of listed companies contains only survivors, and a strategy tested on survivors is being handed information the desk never had. Any historical universe has to be reconstructed as at each date from dated membership records, including the names that were delisted, suspended or acquired away.

Which series, exactly?

For a single instrument on a single day there are several defensible prices, and they differ by amounts large enough to explain a disagreement. The official closing price published by the primary listing venue is usually struck in a closing auction and is not the same as the last trade of the day on that venue, which in turn is not the same as the last trade anywhere, which is not the same as a consolidated closing print. Add the venue's session boundaries and the time zone the researcher's tooling assumed, and a series can be offset by a day for part of its history.

Then there is the adjusted-versus-unadjusted distinction, and beneath it a further one. A price-adjusted series removes the mechanical effect of splits and similar actions so that the series is continuous. A total-return series additionally assumes dividends were received and reinvested. A strategy tested on total-return data has silently been credited with income that the live book only receives if it held through the record date, paid the right tax, and was not lent out at the time. That gap alone is enough to make a marginal strategy look profitable.

Adjusted history is rewritten, which is why backtests are not reproducible

The subtlest item on the list, and the one worth leading with once identity is settled, is that an adjusted series has no fixed value. When a corporate action occurs, the vendor recomputes adjustment factors and every prior observation changes. The number your researcher recorded for a date three years ago was correct when they ran the test and is different today, because a consolidation happened last month.

So a backtest cannot be reproduced from a live-updating adjusted series, and any result quoted without the vintage of the data it used is unfalsifiable. The fix is to treat the adjustment as data rather than as a property of the price: store raw traded prices exactly as published and never touch them, store corporate actions as dated events, and derive the adjusted series on demand as at a stated date. A test then names the as-at date of its reference data along with its parameters, and the same test run a year later either reproduces the number or has a stated reason not to.

The same discipline applies to everything else the test depended on. Index membership, sector classification, shares outstanding, lot size and tick size all change and are all usually stored as current values, which means a test that filtered on any of them was filtering on facts from the future. Point-in-time reference data is not a luxury for a research platform; it is the difference between a measurement and a story.

The currency is a second series

If either side is reporting in a currency other than the one the instrument trades in, there is a second time series in the calculation, and it has all the same problems plus one of its own. Which rate was used, struck at what time, from which source, and against which side of the spread? A researcher taking a daily closing rate and a desk translating at the rate that applied at the moment of each transaction will disagree, and the difference is neither party's error. It has to be pinned in the same way as everything else, and pinned separately for valuation and for realised results, because those are genuinely different questions.

Where the disagreement usually turns out to live

Once you have run the ladder, the resolutions cluster. In roughly descending order of frequency, it is an identifier discontinuity around a reorganisation; a closing-price definition mismatch between the primary venue's auction and a consolidated last trade; an adjusted series compared against unadjusted transaction prices, or a total-return series compared against price-only results; an adjustment vintage difference where one side re-derived and the other did not; and a currency rate convention. Arithmetic errors do occur and are the last place to look, not the first.

What makes this worth engineering rather than investigating repeatedly is that every one of those causes is a missing definition rather than a missing capability. A market data layer that stores raw prices immutably, keeps corporate actions and identifier mappings as dated events, exposes derived series with an explicit as-at date, and forces every consumer to name the price definition it wants, does not produce this disagreement. One that hands out a convenient adjusted close will produce it indefinitely, and each occurrence will be investigated from scratch by somebody who has not seen it before.

An adjusted price history is a derived view that changes without anyone touching it. Store what was traded, store what the issuer did, and derive the series with a stated as-at date, or accept that no research result in your firm is reproducible.

Likely follow-ups

  • How would you store a price history so that a backtest run today and the same backtest run in a year produce identical figures?
  • A ticker in your history belongs to two different companies at different times. How would you detect that automatically?
  • Why does a total-return series flatter a strategy that never actually received the dividends?
  • What is your reference price for an instrument that was suspended for three weeks in the middle of the period?

Related questions

market-datareference-datacorporate-actionspoint-in-timebacktesting