Summary
The live Kalshi market endpoint returns a price_ranges array alongside each market object. The kalshi/normalizer.ts does not access or type this field; it is silently dropped during normalization.
Impact
MEDIUM — no crash (field is optional and unread), but price range metadata (useful for ranged/bracket markets) is not surfaced to consumers. Related to #2064 (mve_selected_legs) which covers a similar unmodeled array on multi-variant-event markets.
Evidence
Live /markets/{ticker} response fields present but not accessed:
price_ranges: array — appears on ranged/bracket market types
Not present in KalshiRawMarket interface or accessed in the normalizer.
Affected files
core/src/exchanges/kalshi/normalizer.ts — KalshiRawMarket interface missing price_ranges field
core/src/exchanges/kalshi/normalizer.ts — normalizeMarket() does not extract price_ranges
Fix direction
Add price_ranges?: unknown[] (or a typed sub-interface) to KalshiRawMarket and decide whether to surface range metadata in the UnifiedMarket output.
Summary
The live Kalshi market endpoint returns a
price_rangesarray alongside each market object. Thekalshi/normalizer.tsdoes not access or type this field; it is silently dropped during normalization.Impact
MEDIUM — no crash (field is optional and unread), but price range metadata (useful for ranged/bracket markets) is not surfaced to consumers. Related to #2064 (
mve_selected_legs) which covers a similar unmodeled array on multi-variant-event markets.Evidence
Live
/markets/{ticker}response fields present but not accessed:price_ranges: array— appears on ranged/bracket market typesNot present in
KalshiRawMarketinterface or accessed in the normalizer.Affected files
core/src/exchanges/kalshi/normalizer.ts—KalshiRawMarketinterface missingprice_rangesfieldcore/src/exchanges/kalshi/normalizer.ts—normalizeMarket()does not extractprice_rangesFix direction
Add
price_ranges?: unknown[](or a typed sub-interface) toKalshiRawMarketand decide whether to surface range metadata in theUnifiedMarketoutput.