kalshi-yes-no-semantics draft

What Yes and No contracts mean on a Kalshi binary market, what each price represents, and why the two prices both exist

Tags
kalshi contracts binary-market probability fundamentals
Vocabulary
yes_contract
A claim that pays $1 if the market resolves Yes and $0 if it resolves No. Price is quoted in cents (0-100); the cent price is the implied probability of Yes-resolution treated as a fair price.
no_contract
The mirror — a claim that pays $1 if the market resolves No and $0 if it resolves Yes. Price in cents; implied probability of No-resolution.
cents_pricing
Kalshi's native price unit. A price of 65 cents means a $0.65 payment for a contract that pays out $1 on the right resolution. Equivalent to an implied probability of 0.65.
yes_designation
The per-market choice of which outcome is labelled 'Yes' and which is 'No'. Made by Kalshi when the market is created and varies market-by-market — it is NOT a fixed convention like 'home team is always Yes'.
complement_relation
On a single binary market, yes_price_dollars + no_price_dollars sum to $1.00 (per Kalshi's docs for matched fills). The cent prices on the order book do not sum to exactly 100 — the gap is the implicit cost of crossing the spread plus fees.
buy_no_vs_sell_yes
Two ways to take the same economic position. Buying No at X cents costs the same payoff structure as selling Yes at (100 - X) cents, modulo execution differences (maker/taker side, queue position, fee schedule).

A Kalshi binary market is two contracts trading on opposite sides of a yes/no question. Buying a Yes contract at X cents is a promise to pay X cents now in exchange for $1 if the market resolves Yes (and $0 if it resolves No). The No contract is the mirror — pay Y cents now, receive $1 if the market resolves No. Because the resolution is a single binary event, exactly one contract pays and exactly one expires worthless. The cent-denominated price is, by construction, the implied probability of the side it bets on, treated as if the price were fair.

The reason both prices exist on the book at the same time is that every trade has a counterparty: someone selling Yes at 47¢ is taking the same economic position as someone buying No at 53¢ (modulo fees and execution). Kalshi's order book matches both sides, so both Yes-side and No-side prices are quoted simultaneously and are visible to all participants.

For Mimir's purposes, the load-bearing facts are: (1) the Yes designation is set per-market by Kalshi and you cannot assume Yes = favorite or Yes = home team; (2) Yes and No prices in cents are implied probabilities of their respective outcomes; (3) buying the opposite side is equivalent to selling the same side, but execution costs may differ. Field-level details (which exact API field carries the price, fixed-point vs cents encoding, how SDKs rename fields) live in kalshi-mcp's annotations — fetch them via lookup_field(yes_price), lookup_field(no_price), and the _dollars variants.

Worked example

A Patriots-vs-Jets binary market on Kalshi, where the market is structured as "Will the Patriots win?" The Yes side bets on a Patriots win; the No side bets on the Patriots NOT winning (i.e. the Jets win or the game ends in a tie if ties are possible — for a moneyline market, a tie usually resolves No, but check the market's resolution criteria via kalshi-mcp__lookup_field for the specific market).

Order book quotes: - Yes: 47¢ (best ask), 46¢ (best bid) - No: 55¢ (best ask), 54¢ (best bid)

Reading these:

Notice 47 + 55 = 102, not 100. The 2-cent gap is the cost of crossing both sides at the ask — Kalshi's implicit "spread cost," which is structural (someone has to be on each side) plus the maker/taker fee model. It is not a bookmaker margin in the sense book-vig-overround describes, because Kalshi is an exchange — but for the purposes of devigging or comparing to sportsbooks, you still need to account for the gap. Compare the bids: 46 + 54 = 100 exactly (the bids are the prices someone has agreed to pay, and they sum to the complement). Per kalshi-mcp__lookup_field(yes_price_dollars), matched fills do sum to $1.00 — the 100¢ relationship holds at the trade level, not at the top-of-book quote level.

Now suppose you want to short the Patriots (i.e. take a position that pays if they lose). Two ways:

  1. Buy No at 55¢. Risk $0.55, win $0.45 if Jets win.
  2. Sell Yes at 46¢. Receive $0.46 now; if Patriots win, pay out $1 (net loss $0.54); if Patriots lose, keep the $0.46. Risk $0.54, win $0.46.

These are the same economic position only if you can sell at 46¢ and buy No at 55¢ for free — they're not, because of the spread. The two prices reflect the same underlying probability with the spread cost loaded onto whichever side you cross. The right choice depends on liquidity (which side has depth at a better price), fees (maker vs taker), and queue position. See kalshi-mcp__search_gotchas(price) for the fee-side details.

Gotchas

Open questions

Cross-references