bars

The bars table contains one canonical timeframe period per row. Always specify ORDER BY open_time_ms when chronological order matters.

Columns

Column Type Meaning
open_time_ms INTEGER PRIMARY KEY Canonical bar open time in milliseconds
open_time_utc TEXT Human-readable UTC mirror
close_time_ms INTEGER Canonical bar close time in milliseconds
close_time_utc TEXT Human-readable UTC mirror
price_open REAL NULL Provider open price
price_high REAL NULL Provider high price
price_low REAL NULL Provider low price
price_close REAL NULL Provider close price
volume_traded REAL NULL Provider-reported traded volume
trades_count INTEGER NULL Provider-reported trade count when available
provider_data_status TEXT Effective provider-data state for the row

Provider-data status values

  1. final: provider data is accepted as durable under the active DataCat policy.
  2. pending_finalization: a returned row or empty placeholder still awaits provider confirmation.
  3. provider_omitted: the provider returned no row after the applicable check.
  4. provider_error: a localized provider or data failure affected the period or range.

NULL provider values

Provider OHLCV cells remain NULL when input is missing, still pending without a returned row, or affected by a provider error. DataCat does not write calculation-only normalization back into bars.

Check provider_data_status before filtering NULL values. A placeholder can preserve the expected timeline even when raw provider data is not currently usable.

Bars and gaps

A returned pending_finalization bar is not itself a gap. An empty pending placeholder can have both a bars row and a gaps row because the gap owns the due confirmation schedule.

Search documentation

Search across 46 documentation pages.