Skip to content

Tick types

Every analytic emits one canonical output type. Tick structs are the public surface of the crate — additive field changes are non-breaking; removing or renaming a field is a breaking change.

The Python facade exposes the same twenty-one Tick types as kairos_thetadata.<TickName> (or OhlcvcBar for the OHLCVC analytic, which retains the Rust *Bar suffix on the named type). Every field is exposed through a #[pyo3(get)] accessor; no Python-side state diverges from the Rust struct. The TypeScript / Node addon mirrors the bound subset (currently nineteen ticks — HistoricalVolTick and PriceBand52WTick are gated on the JS engine daily-close cache facade landing in a subsequent release).

Catalogue

TickAnalyticPage
AggressorSignTickAggressorSignAggressorSign
BlockTradeTickBlockTradeBlockTrade
OptionTradesTickOptionTradesOptionTrades
GexTickGexGEX
GreekTickGreeksGreeks
HistoricalVolTickHistoricalVolHistoricalVol
ImpliedSpotTickImpliedSpotImpliedSpot
IvChangeTickIvChangeIvChange
IvSkewTickIvSkewIvSkew
IvTermStructureTickIvTermStructureIvTermStructure
MaxPainTickMaxPainMaxPain
OhlcvcBarOhlcvcOHLCVC
OptionFlowTickOptionFlowOptionFlow
PerContractMoneynessSliceTickPerContractMoneynessSlicePer-contract moneyness slice
PriceBand52WTickPriceBand52WPriceBand52W
PutCallRatioTickPutCallRatioPutCallRatio
StockFlowTickStockFlowStockFlow
SweepDetectorTickSweepDetectorSweepDetector
VolumeAnomalyTickVolumeAnomalyVolumeAnomaly
VolatilityTickVolatilityVolatility
VpinTickVpinVPIN

Shared identity fields

Every tick carries some subset of these identity fields:

FieldTypeNotes
contract_idi32Upstream wire id; 0 on replay.
contractContractResolved symbol / sec-type / option spec.
symbolStringUnderlying symbol (single-key analytics).
datei32Trading-session date YYYYMMDD.
ms_of_dayi32Milliseconds since midnight ET.

Flags

Many ticks carry a flags bitset for soft conditions the consumer wants to filter on without rejecting the emission outright:

  • MISSING_SPOT / MISSING_RATE / MISSING_CALENDAR / MISSING_FORWARD — required input not yet available.
  • EXPIRED — option past its expiration.
  • INSUFFICIENT_STRIKES — chain too sparse for the strip integral.
  • WARMING / ROLL — surface phase. REPUBLISHED_PRIOR_VALUE and VALUE_BAND_HELD on the volatility tick's flag bitset flag value-band gating.

IV-bisection non-convergence on Greeks is surfaced via the iv_error: f64 field on GreekTick (residual at the final bracket), not via a flag — a non-zero iv_error is the signal a downstream consumer reads.

The full flag set per analytic is documented on the analytic's page.

Proprietary. All rights reserved.