Skip to content

Response drift: kalshi — markets[].is_provisional not accessed by normalizer #2187

Description

@realfishsam

Exchange

kalshi

Severity

MEDIUM

What Our Normalizer Expects

The kalshi normalizer does not access is_provisional from raw market objects. The field is not declared in the KalshiRawMarket TypeScript interface and is not mapped to any unified field.

What The Live API Returns

The live markets endpoint (GET /trade-api/v2/markets) returns:

markets[].is_provisional: boolean

When true, this indicates the market's settlement is provisional and subject to revision.

Impact

  • Normalized kalshi markets carry no indication of provisional settlement status
  • Consumers may treat provisional settlements as final, leading to incorrect P&L or position calculations
  • No way to filter or flag provisional markets in the unified feed

Suggested Fix

  1. Add is_provisional?: boolean to the KalshiRawMarket interface
  2. Surface it on the normalized UnifiedMarket (e.g., as isProvisional in sourceMetadata or as a top-level flag if the unified type supports it)

Found by automated response shape drift audit

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions