mostlyright.markets.catalog.kalshi_stations
Kalshi NHIGH / NLOW settlement station whitelist.
Kalshi’s NHIGH (daily high temperature) and NLOW (daily low temperature) markets settle against the NWS CLI report for a SPECIFIC station — NOT the airport you’d assume. Common surprises:
- NYC settles against KNYC (Central Park), NOT KLGA or KJFK.
- Chicago settles against KMDW (Midway), NOT KORD (O’Hare).
- DC settles against KDCA (Reagan National), NOT KIAD or KBWI.
Citations are URLs to the Kalshi contract specification pages where the issuer documents the settlement station. These are committed to the repo so the v0.14.1 parity gate cannot regress on station identity.
This is parity-critical. A wrong station mapping silently settles research against the wrong data; the model “works” but acts on garbage. The contract test in this module asserts no entry resolves to {KLGA, KJFK, KORD, KIAD, KBWI} — the most common wrong answers.
Module Attributes
Section titled “Module Attributes”KALSHI_SETTLEMENT_STATIONS | City ticker → (settlement station ICAO, citation URL). |
|---|---|
KNOWN_WRONG_STATIONS | The known-WRONG stations that must NEVER appear in KALSHI_SETTLEMENT_STATIONS values. |
Classes
Section titled “Classes”StationCitation(station, citation) | A station mapping with its Kalshi citation. |
|---|
mostlyright.markets.catalog.kalshi_stations.KALSHI_SETTLEMENT_STATIONS : Final[dict[str, StationCitation]] = {‘ATL’: StationCitation(station=‘KATL’, citation=‘https://kalshi.com/markets/khighatl (Atlanta Hartsfield-Jackson)’), ‘AUS’: StationCitation(station=‘KAUS’, citation=‘https://kalshi.com/markets/khighaus (Austin-Bergstrom; the only Austin station Kalshi cites)’), ‘BOS’: StationCitation(station=‘KBOS’, citation=‘https://kalshi.com/markets/khighbos (Boston Logan)’), ‘CHI’: StationCitation(station=‘KMDW’, citation=‘https://kalshi.com/markets/khighchi (Midway, NOT ORD)’), ‘DAL’: StationCitation(station=‘KDFW’, citation=‘https://kalshi.com/markets/khighdal (DFW, NOT Love Field)’), ‘DCA’: StationCitation(station=‘KDCA’, citation=‘https://kalshi.com/markets/khighdca (Reagan National, NOT Dulles or BWI)’), ‘DEN’: StationCitation(station=‘KDEN’, citation=‘https://kalshi.com/markets/khighden (Denver International)’), ‘HOU’: StationCitation(station=‘KIAH’, citation=‘https://kalshi.com/markets/khighhou (Intercontinental, NOT Hobby; Kalshi cites IAH)’), ‘LAX’: StationCitation(station=‘KLAX’, citation=‘https://kalshi.com/markets/khighlax (LAX international)’), ‘MIA’: StationCitation(station=‘KMIA’, citation=‘https://kalshi.com/markets/khighmia (Miami International)’), ‘MSP’: StationCitation(station=‘KMSP’, citation=‘https://kalshi.com/markets/khighmsp (Minneapolis-St. Paul International)’), ‘NOLA’: StationCitation(station=‘KMSY’, citation=‘https://kalshi.com/markets/kxhightnola (Louis Armstrong Intl, NOT Lakefront KNEW; settles vs NWS CLIMSY)’), ‘NYC’: StationCitation(station=‘KNYC’, citation=‘https://kalshi.com/markets/khighny (Central Park, NOT LGA/JFK)’), ‘OKC’: StationCitation(station=‘KOKC’, citation=‘https://kalshi.com/markets/kxhightokc (Will Rogers World Airport)’), ‘PHL’: StationCitation(station=‘KPHL’, citation=‘https://kalshi.com/markets/khighphl (Philadelphia International)’), ‘PHX’: StationCitation(station=‘KPHX’, citation=‘https://kalshi.com/markets/khighphx (Sky Harbor International)’), ‘SATX’: StationCitation(station=‘KSAT’, citation=‘https://kalshi.com/markets/kxhightsatx (San Antonio Intl, NOT Stinson KSSF)’), ‘SEA’: StationCitation(station=‘KSEA’, citation=‘https://kalshi.com/markets/khighsea (SeaTac, NOT BFI)’), ‘SFO’: StationCitation(station=‘KSFO’, citation=‘https://kalshi.com/markets/khighsfo (San Francisco International, NOT OAK)’), ‘TLV’: StationCitation(station=‘KLAS’, citation=‘https://kalshi.com/markets/kxhightlv (Harry Reid/McCarran; settles vs NWS CLILAS)’)}
Section titled “mostlyright.markets.catalog.kalshi_stations.KALSHI_SETTLEMENT_STATIONS : Final[dict[str, StationCitation]] = {‘ATL’: StationCitation(station=‘KATL’, citation=‘https://kalshi.com/markets/khighatl (Atlanta Hartsfield-Jackson)’), ‘AUS’: StationCitation(station=‘KAUS’, citation=‘https://kalshi.com/markets/khighaus (Austin-Bergstrom; the only Austin station Kalshi cites)’), ‘BOS’: StationCitation(station=‘KBOS’, citation=‘https://kalshi.com/markets/khighbos (Boston Logan)’), ‘CHI’: StationCitation(station=‘KMDW’, citation=‘https://kalshi.com/markets/khighchi (Midway, NOT ORD)’), ‘DAL’: StationCitation(station=‘KDFW’, citation=‘https://kalshi.com/markets/khighdal (DFW, NOT Love Field)’), ‘DCA’: StationCitation(station=‘KDCA’, citation=‘https://kalshi.com/markets/khighdca (Reagan National, NOT Dulles or BWI)’), ‘DEN’: StationCitation(station=‘KDEN’, citation=‘https://kalshi.com/markets/khighden (Denver International)’), ‘HOU’: StationCitation(station=‘KIAH’, citation=‘https://kalshi.com/markets/khighhou (Intercontinental, NOT Hobby; Kalshi cites IAH)’), ‘LAX’: StationCitation(station=‘KLAX’, citation=‘https://kalshi.com/markets/khighlax (LAX international)’), ‘MIA’: StationCitation(station=‘KMIA’, citation=‘https://kalshi.com/markets/khighmia (Miami International)’), ‘MSP’: StationCitation(station=‘KMSP’, citation=‘https://kalshi.com/markets/khighmsp (Minneapolis-St. Paul International)’), ‘NOLA’: StationCitation(station=‘KMSY’, citation=‘https://kalshi.com/markets/kxhightnola (Louis Armstrong Intl, NOT Lakefront KNEW; settles vs NWS CLIMSY)’), ‘NYC’: StationCitation(station=‘KNYC’, citation=‘https://kalshi.com/markets/khighny (Central Park, NOT LGA/JFK)’), ‘OKC’: StationCitation(station=‘KOKC’, citation=‘https://kalshi.com/markets/kxhightokc (Will Rogers World Airport)’), ‘PHL’: StationCitation(station=‘KPHL’, citation=‘https://kalshi.com/markets/khighphl (Philadelphia International)’), ‘PHX’: StationCitation(station=‘KPHX’, citation=‘https://kalshi.com/markets/khighphx (Sky Harbor International)’), ‘SATX’: StationCitation(station=‘KSAT’, citation=‘https://kalshi.com/markets/kxhightsatx (San Antonio Intl, NOT Stinson KSSF)’), ‘SEA’: StationCitation(station=‘KSEA’, citation=‘https://kalshi.com/markets/khighsea (SeaTac, NOT BFI)’), ‘SFO’: StationCitation(station=‘KSFO’, citation=‘https://kalshi.com/markets/khighsfo (San Francisco International, NOT OAK)’), ‘TLV’: StationCitation(station=‘KLAS’, citation=‘https://kalshi.com/markets/kxhightlv (Harry Reid/McCarran; settles vs NWS CLILAS)’)}”City ticker → (settlement station ICAO, citation URL). The 20-city Kalshi NHIGH/NLOW universe, verified against the live Kalshi series API (GET /trade-api/v2/series?category=Climate and Weather + per-series settlement_sources). The v0.1.0 scope doc listed 21 cities, four of which (DTW/CVG/BNA/SLC) never had live markets — every series probe 404s — and it missed NOLA/OKC/SATX, which do. The citation URL is the live Kalshi contract page; if the issuer renames the city ticker the citation URL still resolves and the test stays green.
The remaining cities (Honolulu, Anchorage, etc.) defer to future international expansion.
mostlyright.markets.catalog.kalshi_stations.KNOWN_WRONG_STATIONS : Final[frozenset[str]] = frozenset({‘KBWI’, ‘KDAL’, ‘KEWR’, ‘KHOU’, ‘KIAD’, ‘KJFK’, ‘KLGA’, ‘KNEW’, ‘KOAK’, ‘KORD’, ‘KSSF’})
Section titled “mostlyright.markets.catalog.kalshi_stations.KNOWN_WRONG_STATIONS : Final[frozenset[str]] = frozenset({‘KBWI’, ‘KDAL’, ‘KEWR’, ‘KHOU’, ‘KIAD’, ‘KJFK’, ‘KLGA’, ‘KNEW’, ‘KOAK’, ‘KORD’, ‘KSSF’})”The known-WRONG stations that must NEVER appear in KALSHI_SETTLEMENT_STATIONS
values. Contract test test_no_wrong_stations enforces this.
class mostlyright.markets.catalog.kalshi_stations.StationCitation(station, citation)
Section titled “class mostlyright.markets.catalog.kalshi_stations.StationCitation(station, citation)”Bases: object
A station mapping with its Kalshi citation.