# Carry-Forward Artifact

> 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.

- Canonical: https://hadalinstruments.com/glossary/carry-forward-artifact/
- Term set: https://hadalinstruments.com/glossary/

---
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](/glossary/censoring/), though from the inside of the dataset the two can look identical. This is territory where [quote staleness](/glossary/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](/glossary/tick-data-provenance/) discipline. The [Data Forensics](/instruments/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](https://hadalinstruments.com/glossary/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](https://hadalinstruments.com/glossary/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.

## 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.

## 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](https://hadalinstruments.com/assays/#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](https://hadalinstruments.com/pricing/#waitlist) hears first.

## Related terms

Derived from the links this entry makes and the entries that link back to it.

- [Censoring](https://hadalinstruments.com/glossary/censoring/) The thinning of a price feed — updates dropped, coalesced or rate-limited — during the intervals in which the underlying market is moving fastest, so that the record understates the spread widening and depth withdrawal that actually occurred.
- [Quote Staleness](https://hadalinstruments.com/glossary/quote-staleness/) The age of a displayed quote relative to the current state of the market it claims to represent; a stale quote advertises a price that is no longer executable.
- [Tick Data Provenance](https://hadalinstruments.com/glossary/tick-data-provenance/) The documented history of a market dataset: where each tick was captured, when, through what aggregation, and every alteration — cleaning, backfill, merge, adjustment — applied to it since capture.
- [Time-Weighted Average Price (TWAP)](https://hadalinstruments.com/glossary/time-weighted-average-price/) The average of an instrument's price sampled at equal intervals over a window — used both as an execution benchmark and as the schedule for an order that trades evenly through time.

## 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.

- [Data Forensics](https://hadalinstruments.com/instruments/data-forensics/) Your stats can be clean and your data still lying. Backtest Honesty

## In the research

Carry-Forward Artifact comes up in two research notes on this site.

- [Why do backtests fail in live trading?](https://hadalinstruments.com/research/why-do-backtests-fail-in-live-trading/) Because a backtest is a reconstruction, and every reconstruction borrows from reality in five places. Live trading is where the borrowing is called in.
- [Why does my backtest use data that did not exist?](https://hadalinstruments.com/research/why-does-my-backtest-use-data-that-did-not-exist/) Not a bug in your code. Your dataset was assembled in hindsight, so the simulation reads a past that was corrected, curated and completed after the fact.

## Cite This Definition

APA BibTeX HTML

Hadal Instruments. (2026). Carry-Forward Artifact. Hadal Glossary. https://hadalinstruments.com/glossary/carry-forward-artifact/ Version 426b66a, 2026-08-25.

@misc{hadal_2026_carry-forward-artifact,
author = {Hadal Instruments},
title = {Carry-Forward Artifact},
year = {2026},
url = {https://hadalinstruments.com/glossary/carry-forward-artifact/},
howpublished = {Hadal Glossary},
version = {426b66a},
note = {Pre-launch publication; version dated 2026-08-25}
}

Source: Hadal Instruments, Carry-Forward Artifact. <a href='https://hadalinstruments.com/glossary/carry-forward-artifact/' rel='canonical'>Original Research</a>

Copy Citation

**Version 426b66a** identifies the commit that last changed this page in Hadal's content repository. That repository is not public, so the identifier does not resolve externally — it is published so a citation pins one specific state rather than a moving page. To obtain the exact version cited, use the [press and research route](https://hadalinstruments.com/press/).
