---
title: "Reliability & Gaps | 0xArchive Docs"
description: "Use coverage, freshness, incidents, replay events, and native checks to decide when 0xArchive data is clean enough to trust."
canonical_url: "https://www.0xarchive.io/docs/guides/reliability-and-gaps/"
markdown_url: "https://www.0xarchive.io/docs/guides/reliability-and-gaps.md"
route: "/docs/guides/reliability-and-gaps"
robots: "index, follow"
generated_from: "prerendered_html"
---

# Reliability & Gaps

Use coverage, freshness, incidents, and replay events to decide whether data is clean enough to trust.

Detect Coverage and freshness Classify Thresholds by data type Recover Retry, skip, annotate

[Venue Coverage](https://www.0xarchive.io/docs/guides/venue-coverage/)

[Limits & Throughput](https://www.0xarchive.io/docs/guides/limits-and-throughput/)

## Detect

Use these routes to tell the difference between missing data, degraded data, and a real outage.

Route

### /v1/data-quality/coverage/{exchange}/{symbol}

Check a symbol window and see whether 0xArchive has already detected missing data.

Route

### /v1/data-quality/incidents

See whether the missing window lines up with a known incident rather than assuming bad ingest.

Route

### /v1/data-quality/status

Use system health to separate venue-wide lag from a symbol-specific problem.

Route

### /v1/{exchange}/freshness/{symbol}

Read lag in milliseconds and decide whether the stream is still usable right now.

## Classify

Gap thresholds depend on data type.

| Data type | Gap threshold | Reason |
| --- | --- | --- |
| Orderbook | `2 minutes` | Historical books should update far more often than this. |
| OI / Funding | `2 minutes` | These series normally refresh around once per minute. |
| Trades | `60 minutes` | Low-volume symbols can still have natural quiet periods. |
| Candles | `2 minutes` | Candles roll from trades and should appear on time. |
| Liquidations | `60 minutes` | Liquidations are event-driven and naturally sparse. |

## Recover

Once you know the cause, decide whether to retry, skip, or mark the window.

1

### Detect the gap

Use coverage, incidents, freshness, or replay gap events to confirm the missing window is real.

2

### Classify the cause

Separate known incidents and natural quiet periods from actual continuity failures.

3

### Recover or mark it

Retry later, skip the window, or annotate the gap before the data reaches backtests or monitors.

## Monitoring rules

Run these checks before gaps leak into alerts or backtests.

Incidents first

### Check the incident feed first

Known incidents are the fastest way to separate broken ingest from expected venue trouble.

Cadence

### Know the normal cadence

Coverage tells you the usual update interval, which is better than guessing from one quiet window.

Backtests

### Pre-check the full target window

Query coverage before the backtest starts so you can skip or mark bad windows up front.

Replay

### Handle gap_detected in the main consumer

Replay gap events belong in the same recovery path as the replay data itself.

Completeness

### Treat completeness as a guide

Sparse trades can still be valid. Do not treat every quiet series as broken.
