11 / 97
Carry-Forward Artifact
Working definition
A stretch of a market dataset in which missing values were filled by repeating the last known price, manufacturing bars that look like market stability but actually record the absence of data.
When a data pipeline has no tick for an interval it must emit something, and the path of least resistance is to repeat the last known price. A bar builder obligated to produce one bar per minute emits a zero-range bar at the previous close. A feed merge papers over one source’s gap with its last value while the other side keeps updating. A vendor pads a missing session so downstream consumers do not encounter holes. In every case the output is a carry-forward artifact: data-shaped silence, indistinguishable at a glance from a genuinely quiet market.
The signatures are mechanical once looked for. Runs of identical open-high-low-close values far longer than a real market produces. Volume recorded as zero — or absent — beneath apparently stable prices. One side of the quote frozen while the other moves, because carry-forward was applied per side, producing spread structure no market maker ever quoted. Update cadence that collapses in exactly the windows where other venues show activity — which distinguishes an artifact born of pipeline failure from one born of censoring, though from the inside of the dataset the two can look identical. This is territory where quote staleness hardens from a latency property into fabricated bars.
The backtest consequences run in one direction: flattery. Carried-forward stretches understate volatility, since manufactured flatness enters every estimator as if it were market behaviour. Worse, a simulation will transact against the phantom prices — filling stops, limits, and entries at levels no order could have achieved, because no market existed there to fill them. A gap honestly recorded is information: the feed was down, the session was closed, the ticks were suppressed. A gap papered over is contamination that survives every downstream statistical check, which is why detection belongs at the data layer and in tick data provenance discipline. The Data Forensics instrument I am building is intended to surface exactly these artifacts in a user’s own dataset.
Commonly confused with
Neighbouring concepts that get used interchangeably, and the distinction that actually separates them.
- A genuinely quiet market
Indistinguishable at a glance, which is the entire problem — the output is data-shaped silence. The separators are mechanical: zero or absent volume beneath stable prices, runs of identical values longer than a real market produces, and other venues showing activity in the same window.
- Censoring
Both produce a record calmer than the market, and they arrive from opposite directions. Censoring drops updates that existed; carry-forward invents updates that did not. From inside a single dataset the two can look identical, which is why the comparison is against another venue's feed.
- Quote staleness
Staleness is a live property — a displayed price running behind the market. A carry-forward artifact is a historical one: staleness hardened into fabricated bars that persist in the record long after the feed recovered.
- An honest gap
A gap honestly recorded is information — the feed was down, the session was closed, the ticks were suppressed. A gap papered over is contamination that survives every downstream statistical check. The difference is not cosmetic; one is a fact and the other is a fabrication.
How to measure it in your own data
A definition you cannot test is a definition you have to take on trust. This is the shortest honest route from the concept to a number you computed yourself.
- Records you need
Bar or tick series with volume retained, both sides of the quote kept separately, and a reference feed covering the same windows. Volume is the field most often discarded and the one that gives the artifact away.
- What you compute
Look for runs of identical open-high-low-close values longer than the instrument genuinely produces; zero or absent volume beneath apparently stable prices; one side of the quote frozen while the other moves; and update cadence collapsing in exactly the windows where other venues show activity.
- What the answer tells you
One side frozen while the other moves is decisive — it produces spread structure no market maker ever quoted, so it cannot be market behaviour. The consequences run in one direction, flattery: carried- forward stretches understate volatility because manufactured flatness enters every estimator as if it were real, and a simulation will transact against the phantom prices, filling stops, limits and entries at levels no order could have achieved.
If this has already cost you
Stretches of manufactured calm in a price file can be located, and a simulation that transacted against them can be identified.
- Dataset Forensics Assay“Can I trust the data file my research stands on?”Will not establish: That the data is correct. Structure can prove a file defective; it cannot prove it faithful to the market — only a second independent source can, and the report names that limit.
Intake is not open yet, so none of these can be commissioned today. They are listed here so you know the measurement exists and what it would and would not settle — the launch list hears first.
Questions and answers
How can I tell a carry-forward artifact from a quiet market?
Look at volume and at the other side of the quote. Real stillness in price usually still has some volume and still updates both sides; a padded stretch shows zero or absent volume beneath stable prices, and often one side frozen while the other moves — which produces a spread no market maker would have quoted. Cross-checking a reference feed for activity in the same window settles it.
Why does padding exist at all?
Because a pipeline with no tick for an interval must still emit something. A bar builder obligated to produce one bar per minute emits a zero-range bar at the previous close. A feed merge papers over one source's gap with its last value. A vendor pads a missing session so downstream consumers do not encounter holes. Each is convenient and none is honest about what it is recording.
What does this do to a backtest?
Two things, both flattering. Manufactured flatness understates volatility, because every estimator treats it as market behaviour. And the simulation will happily transact against the phantom prices — filling stops and limits at levels where no market existed to fill them, then reporting the result as achievable.
Why can no statistical check catch this downstream?
Because the contamination is well-formed. The rows are valid, the prices are plausible, and the series is internally consistent — there is nothing for a validation protocol to flag. Detection has to happen at the data layer, by comparison against a record that was not padded the same way.
Related terms
Derived from the links this entry makes and the entries that link back to it.
Where the term is used
Instrument pages whose published copy uses this term. Each page states what it measures and what it does not establish.
In the research
Carry-Forward Artifact comes up in two research notes on this site.