Appearance
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
| Tick | Analytic | Page |
|---|---|---|
AggressorSignTick | AggressorSign | AggressorSign |
BlockTradeTick | BlockTrade | BlockTrade |
OptionTradesTick | OptionTrades | OptionTrades |
GexTick | Gex | GEX |
GreekTick | Greeks | Greeks |
HistoricalVolTick | HistoricalVol | HistoricalVol |
ImpliedSpotTick | ImpliedSpot | ImpliedSpot |
IvChangeTick | IvChange | IvChange |
IvSkewTick | IvSkew | IvSkew |
IvTermStructureTick | IvTermStructure | IvTermStructure |
MaxPainTick | MaxPain | MaxPain |
OhlcvcBar | Ohlcvc | OHLCVC |
OptionFlowTick | OptionFlow | OptionFlow |
PerContractMoneynessSliceTick | PerContractMoneynessSlice | Per-contract moneyness slice |
PriceBand52WTick | PriceBand52W | PriceBand52W |
PutCallRatioTick | PutCallRatio | PutCallRatio |
StockFlowTick | StockFlow | StockFlow |
SweepDetectorTick | SweepDetector | SweepDetector |
VolumeAnomalyTick | VolumeAnomaly | VolumeAnomaly |
VolatilityTick | Volatility | Volatility |
VpinTick | Vpin | VPIN |
Shared identity fields
Every tick carries some subset of these identity fields:
| Field | Type | Notes |
|---|---|---|
contract_id | i32 | Upstream wire id; 0 on replay. |
contract | Contract | Resolved symbol / sec-type / option spec. |
symbol | String | Underlying symbol (single-key analytics). |
date | i32 | Trading-session date YYYYMMDD. |
ms_of_day | i32 | Milliseconds 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_VALUEandVALUE_BAND_HELDon 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.