Indicator output tables

Indicator output tables exist only when the Job uses at least one Indicator Instance. They use a wide schema and store numeric outputs beside compact effective-state metadata.

Table names and allocation

The single-table case uses indicators. Larger configurations use indicators_1 through indicators_N.

DataCat allocates at most 1500 indicator output columns per table. One Indicator Instance is indivisible: all outputs from that instance remain together, even when unused capacity remains in the preceding table. meta.indicator_table_count records the actual allocated table count.

Base columns

Column Type Meaning
open_time_ms INTEGER PRIMARY KEY Joins the output row to bars.open_time_ms
open_time_utc TEXT Human-readable UTC mirror
indicator_output_states_json TEXT Effective state for every output column in the row
Generated output columns REAL NULL Numeric result or NULL when it cannot be computed

Use indicator_definitions.table_name and column_name to discover the generated output columns. Do not guess them from display labels.

Effective output states

  1. final: numeric output depends only on accepted final real provider input.
  2. provisional: output depends on at least one pending_finalization source row.
  3. derived: output uses calculation-only normalization for at least one provider_omitted row.
  4. warmup: output is NULL because usable history is insufficient.
  5. awaiting_input: output is NULL because leading pending input has no previous usable close.
  6. unavailable: output is NULL because required input is unusable.

When multiple conditions apply, precedence is unavailable > awaiting_input > warmup > provisional > derived > final.

State JSON structure

The JSON value always contains default and exceptions. Outputs not listed in an exception array use the default state.

{
  "default": "final",
  "exceptions": {
    "derived": ["i0005_sma__sma"],
    "unavailable": ["i0008_obv__obv"]
  }
}

Every output column appears in at most one exception array. Query both the numeric value and its effective state when data quality matters.

NULL output values

A NULL is not automatically a calculation error. It normally corresponds to warmup, awaiting_input, or unavailable. Calculation or persistence failures roll back the candidate transaction rather than committing newer bars with silently stale indicator output.

Search documentation

Search across 46 documentation pages.