Photo: Daniel Brzdęk / Unsplash, used under the Unsplash License.
Kalshi's help center describes the order book as the available resting orders and their quantities at corresponding prices. A bid is the maximum price a buyer currently offers for that contract. An ask is the minimum price at which a seller currently offers it. The highest bid and lowest ask are the best visible prices for that side.
An event contract has complementary YES and NO positions. A YES bid at 42 cents is economically the same visible interest as a NO ask at 58 cents. A NO bid at 56 cents implies a YES ask at 44 cents. The two prices complement to $1 because the matched pair has one winning side at settlement.
That complement is central to reading Kalshi data. The web interface can toggle between bids and asks, while the current event-market API orderbook response returns arrays of YES bids and NO bids. The asks are implied rather than duplicated.
Suppose the book below is shown from the YES perspective. It is a made-up teaching example, not a live market quote.
The 44-cent YES ask is implied by a 56-cent NO bid. The quantity is the same order viewed from the complementary side.
The best visible buyer offers 42 cents for YES. The cheapest visible YES seller asks 44 cents. The spread is therefore 2 cents. A person who buys at 44 cents and immediately sells at 42 cents gives up the spread before any fee.
The quantity matters. There are only 200 contracts at the best ask. A request to buy 350 YES immediately cannot assume that all 350 fill at 44 cents. In this example, it would consume 200 at 44 cents, 80 at 45 cents and 70 at 46 cents, if those levels were still available and the order allowed those prices.
| Fill level | Contracts | Cost | Running contracts |
|---|---|---|---|
| 44¢ | 200 | $88.00 | 200 |
| 45¢ | 80 | $36.00 | 280 |
| 46¢ | 70 | $32.20 | 350 |
| Weighted average | 350 | $156.20 | 44.63¢ each |
The first displayed ask was 44 cents, but the weighted average is about 44.63 cents. That difference is depth-driven slippage. Our Kalshi slippage calculator reproduces this kind of multi-level estimate without using live quotes.
Reading both sides as separate independent markets causes avoidable mistakes. In the example, the API's highest NO bid is 56 cents. Subtracting it from $1 gives the 44-cent YES ask. If a 200-contract NO bid at 56 cents trades, the complementary execution is 200 YES contracts at 44 cents.
| API level | Complementary view | What it means for YES |
|---|---|---|
| YES bid 42¢, quantity 300 | NO ask 58¢, quantity 300 | Best visible immediate YES sale |
| NO bid 56¢, quantity 200 | YES ask 44¢, quantity 200 | Best visible immediate YES purchase |
| NO bid 55¢, quantity 80 | YES ask 45¢, quantity 80 | Next YES purchase level |
Kalshi's API documentation says its fixed-point arrays contain price and contract count strings and are sorted by ascending price, so the highest bid is the final element. Code should use the current orderbook_fp, yes_dollars and no_dollars fields documented by Kalshi rather than relying on older integer-cent examples.
For the example, the midpoint is 43 cents. No order is offered at 43 cents. Calling the market “43%” without mentioning the 42/44 spread and available size compresses distinct information into one number. Contract price is commonly interpreted as market-implied probability, but it is still a tradable quote, not certainty or a calibrated forecast guarantee.
Depth is the quantity displayed at the best level and farther from it. It answers a practical question: how much can an order plausibly execute before reaching another visible price, assuming the book does not change first?
Depth does not reveal conviction with certainty. A large bid can be canceled, filled, replaced, or outweighed by new orders. A one-sided book can reflect inventory management or a temporarily stale quote rather than new information about the event. Treat imbalance as a description of the current queue, not a prediction signal.
KalshiEX Rulebook v1.24 states that the central limit order book matches orders first by price and then by time at the same price. It also describes “or better” execution: a buy limit above available sell offers can fill against the better offers until the quantity is complete or no eligible level remains.
That creates three distinct outcomes:
A limit price is a boundary, not a promise of execution. A resting-order plan should specify whether a partial position is still useful and when an old order should be reviewed.
Kalshi's help center describes a quick order as a request to buy a quantity immediately at the best available prices. It prioritizes execution and can reach additional levels when the best one lacks size. A limit order sets the maximum purchase price or minimum sale price and can remain unfilled.
It shows resting orders and the quantity available at each price. The web interface can display bids or asks. Kalshi's event-market API returns YES and NO bid arrays, from which the complementary asks can be calculated.
Take one dollar minus the highest NO bid. If the best NO bid is 56 cents, the implied best YES ask is 44 cents. The same quantity appears on both complementary views.
For one side, the spread is the best ask minus the best bid. A best YES bid of 42 cents and an implied YES ask of 44 cents produce a 2-cent spread before fees.
No. It is visible resting interest at one moment, not a directional guarantee. Orders can fill, cancel, or be replaced, and size at one level says nothing by itself about the contract's settlement probability.
If the requested quantity is larger than the amount available at the best price, an immediately executable order can consume additional levels up to its limit. The weighted average fill can therefore be worse than the first displayed price.