Market data is not a perfect stream of clean prices. Real workflows encounter late prints, corrected records, condition codes, empty windows, no-bid options, wide spreads, incomplete pagination, adjusted contracts, entitlement gates, stale streams, and provider-specific normalization choices.
This guide defines the correction and missing-data vocabulary used in CuteMarkets docs, scanners, backtests, dashboards, and provider evaluations. Use it with Market Hours, Timestamps, and Timezones, Market Data Ingestion and Caching, Backtesting Data Quality Checklist, Options Flow False Positives, and Market Data API Due Diligence Checklist.
Core terms
| Term | Meaning |
|---|---|
| Missing row | A record expected by the workflow is absent |
| Empty window | A timestamp interval returns no quotes, trades, bars, or contracts |
| Late print | A trade report arrives after the surrounding market state has moved on |
| Correction | A provider or upstream source changes, cancels, or amends a previous record |
| Condition code | Metadata that explains trade or quote handling and whether a record is regular, special, corrected, or otherwise qualified |
| No-bid option | A contract has no usable bid on the exit side |
| Wide-spread reject | A contract fails because bid/ask width is outside policy |
| Stale quote | A bid/ask update is older than the strategy or UI threshold |
| Pagination gap | A workflow stops before all pages of a result set are loaded |
| Entitlement miss | The plan or product does not include the requested field or endpoint |
| Adjusted contract | An option contract changed due to split, merger, special dividend, or other corporate action |
| Data-quality reject | A logged reason for skipping a candidate because the required evidence is incomplete or unsafe |
Missing data is a state, not a nuisance
A missing quote window changes a backtest. A missing page in a chain changes a scanner ranking. A missing stock reference row changes a watchlist. A missing entitlement changes what a customer can see.
Treat missing data as one of these states:
| State | Example | Workflow response |
|---|---|---|
| Not listed | Expiration date does not exist for the underlying | Reject generated date assumption |
| Not entitled | Quote field unavailable on plan | Show entitlement label or block workflow |
| Empty interval | No quotes in requested window | Store empty-window reject |
| Stale data | Last quote older than policy | Reject or mark stale |
| No usable side | Option has no bid for exit | Reject, penalize, or apply explicit policy |
| Pagination incomplete | Chain request stopped before all pages loaded | Block full-chain ranking |
| Adjusted terms | Contract deliverable changed | Preserve adjusted identity and sizing |
| Provider correction | Prior record amended | Refresh cache or mark run version |
This state model connects directly to Options Contract Selection, Backtesting Execution Realism, Options Chain Scanner Architecture, and Stock Data Provider Evaluation.
Condition-code and correction discipline
Condition codes and correction fields vary by source and product. A developer does not always need to expose every upstream code in a user interface, but the workflow needs a place to preserve record qualifiers when they affect interpretation.
Use condition or correction metadata to answer:
- Was this trade regular or special?
- Was the record corrected, canceled, late, or otherwise qualified?
- Should this print contribute to an aggregate or scanner score?
- Does the quote or trade belong in regular-session analysis?
- Does the provider normalize away codes the strategy needs?
- Are corrected records reflected in cached artifacts?
For provider evaluation, record how each vendor documents condition codes, late records, correction policy, and aggregate construction. This matters when comparing Options Trades API, Stock Trades API, Options Aggregates API Guide, and Historical Stock Aggregates and Indicators API Guide.
Options-specific failure modes
Options workflows encounter predictable data-quality failures:
| Failure | Why it matters |
|---|---|
Contract not available at as_of | Prevents future-listing leakage |
| Expiration not listed | Prevents hard-coded weekly or monthly dates |
| Quote window empty | Blocks quote-aware fill evidence |
| Bid missing at exit | Prevents unrealistic no-bid exits |
| Spread too wide | Blocks thin-contract overstatement |
| Last trade stale | Prevents last-price fill shortcuts |
| Open interest not updated intraday | Prevents overreading volume/OI pressure |
| IV or Greek missing | Requires score downgrade or field-specific reject |
| Corporate-action adjustment | Changes contract size, deliverable, or symbol interpretation |
Use Options Volume and Open Interest, Options Flow False Positives, Corporate Actions and Adjusted Options, Historical Options Replay for Event Studies, and Unusual Options Activity Scanner Developer Guide when building these checks.
Stock-specific failure modes
Stock workflows also need explicit handling:
| Failure | Why it matters |
|---|---|
| Inactive ticker | Watchlist and universe construction can drift |
| Corporate-action adjustment mismatch | Bars and indicators can compare incompatible values |
| Quote unavailable on plan | Spread-aware workflow cannot run |
| Premarket or after-hours assumption | Session handling can change signal timing |
| Sparse or special trade prints | Tape review can overread isolated prints |
| Indicator window incomplete | Signal should not be calculated from insufficient bars |
| Open-close record missing | Event study baseline may fail |
Use Stock Reference, Stock Trades and Quotes, Stock Aggregates and Indicators, Market Hours, Timestamps, and Timezones, and Stock Trades vs Stock Quotes API for Developers.
Reject artifact schema
A reject artifact does not need to be complicated. It needs to be explicit.
{
"run_id": "replay_2026_06_04_spy",
"instrument": "O:SPY260619C00550000",
"decision_timestamp_utc": "2026-06-04T15:35:00Z",
"data_object": "option_quote",
"reject_reason": "stale_quote",
"policy": {
"max_quote_age_ms": 2000,
"max_spread_percent": 0.08
},
"observed": {
"quote_age_ms": 6200,
"spread_percent": 0.032
},
"source_request": "/v1/options/quotes/O:SPY260619C00550000/",
"freshness": "historical"
}
The same shape can log missing chain pages, empty stock quote windows, no listed expiration, no-bid exits, incomplete indicator windows, entitlement gates, or provider correction refreshes.
Cache and correction policy
Historical caches need a correction policy:
- store the retrieval timestamp
- store source request and response metadata
- preserve schema version
- partition adjusted and unadjusted bars
- pin a replay to a manifest version
- refresh reference data after corporate actions
- mark corrected runs when upstream data changes
- avoid mixing plan states in cached market data
This fits Historical Market Data Ingestion and Cache Design, Backtesting Data Model, Market Data Access Methods, and Market Data Licensing and Commercial Use.
Provider evaluation questions
Ask each provider:
- How are empty quote, trade, aggregate, and contract windows represented?
- Are condition codes exposed, summarized, or normalized away?
- How are corrected trades, late prints, cancels, and adjustments handled?
- How are aggregate bars constructed from trades?
- Are timestamps event time, server time, or client receipt time?
- Are quote sizes, exchange identifiers, and participant fields available where needed?
- Can historical contracts be requested with point-in-time context?
- Are pagination gaps easy to detect?
- Can live stream gaps be backfilled through REST?
- Are plan-gated fields returned with clear errors or hidden?
For broader context, continue with Options Data Provider Evaluation, Stock Data Provider Evaluation, Market Data API Due Diligence Checklist, and Missing Market Data and Corrections Provider Checklist.
If the failure involves quote or trade semantics, also use Option Quote and Trade Conditions. It covers sale conditions, quote-condition terminology, exchange ids, correction indicators, sequence numbers, timestamp fields, scanner labels, and replay artifacts for options workflows.
Related reading
- Market Hours, Timestamps, and Timezones
- Backtesting Data Quality Checklist
- Options Flow False Positives
- Stock and Options Data Join Workflow
- Historical Market Data Ingestion and Cache Design
Correction handling notes
Missing data and corrections need names, not mystery gaps. Store whether a row is missing because the contract was not listed, the endpoint window was empty, the trade condition was excluded, a correction superseded a print, the cursor stopped early, or the plan lacked access. That label decides whether the system retries, rejects, backfills, or asks the user to change scope.
For options data, corrections affect both Trades and scanner evidence. For stock workflows, they can affect Aggregates, Stock Trades and Quotes, and indicator windows. Use Market Data Ingestion and Caching to keep correction policy, ingestion watermark, cache key, and replay manifest together.