# OHLCV Data Quality Checker — ETH/USDT Turnover Case Study

> OHLCV Data Quality Checker — ETH/USDT Turnover Case Study is a paid API for AI agents from trading-lab-turnover-notes.vironnimo.chatgpt.site, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-29).

Validates OHLCV candlestick row arrays for structural issues including OHLC violations, timestamp ordering, duplicate timestamps, gaps, and zero/negative volume, returning structured issue counts and details.

## Facts

- Endpoint: POST https://trading-lab-turnover-notes.vironnimo.chatgpt.site/api/check?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ohlcv-data-quality-checker-eth-usdt-turnover-case-study-3e576807
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4ngi_v6BYFY_nBjZsqod2

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability ohlcv-data-quality-checker-eth-usdt-turnover-case-study-3e576807 -d '<json body>'
```

Example prompt: Check this array of 500 ETH/USDT hourly OHLCV candles for data quality issues — flag any OHLC violations, duplicate timestamps, or gaps, and use an interval of 3600 seconds since this is continuous 24/7 crypto data.

## When to prefer this

Choose this endpoint when you need a structured, machine-readable quality report on OHLCV candlestick data before backtesting or live deployment — especially for crypto assets running 24/7 where cadence gaps and OHLC violations are common feed artifacts. It is purpose-built for bulk row inspection (up to 2000 rows per call) with detailed per-row issue attribution, making it superior to ad-hoc manual checks or generic data validators that lack trading-specific logic like OHLC consistency rules.

## Known failure modes

- Malformed rows are accepted and counted rather than rejected pre-payment — all rows are inspected
- At most 100 issue details are returned even if more issues exist; counts still reflect all detected issues
- Cadence checking only applies when interval_seconds is supplied; gaps cannot be detected without it
- Invalid timestamps affect apparent gap counts; rows are never reordered or discarded
- Floating point precision loss that occurred before submission is unrecoverable
- Zero or negative prices are not rejected by sign alone since instrument validity is unknown
- No exchange calendars, sessions, or holidays are applied — continuous 24/7 spacing is assumed when interval_seconds is provided

## How this service works

A 36-run ETH/USDT case study of turnover, execution costs and hold bands. Full comparison data, losing variants and buy-and-hold controls included.

## Output

Returns a JSON object with counts (total rows received, malformed rows, OHLC violation rows, gap pairs, duplicate timestamps, zero-volume rows, etc.), a list of up to 100 individual issue details (each with a code, row index, and reasons), an overall status string, cadence analysis (gap count, off-cadence pairs, missing intervals), and a limitations array explaining what the checker does and does not guarantee. Schema version and checker version are also included.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "rows": {
   "type": "array",
   "items": {},
   "maxItems": 2000,
   "minItems": 1,
   "description": "Each row is expected to contain timestamp, open, high, low, close and volume. Timestamps must be integer Unix epoch milliseconds or ISO 8601 timestamps with seconds and an explicit Z or +/-HH:MM timezone (up to three fractional-second digits); epoch seconds are not detected or converted. Prices and volume may be finite JSON numbers or decimal strings without whitespace. Malformed row items are deliberately accepted by the envelope so the report can count and identify every invalid row. Row-shape and value checks are report findings, not pre-payment rejection rules."
  },
  "interval_seconds": {
   "type": "integer",
   "maximum": 9007199254740,
   "minimum": 1,
   "description": "Optional assertion that this series uses continuous 24/7 spacing. Omit for equity/session/calendar data unless that assumption is justified. No gaps are inferred when omitted."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "counts": {
   "issue_count": 2,
   "rows_received": 2,
   "malformed_rows": 0,
   "details_returned": 2,
   "rows_with_issues": 1,
   "zero_volume_rows": 0,
   "invalid_input_rows": 0,
   "out_of_order_pairs": 0,
   "ohlc_violation_rows": 1,
   "omitted_issue_count": 0,
   "rows_without_issues": 1,
   "negative_volume_rows": 0,
   "valid_timestamp_rows": 2,
   "invalid_timestamp_rows": 0,
   "unique_valid_timestamps": 2,
   "duplicate_timestamp_rows": 0
  },
  "issues": [
   {
    "code": "ohlc_inconsistent",
    "reasons": [
     "close_above_high"
    ],
    "row_index": 1
   },
   {
    "code": "gap",
    "row_index": 1,
    "missing_intervals": 1,
    "related_row_index": 0
   }
  ],
  "status": "issues_found",
  "cadence": {
   "checked": true,
   "gap_count": 1,
   "assumption": "caller_declares_continuous_24_7",
   "interval_seconds": 3600,
   "unaligned_gap_count": 0,
   "compared_unique_pairs": 1,
   "off_cadence_pair_count": 0,
   "exact_missing_intervals": 1
  },
  "limitations": [
   "Input inspection only: no repair, source authentication, venue rules, or independent market-data verification.",
   "No trading advice, future-return prediction, look-ahead assessment, forming-candle check, or freshness certification.",
   "Cadence uses sorted unique valid timestamps only. Invalid timestamps can affect apparent gaps; original rows are never reordered or discarded.",
   "Supplying interval_seconds asserts continuous 24/7 spacing. No exchange calendars, sessions, holidays, or UTC grid alignment are inferred.",
   "JSON numbers are inspected as received; prior precision loss is unrecoverable. Bounded decimal strings are compared exactly.",
   "Zero or negative prices are not rejected solely by sign; instrument-specific validity is unknown. Zero volume is counted, not treated as an error.",
   "At most 100 issue details are returned; all rows and detected issues contribute to the counts. No issues found is not a completeness guarantee."
  ],
  "issue_counts": {
   "gap": 1,
   "ohlc_inconsistent": 1
  },
  "row_reference": "zero_based_input_index",
  "schema_version": 1,
  "checker_version": "1.0.0",
  "details_truncated": false
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ohlcv-data-quality-checker-eth-usdt-turnover-case-study-3e576807/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from trading-lab-turnover-notes.vironnimo.chatgpt.site](https://www.zero.xyz/host/trading-lab-turnover-notes.vironnimo.chatgpt.site/llms.txt)
