Skip to main content
An open position held by the caller. Every field is one of three entry types — direct (taken from upstream), synthetic (computed by OpenPX), or omitted (not exposed upstream).

Coverage

ExchangeDirectSyntheticOmitted
kalshi230
polymarket500

Field crosswalk

Unified fieldTypekalshi sourcepolymarket sourceNotes
market_tickerstringMarketPosition.tickerPosition.slugkalshi: Kalshi market ticker; round-trips through fetch_markets. polymarket: Polymarket market slug; matches Market.ticker.
outcomestringsyntheticPosition.outcomekalshi: Title-cased from the sign of position_fp (positive → Yes, negative → No). polymarket: Outcome label as published by Polymarket.
sizenumber (double)MarketPosition.position_fpPosition.sizekalshi: Absolute value of the signed position_fp FixedPointCount string. polymarket: Non-negative size in contracts.
average_pricenumber (double)syntheticPosition.avgPricekalshi: total_traded_dollars / |position_fp| — cost basis per contract. polymarket: Decimal probability in [0, 1].
current_pricenumber (double)syntheticPosition.curPricekalshi: market_exposure_dollars / |position_fp| — mark per contract. polymarket: Decimal probability in [0, 1].

Source specs

Tables are auto-generated from schema/mappings/. CI fails if any direct ref no longer resolves in the cached upstream spec; the daily upstream-refresh PR surfaces drift here.