Kalshi Politics — Mispricing Audit
1. How this was researched
Mode: category-match. $CATEGORY = Politics matched 335 active markets in trading_events.category = 'Politics' closing before 2026-09-06 (45-day horizon), via the read-only DB mirror. (The separate Elections category, 74 markets, was out of scope.) The live Kalshi API supplied current quotes, order books and daily candlesticks — note the API now returns dollar-string fields (yes_bid_dollars etc.), which this audit converted to cents.
Stage 1 filter (volume24h ≥ 1,500 · spread ≤ 5¢ · not announcer-noise · not already ≥95/≤5 · not an already-published pick): 335 → 14 candidates. Cuts: 253 on volume, 34 announcer-noise (Truth Social post counts, endorsement counts, ActBlue leaderboards), 20 fully priced, 13 already live in the feed, 1 on spread.
Stage 2–2.5 diligence pulled full rules text for all 14, live order books, 14-day candles, and primary sources — most importantly the resolver's own data feed for the dominant cluster: the IMF PortWatch daily chokepoint dataset (ArcGIS Daily_Chokepoints_Data, portid=chokepoint6 = Strait of Hormuz), queried directly. Every probability below is a forecast of the named resolver's verdict, with resolver risks priced as explicit point deductions.
2. Markets reviewed
| Ticker | Question (short) | YES bid/ask ¢ | Vol 24h | Verdict |
|---|---|---|---|---|
| KXHORMUZWEEKLY-26JUL26-T40 | Hormuz transit calls Jul 20–26 > 40 (IMF PortWatch) | 74 / 76 | 3,607 | PICK — BUY YES |
| KXHORMUZWEEKLY-26JUL26-T50 | Hormuz transit calls Jul 20–26 > 50 | 51 / 56 | 4,847 | REJECT — band screen |
| KXHORMUZWEEKLY-26JUL26-T60 | Hormuz transit calls Jul 20–26 > 60 | 31 / 33 | 2,822 | REJECT — tail |
| KXHORMUZWEEKLY-26JUL26-T70 | Hormuz transit calls Jul 20–26 > 70 | 18 / 19 | 2,059 | REJECT — tail |
| KXHORMUZNORM-26MAR17-B260901 | Hormuz 7-day MA > 60 before Sep 1 | 8 / 9 | 50,683 | REJECT — no edge |
| KXCLARITYVOTE-26JUL-AUG08 | Senate recorded vote on CLARITY Act before Aug 8 | 72 / 73 | 10,910 | REJECT — fairly priced |
| KXCLAYTONCONF-26JUN11-AUG01 | Clayton confirmed DNI before Aug 1 | 86 / 89 | 3,304 | REJECT — no edge at ask |
| KXLAKECONF-26MAY12-SEP01 | Kari Lake confirmed Amb. to Jamaica before Sep 1 | 16 / 20 | 22,714 | REJECT — tail |
| KXTRUMPBIBIMEET-26AUG01-AUG01 | Trump–Netanyahu meet in person before Aug 1 | 52 / 53 | 8,250 | REJECT — coin-flip |
| KXHEGSETHOUT-26APR-SEP01 | Hegseth out as SecDef before Sep 1 | 7.5 / 8.9 | 6,804 | REJECT — thin, duplicative |
| KXAPRPOTUS-26JUL24-41.2 | RCP approval 41.1–41.3 at 11 AM ET Jul 24 | 42 / 43 | 6,218 | REJECT — coin-flip |
| KXAPRPOTUS-26JUL24-41.5 | RCP approval 41.4–41.6 at 11 AM ET Jul 24 | 10 / 11 | 8,430 | REJECT — tail |
| KXTRUMPPHOTO-26JUL26-5 | Getty Trump photo days Jul 20–26 = exactly 5 | 45 / 46 | 1,905 | REJECT — resolver risk |
| KXTRUMPPHOTO-26JUL26-6 | Getty Trump photo days Jul 20–26 = exactly 6 | 30 / 31 | 1,653 | REJECT — tail + resolver |
3. Top pick — detail and thesis
Pick 1 — KXHORMUZWEEKLY-26JUL26-T40 · BUY YES @ 0.77 limit · HIGH CONVICTION
"Will there be more than 40 transit calls through the Strait of Hormuz from Jul 20, 2026 to Jul 26, 2026?" — resolves YES if the number of transit calls as reported by IMF PortWatch for Jul 20–26 exceeds 40. Closes 2026-07-28 13:00 UTC.
Mispricing thesis. The crowd is pricing the headline ("Strait of Hormuz closed to commercial shipping") while the rules pay whatever the IMF PortWatch daily counter prints — and that counter has printed 6–17 vessels every single day through the entire "closure." The month's worst day (6, on Jul 12) sustained for all seven days still sums to 42 > 40. Three of the seven days (Jul 20–22) are already in the past under a regime that averaged 14.3/day over its three final published days.
Evidence (receipts).
- IMF PortWatch daily transit calls, Hormuz (chokepoint6), pulled directly from the resolver's ArcGIS feed on 2026-07-23 (latest print Jul 19; ~4-day publication lag): Jul 8–19 = 15, 11, 9, 10, 6, 9, 11, 12, 10, 11, 17, 15. Trailing 7-day MA 12.1; trailing full week (Jul 13–19) summed to 85 — more than double the strike.
- Minimum published day since Jun 15 is 6; the strike requires the week to average below 5.9/day, a level never printed even once in the five-week crisis dataset.
- Fortune / CNBC (Jul 21) describe the "worst-case" trickle by citing exactly this lagged Jul 17–19 data (40 vessels over 3 days) — i.e., the scary headlines describe the regime that was already printing 11–17/day, not new information about Jul 20+.
- Hormuz Strait Monitor crisis timeline (Jul 20): "Strait traffic remains largely stalled" — same regime, not a step-change to zero; UN News (Jul 21) reports "near-standstill" with traffic continuing at a fraction of the ~110/day pre-war norm.
- Price history: this contract traded 42¢ on Jul 21, spiked to 84¢ on Jul 22 (vol 2,924 — the lagged Jul 18–19 prints landing), and pulled back to 74–76¢ today on closure headlines. The pullback is the entry.
Resolver profile & priced risks (Stage 2.5). Resolver: IMF PortWatch daily transit-call series for the Strait of Hormuz, summed over Jul 20–26; mechanism is a published-data read after the ~4-day lag (expect settlement ~Jul 30–31). Rules text is one sentence and unambiguous. Priced deductions: PortWatch retroactive revisions of daily prints, −2 pts; Kalshi reading a different PortWatch surface than the ArcGIS daily series, −1 pt; publication delay pushing settlement into exchange discretion, −1 pt. Evidence-based probability 89 − 4 = 85. (Prior-run scar tissue respected: the KXMAXSHIPSHORMUZ loss came from betting a tracker against this resolver. This pick bets the resolver's own published floor.)
Tail risk — the cleanest way this loses. A genuine zero-transit blockade takes hold immediately: Jul 20–22 prints come in at the monthly minimum (~6/day) and Jul 23–26 collapse to ~0–3/day, summing under 41. That requires an unprecedented-in-this-crisis suppression level sustained for a week, during which fee-paying, Iranian-routed and coastal traffic — which PortWatch counts — has never stopped. War escalation is real (CENTCOM's tenth consecutive night of strikes; Iran suspended MOU commitments Jul 18), so the tail is live, just small.
Numbers. 512 contracts at ≤77¢ = $391 cost → max payout $512, +$121 if YES (+30.8% on cost). EV at p=0.85: +$44 (+11.2%) — recorded for calibration, not used for sizing.
Liquidity / entry context (2026-07-23, ~19:00 UTC). Best YES bid 74¢ × 166; ask side 76¢ × 285, 77¢ × 227 → 512 contracts fillable within 1¢ of best ask; next depth at 81¢ (skipped — >3¢ slippage). Volume 24h 3,607; open interest 4,521.
Price history (daily close). Jul 18: 62 → Jul 19: 66 → Jul 20: 42 → Jul 21: 48 → Jul 22: 84 (high 97) → Jul 23: 74. The ≥20¢ moves on Jul 20 and Jul 22 both came with volume and map to the lag cycle of the resolver's data.
4. Recommended $10,000 portfolio
| # | Ticker | Action | Limit ¢ | Contracts | Cost $ | Conviction / band | Max payout $ | EV ¢/ct | EV % |
|---|---|---|---|---|---|---|---|---|---|
| 1 | KXHORMUZWEEKLY-26JUL26-T40 | BUY YES | 77 | 512 | 391.39 | HIGH · 60–90¢ favorite | 512.00 | +8.6 | +11.2 |
| Totals | 512 | 391.39 | 512.00 | — | +11.2 | ||||
Total deployed: $391.39 (3.9%). Cash held: $9,608.61 (96.1%). Blended EV +11.2% on deployed cost; dollar edge ≈ +$44. Sizing was set by conviction tier (HIGH → cap $1,500), entry band, and order-book depth — the fillable book at ≤3¢ slippage (512 contracts) bound long before the tier cap did. ev_pct/edge_cents did not drive contract counts.
Cluster exposure
| Cluster | Cost $ | % of capital | Cap (15%) |
|---|---|---|---|
| hormuz-transit | 391.39 | 3.9% | $1,500 |
Conviction exposure
| Tier | Cost deployed $ | Picks |
|---|---|---|
| HIGH | 391.39 | 1 |
| MEDIUM | 0 | 0 |
| LOW | — (never deploys, v3.3) | 0 |
Risk profile
- Worst case: total blockade materializes immediately; the week sums ≤ 40; −$391.39 (−3.9% of capital).
- Best case: week sums > 40; +$120.61 (+1.2% of capital).
- Most likely: Jul 20–22 prints land at 8–14/day within days, the market re-rates toward the 90s well before settlement, and the position wins (~85%).
- Concentration: one thesis, one resolver. Deliberate — everything else on the slate failed a screen, and cash is a position. A 96%-cash book in an efficient week is the correct answer, not a failure.
Execution notes
- Work limits at 76–77¢; do not chase above 79¢ (3¢ slippage ceiling). The book is thin past 77 — a gap to 81.
- Invalidation: when PortWatch publishes Jul 20–22 (expect ~Jul 24–26), a print < 6 on any of those days, or a 3-day sum < 24, breaks the regime assumption — exit at market.
- Watchlist trigger: if Jul 20–22 publish at ≥ 12/day average (≥ 36 banked), the rejected T50 leg becomes mechanically near-locked; it may be re-evaluated in the next run against the coin-flip screen at whatever price then prevails — under the remaining cluster headroom (~$1,100).
- No hedge leg: buying NO on T60/T70 as a "collar" fails its own edge test (my distribution puts the weekly sum near those strikes).
5. What I rejected and why
All 13 Stage-2 survivors below are machine-logged in picks.json and shadow-tracked to settlement — if the rejects outperform the picks, the screen adds nothing, and that finding matters. Entry-band cuts are marked [BAND].
- [BAND] KXHORMUZWEEKLY-26JUL26-T50 (YES @ 56¢, my p=73): the audit's hardest cut. Modeled edge +17¢ clears the ≥15¢ bar, but the 35–60¢ band also demands HIGH conviction and this is honestly MEDIUM — it needs the week to average 7.3/day against an observed floor day of 6; no mechanical lock. v1/v2 lost their money in exactly this band on exactly this kind of "great story, one notch from the floor" trade. Shadow-track it.
- [BAND] KXHORMUZWEEKLY-26JUL26-T60 (YES @ 33¢, p≈58) and -T70 (YES @ 19¢, p≈45): sub-35¢ tails, hard reject with no exceptions (v3.2) — despite large stated edges. The stated-EV-anti-predictive finding is the whole reason this rule exists, and the last Hormuz tail (KXMAXSHIPSHORMUZ) lost 75%.
- KXHORMUZNORM-26MAR17-B260901 (NO @ ~92¢, p=92): fairly priced. A 7-day MA > 60 needs the war to end and traffic to renormalize within 5½ weeks — but NO offers ≤1¢ of edge inside the >90¢ deep-favorite band, on top of cluster concentration.
- KXCLARITYVOTE-26JUL-AUG08 (YES @ 73¢, p=74): no edge. Thune has pledged a pre-recess floor vote and even a failed cloture vote resolves YES, but no cloture was filed as of Jul 23, two session weeks remain, war business is eating the floor, and there is residual definitional risk over whether a motion-to-proceed vote counts as a vote "on the CLARITY Act."
- KXCLAYTONCONF-26JUN11-AUG01 (YES @ 89¢, p=84): negative edge at the ask. Committee advanced him 9-8 on Jul 21 and a floor vote is expected "early next week" — but "before Aug 1" gives zero slack for cabinet-level post-cloture hours in a jammed floor week; a slip to Aug 3–6 resolves NO. The NO side (11–14¢) is a banned tail.
- [BAND] KXLAKECONF-26MAY12-SEP01 (YES @ 20¢, p≈42): positive modeled edge — SFRC advanced Lake 12-10 on Jul 22 with Cornyn folding, and pre-recess nomination batches are common — but 20¢ is a sub-35¢ tail. Hard reject; the shadow track can argue for reinstatement.
- [BAND] KXTRUMPBIBIMEET-26AUG01-AUG01 (YES @ 53¢, p=52): fair coin-flip. Meeting intent is real (Jul 3 call), but it has already slipped twice, nothing is scheduled per Axios/Political Wire (Jul 16–17), and 8 days remain.
- KXHEGSETHOUT-26APR-SEP01 (NO @ ~92¢, p=94): ~2¢ of edge in the deep-favorite band, and the feed already holds the same thesis (KXHEGSETHOUT-26APR-AUG01 NO). Adding a second correlated Hegseth leg is the exact shape of the v1 blow-up.
- [BAND] KXAPRPOTUS-26JUL24-41.2 (YES @ 43¢, p≈40): coin-flip band without HIGH conviction. Best available reading puts the current RCP average at ~41.0 — in the adjacent band — the resolver page itself was unreachable (HTTP 403) for verification, and one overnight poll drop moves the average either way before the 11 AM ET snapshot.
- [BAND] KXAPRPOTUS-26JUL24-41.5 (YES @ 11¢, p≈8): tail, and two bands away from the current value.
- KXTRUMPPHOTO-26JUL26-5 (YES @ 46¢) and [BAND] -6 (YES @ 31¢): resolver risk beyond the 15-pt Stage-2.5 cap. Exact-count bands on Getty editorial tag-days, mid-week, where upload timing and tagging lag can move the count ±1 and I cannot audit the resolver's query. No probability worth committing to.
6. Sources
- IMF PortWatch daily chokepoint data (resolver feed), ArcGIS Daily_Chokepoints_Data, chokepoint6 = Strait of Hormuz: services9.arcgis.com (query endpoint) · portwatch.imf.org
- Straits.live — Strait of Hormuz live tracker (Jul 19 PortWatch print of 15; closure status; dark-tanker counts)
- Fortune (Jul 21) — transits slow to a trickle · CNBC (Jul 21) — ships shun Hormuz
- Hormuz Strait Monitor — crisis timeline (Jul 15–21 day-by-day) · UN News — shipping at near-standstill · NBC News Hormuz traffic tracker · HSToday — ceasefire collapse, CENTCOM strikes
- CLARITY Act: CryptoSlate — floor-vote pledge · TechTimes (Jul 12) · thirdweb (July disputes) · Yahoo Finance — Aug 7 deadline
- Clayton DNI: AP via KSAT (Jul 21) — committee 9-8 · The Record · Washington Times — floor vote expected soon
- Kari Lake: NOTUS — Cornyn backs off · Tucson.com — SFRC 12-10 (Jul 22) · SFRC testimony (Jun 18)
- Trump–Netanyahu: Axios (Jul 16) — why no meeting scheduled · Political Wire (Jul 17) · Al Jazeera (Jul 4)
- Hegseth: PBS NewsHour — commander resigns · The Hill — Collins criticism; Trump "stands strongly behind" Hegseth
- Approval: RealClearPolling — Trump job approval (direct fetch returned HTTP 403; current ~41.0 average taken from search-index snapshot dated within ~18h — flagged as unverified in the reject)
- Market data: Kalshi public trade API v2 (quotes, order books, candlesticks) and the read-only Kalshi DB mirror (rules text, catalog).
Data: Kalshi mirror DB + Kalshi public API (2026-07-23), IMF PortWatch ArcGIS feed, and the cited press. All probabilities are subjective estimates; binary contracts resolve to $1.00 or $0.00 and positions can lose 100% of cost. This report is research, not financial advice. v3.3 methodology: conviction-tier sizing caps, 60–90¢ entry-band preference, sub-35¢ tails and LOW-conviction leans hard-rejected, 15% per-cluster cap, EV recorded but never used for sizing. Rejects are shadow-tracked to settlement.