Kalshi Politics — Mispricing Audit
Report date 2026-07-29 · Horizon 45 days · Capital $2,500 · Methodology v3.3 (conviction-weighted sizing, entry-band screen, 15% cluster cap, EV-agnostic sizing, resolver risk pricing) · Picks count toward the public track record and are cleared for auto-copy.
Headline: zero picks this run. 100% cash ($2,500 held).
366 active Politics markets screened, 17 passed the mechanical filter, all 17 were diligenced, and every one failed a v3 screen honestly. The near-miss is the story: the Hormuz weekly-traffic ladder looked like a fat +13¢ edge against the resolver's own published run-rate — until live AIS reporting showed the market already knew traffic collapsed on July 25–27, inside the resolver's 6-day publication lag. Buying that "edge" would have been betting on stale data. Sixteen rejects are machine-logged below and shadow-tracked to settlement.
1. How this was researched
- Mode: category-match.
lower(trading_events.category) = 'politics' matched 366 active markets closing within 45 days (by 2026-09-12). No theme fallback needed.
- Universe pull via the read-only DB mirror (schema verified first — note: the mirror currently exposes
trading_markets, trading_events and signal tables only; there is no market_snapshots table, so 14-day price history came from the Kalshi public candlesticks API instead).
- Stage 1 filter on live Kalshi API data (366/366 tickers fetched): cut 311 for volume24h < 1,500, 16 already fully priced, 16 already-published picks (excluded up front per
$EXISTING_PICKS), 5 announcer-noise, 1 wide spread → 17 survivors.
- Stage 2 diligence: rules text pulled for every candidate; live orderbooks fetched; price history via hourly candlesticks; six parallel research workstreams grounded priors in primary sources (RCP/VoteHub aggregators, Senate Judiciary notices, presidential pool schedules, UFC/TKO releases, the IMF PortWatch ArcGIS API, NYC.gov EO PDFs, Argus/UKMTO shipping data).
- Stage 2.5 resolver profiling did the decisive work this week — see the Hormuz section. Two settled prior weeks were used to reverse-engineer the resolver's exact metric before any capital decision.
- Stages 3–4: every surviving candidate was rejected on entry-band, conviction, resolver-risk, or edge grounds. Under v3.3 rules a low-conviction lean is a logged reject, not a pick, and sub-35¢ tails are hard rejects with no exceptions.
2. Markets reviewed (Stage-1 survivors)
| Ticker | Question (short) | Bid/Ask | Vol 24h | OI | Outcome of diligence |
| KXHORMUZWEEKLY-26AUG02-T30 | Hormuz weekly transits >30 (PortWatch) | 90/92 | 2,021 | 5,631 | REJECT — no edge after live-AIS adjustment |
| KXHORMUZWEEKLY-26AUG02-T35 | Hormuz weekly transits >35 | 78/79 | 2,523 | 3,831 | REJECT — resolver-lag phantom edge |
| KXHORMUZWEEKLY-26AUG02-T45 | Hormuz weekly transits >45 | 65/73 | 2,130 | 3,210 | REJECT — negative edge after adjustment |
| KXHORMUZWEEKLY-26AUG02-T50 | Hormuz weekly transits >50 | 54/57 | 3,086 | 4,453 | REJECT — coin-flip band |
| KXHORMUZWEEKLY-26AUG02-T55 | Hormuz weekly transits >55 | 42/43 | 2,586 | 2,869 | REJECT — coin-flip band |
| KXAPRPOTUS-26JUL31-40.3 | RCP approval 40.2–40.4 on Jul 31 | 27/28 | 9,020 | 16,035 | REJECT — tail + unverifiable resolver |
| KXAPRPOTUS-26JUL31-40.6 | RCP approval 40.5–40.7 on Jul 31 | 33/34 | 6,552 | 13,591 | REJECT — tail band |
| KXAPRPOTUS-26JUL31-40.9 | RCP approval 40.8–41.0 on Jul 31 | 10/11 | 6,263 | 13,982 | REJECT — tail (v3.2 hard reject) |
| KXBLANCHEJUDICIARY-27-26SEP01 | Judiciary reports Blanche before Sep 1 | 43/44 | 5,832 | 6,200 | REJECT — coin-flip, not HIGH |
| KXAGCONF-26JUN05-SEP01 | Blanche confirmed AG before Sep 1 | 26/30 | 5,238 | 14,550 | REJECT — tail band + 4¢ spread |
| KXTRUMPNUMSTATES-26AUG01-E10 | Exactly 10 states visited in July | 91/92 | 5,340 | 18,188 | REJECT — resolver count unverifiable |
| KXTRUMPNUMSTATES-26AUG01-E11 | Exactly 11 states visited in July | 5/6 | 1,509 | 10,566 | REJECT — tail, same event as E10 |
| KXTRUMPUFC-26AUG-DJT | Trump attends UFC 330 (Phila., Aug 15) | 15/16 | 3,398 | 36,126 | REJECT — sub-35¢ tail (hard) |
| KXMAMDANIEO-26AUG01-T0 | Mamdani >0 non-emergency EOs this week | 7/8 | 2,834 | 4,640 | REJECT — tail; NO side negative edge |
| KXKASHOUT-26APR-26SEP01 | Kash Patel out as FBI Dir. before Sep 1 | 5/6 | 2,079 | 8,736 | REJECT — no edge; live-pick cluster overlap |
| KXTRUMPVH-26JUL31-T39.5 | VoteHub approval >39.5 on Jul 31 | 2/6 | 1,973 | 1,927 | REJECT — fully priced, 4¢ spread |
| KXTRUMPMEET-26JUL-STAK | Trump–Takaichi contact before Aug 1 | 16/17 | 1,770 | 1,453 | REJECT — earthquake condolence-call catalyst |
Prices are cents (YES side) from the live Kalshi API at audit time. KXTRUMPNUMSTATES-E11 was folded into the E10 diligence (same event).
3. Top picks — none deployed 100% CASH
This is a deliberate zero, not an empty run. The v3 methodology is explicit: a near-empty book in an efficient week is the correct answer, and the historical record shows the money lost in weeks like this came from padding with medium-conviction coin-flips. Every candidate above failed at least one screen. The one that got closest — and why it died — is worth the full story, because it is the exact failure mode that produced this program's costliest resolved loss.
The near-pick that died in Stage 2.5: the Hormuz weekly ladder
The apparent edge. KXHORMUZWEEKLY-26AUG02 resolves on the sum of daily "transit calls" through the Strait of Hormuz reported by IMF PortWatch for Jul 27–Aug 2. Pulling the resolver's own ArcGIS feed: the last 11 published days (Jul 13–23) average 10.8 transits/day (range 6–16), implying a weekly sum near 75. Prior settled weeks confirm the metric exactly: my computed sum for Jul 13–19 was 77 and Kalshi settled T75 YES / T100 NO; for Jul 6–12 my sum was 107 and it settled T100 YES / T125 NO. Against that, the market priced >35 at 79¢ and >45 at 73¢ — an implied median near 50, some 25 points below the run-rate. On the resolver's own published data this was a +12–14¢ edge on favorite-band entries, with two settled weeks proving the mechanics. It sized as two MEDIUM picks (~$290, one cluster).
Why it died. Stage 2.5 requires forecasting the resolver at resolution time, not the world today — and PortWatch publishes on a ~6-day lag (latest print: Jul 23). The market's "wrong" curve turned out to encode information the resolver hasn't printed yet: Argus (Jul 28) reports live counts of 1 transit on Jul 25, 7 on Jul 26, 6 on Jul 27 — "the lowest level since the breakdown of the June memorandum" — under an active US blockade (CENTCOM: 18 vessels redirected, 2 boarded, 2 disabled since Jul 14). The prior week's book corroborates it: KXHORMUZWEEKLY-26JUL26-T60 trades at 31/34 even though 42 is already banked through Jul 23 — traders with live AIS believe Jul 24–26 printed ~5/day. At 5–7/day the Jul 27–Aug 2 sum lands ~40–50: >35 YES is worth ~82 (edge ≤3¢ at 79) and >45 YES is worth ~66 (negative at 73).
The lesson, stated plainly: the "mispricing" was the resolver's publication lag. The crowd wasn't lazy; I was six days blind. This is the mirror image of the July loss on KXMAXSHIPSHORMUZ (betting a third-party tracker against PortWatch); this time the discipline held because the resolver profile demanded an answer to "what will PortWatch print for days it hasn't published?" — and the only live evidence said "much less than 10.8/day." Both rungs are logged as rejects and shadow-tracked; if T35 settles YES anyway, the shadow track will say so.
Why nothing else survived
- No HIGH-conviction favorites existed this week. The only near-mechanical candidates (VoteHub NO at 98¢, Kash-Patel NO at 95¢, states-visited YES at 92¢) are deep favorites (>90¢) offering ≤1–3¢ against real spread, resolver, or duplication costs.
- The mid-board was genuine coin-flips. Blanche committee/floor markets hinge on whether Sen. Cornyn's written-commitment demand gets satisfied before the ~Aug 7 recess wall — a live binary I priced at 47/36 vs markets at 44/30. No 15¢ edge, no HIGH conviction → the band rule rejects both.
- The paper edges were all in tails (UFC 330 at 16¢, RCP 40.8–41.0 band at 11¢) — the exact slot v3.2 deleted after tails went ~0-for across the resolved record.
4. Recommended $2,500 portfolio
| Position | Conviction | Entry band | Cost | % of capital | Max payout | EV |
| Cash | CASH | — | $2,500.00 | 100% | $2,500.00 | $0 |
Cluster exposure (cap: 15% of capital = $375 per cluster)
| Cluster | Cost | % of capital | Cap |
| hormuz-weekly-traffic | $0 | 0% | 15% |
| No cluster carries exposure. The Hormuz ladder would have been the only funded cluster (~11.6%) had it survived Stage 2.5. |
Conviction exposure
| Tier | Cost deployed | Per-pick cap |
| HIGH | $0 | $375 (15%) |
| MEDIUM | $0 | $175 (7%) |
| LOW | never deploys (v3.3) | — |
Risk profile & execution notes
- Worst case / best case / most likely: $2,500 / $2,500 / $2,500. A flat week is the deliberate outcome; the risk taken this run is opportunity cost only.
- Watchlist trigger 1 — Hormuz reopening: if the Oman-brokered deal to reopen the strait lands (JPost, CBS), traffic re-rates violently upward (late-June precedent: 20–51/day within a week of the MoU) and the following week's ladder (26AUG09) becomes buyable on the high rungs before PortWatch prints it. That is a real-time-news edge, not a stale-data edge.
- Watchlist trigger 2 — Blanche markup, Thu Jul 30, 9:00 AM: a yes vote makes the Sep 1 committee market (~44¢) instantly ~99; a postponement makes the Aug-6-or-never math dominant and NO becomes the favorite-band play. Whichever way it breaks, next run should re-price the whole Blanche cluster within hours of the gavel.
- Watchlist trigger 3 — PortWatch Tuesday refresh (Aug 4): prints Jul 24–30 and adjudicates the Argus-vs-PortWatch counting gap that killed this week's near-pick. If PortWatch prints Jul 25 at ~1–3, the live-AIS read is validated and future lag-based "edges" in this family should be treated as traps by default.
- Cash reserve: 100% (minimum requirement was 10%).
5. What I rejected and why
All 16 rejects below are machine-logged in picks.json and shadow-tracked to settlement — if the rejects outperform the (empty) book, the screens add nothing and that finding will be visible. Stage-3.5 entry-band cuts are marked BAND; resolver-risk cuts RESOLVER.
KXHORMUZWEEKLY-26AUG02-T35 · YES @ 79¢ · my prob 82 RESOLVER
Resolver-lag trap (full story in §3). Run-rate on the resolver's published feed says 92; live AIS says the unpublished days collapsed. Residual edge ≤3¢. Resolver: IMF PortWatch daily chokepoint feed, summed Jul 27–Aug 2, settled after full publication (~Aug 11 refresh); priced risks: −10 pts (Jul 25–27 live collapse to 1–7/day), −3 pts (print revisions, e.g. Jul 19 15→10), −3 pts (blockade escalation).
KXHORMUZWEEKLY-26AUG02-T45 · YES @ 73¢ · my prob 66 RESOLVER
Same adjustment leaves this negative-edge: at 5–7/day the week sums ~40–50 and >45 is a coin flip priced 73. Spread also widened 65/73 intraday.
KXHORMUZWEEKLY-26AUG02-T50 · YES @ 57¢ · my prob 55 BAND — coin-flip band (35–60¢), conviction not HIGH; my distribution matches the market's within noise.
KXHORMUZWEEKLY-26AUG02-T55 · YES @ 43¢ · my prob 45 BAND — coin-flip band; needs the reopening scenario to pay.
KXHORMUZWEEKLY-26AUG02-T30 · YES @ 92¢ · my prob 90 — deep favorite with zero-to-negative edge once the live-AIS world (a week at ~5/day sums to ~35) is given real weight.
KXTRUMPMEET-26JUL-STAK · NO @ 84¢ · my prob 86 — the base case (no US–Japan leader contact all July per
Kantei's index) supported NO, but the
Jul 28 M7.1 Kumamoto earthquake (18+ dead) creates a live condolence-call catalyst in the final 2½ days, and the rules count phone calls. Residual edge ~2¢: not deployable.
KXTRUMPUFC-26AUG-DJT · YES @ 16¢ · my prob 35
BAND — the strongest paper-EV reject of the run. UFC 330 is Aug 15 at Xfinity Mobile Arena, Philadelphia (
UFC.com); Trump attended 4 of the last 5 East-coast UFC events (Miami ×2, Newark, hosted the White House card) and holds TKO stock. But there is zero affirmative attendance reporting, and 16¢ is a sub-35¢ tail — hard reject, no exceptions (v3.2). Shadow-track will grade this one.
KXAPRPOTUS-26JUL31-40.3/40.6/40.9 · YES @ 28/34/11¢ · my probs 22/30/25
RESOLVER — all three RCP bands die on the same two facts: (1) the resolver's page is unfetchable (403) and same-morning secondary reports conflict —
Mediaite says 40.7, the USA Today syndicate says 41.1 — so I cannot pin the resolver's current value to ±0.4; (2) Friday's snapshot sits at the end of a heavy release window (CNN 34 and Econ/YouGov 34 just entered; Rasmussen ~44 typically posts Friday ~10:30 ET, minutes before the 11:00 snapshot; Pew 34 is aging out). Every band is a tail or near-tail. Deductions exceed the 15-pt Stage-2.5 cap → resolver-risk reject.
KXBLANCHEJUDICIARY-27-26SEP01 · YES @ 44¢ · my prob 47
BAND — markup scheduled tomorrow (Jul 30,
EBM notice) with Blanche the only agenda item, but the committee is 11R–10D and
Cornyn is a declared holdout ("We need paper… in writing") with his Blanche meeting scrapped. Two EBM windows remain before the ~Aug 7 recess wall (Senate out to Sep 14). Genuine coin flip; not HIGH conviction; band rule rejects.
KXAGCONF-26JUN05-SEP01 · YES @ 30¢ · my prob 36 BAND — floor confirmation is strictly conditional on the committee plus floor time in the Aug 3–7 week (Thune's stated plan). Tail band, 4¢ spread, conditional chain. Same cluster as the committee market.
KXMAMDANIEO-26AUG01-T0 · YES @ 8¢ · my prob 12 BAND — resolver counts only non-emergency EOs; nyc.gov shows eo-20.pdf still 404 and a post-January cadence of 0.27/week (his Jul 29 signings were emergency-series renewals EEO 1.41/2.41, which don't count). YES is a tail; NO at 93¢ is negative-edge vs my 88 because three signing days remain and PDF posting lags. Both sides fail.
KXKASHOUT-26APR-26SEP01 · NO @ 95¢ · my prob 94 — Patel remains in role and is planning an October Moscow trip (
Politico via US News) — a stay signal — but "on thin ice" reporting is heavy, the edge is negative at the ask, and the cluster already carries a live published pick (KXKASHOUT-…-AUG01 NO). Duplicating a thesis is how the v1 book blew up.
KXTRUMPVH-26JUL31-T39.5 · NO @ 98¢ · my prob 99 — VoteHub's own API prints 38.7 and has fallen 15 straight days; a +0.8 two-day reversal is a ~1% event. But NO costs 98¢ across a 4¢ spread: +1¢ isn't a pick, it's a fee donation.
KXTRUMPNUMSTATES-26AUG01-E10 · YES @ 92¢ · my prob 85 RESOLVER — the price implies the tracker's July count is exactly 10 with ~5% chance of an 11th; my independent reconstruction from pool reports finds 8 verified states (ND, SD, PA, NY, NJ, DE, GA, MI) plus Virginia if the tracker geolocates "Trump National Golf Club Washington DC" (physically in Sterling, VA) — i.e. 9, not 10. When my count of the resolver's own metric disagrees with the market's implied count, the honest conclusion is that I can't verify the resolver → reject.
6. Sources
- Kalshi read-only DB mirror (schema + market universe) and Kalshi public API v2 (live quotes, orderbooks, candlesticks, settled results): api.elections.kalshi.com
- IMF PortWatch daily chokepoint data (resolver feed, queried directly): portwatch.imf.org / ArcGIS Daily_Chokepoints_Data
- Argus Media, Jul 28: Hormuz transits still low despite pause in fighting (Jul 25–27 live counts; UKMTO/CENTCOM figures)
- straits.live Hormuz tracker (Jul 29 brief); JPost on Oman-brokered reopening talks; CBS live updates; CNN Business
- Senate Judiciary: Jul 30 EBM notice, Grassley Jul 23 release; Senate 2026 schedule; CNN on Cornyn holdout; The Hill Jul 29; PN1078; Roll Call on recess fight
- Approval aggregators: VoteHub API (38.7 on Jul 29); Mediaite (RCP 40.7, Jul 29); Wikipedia aggregate table; Economist/YouGov Jul 28; Rasmussen tracker
- Trump travel: Roll Call Factbase calendar; pool schedules via CDN Jul 29; state-visit citations per event (GPB, CBS Atlanta, Stars & Stripes Dover, PBS, NBC NY World Cup, McCormick release)
- UFC 330: UFC.com announcement; TKO release; attendance record via whitehouse.gov galleries, NPR on UFC Freedom 250
- Mamdani EOs: nyc.gov EO PDFs (eo-1…eo-19; eo-20 404 as of Jul 29), Jul 20 EO release
- Japan: Kantei July index; Takaichi Kumamoto remarks; CNN earthquake coverage
- Kash Patel: US News/Politico, MS NOW