Educational guide. Trading can lose money, including the full amount you pay for a contract. DeskBot does not guarantee profits, returns, win rates or income. DeskBot is not affiliated with, endorsed by or a partner of Kalshi.
Short answer
On Kalshi, every market has two sides, Yes and No, and one contract of each always adds up to $1: the side that turns out right pays $1 and the other pays nothing. That makes buying No at 40¢ the same trade as selling Yes at 60¢. Both risk 40¢ to make 60¢ per contract, both pay the same fee, and both leave you with the same exposure. Kalshi's order book and its newer order API are built around this: the book lists only bids, and the V2 order endpoint quotes everything from the Yes side, where "ask" means sell Yes, which Kalshi describes as economically equivalent to buying No at 1 minus the price. This guide walks through what that means for prices, spreads, fees, break-even win rates and positions, with worked numbers.
Yes and No are two halves of one dollar
A Kalshi event contract is a binary. Take a 15-minute Bitcoin market (series KXBTC15M): Yes pays $1 if the settlement value is at or above the target, No pays $1 otherwise. Exactly one of them pays. So if Yes trades at 62¢, the market is pricing No at roughly 38¢, because 62 + 38 = 100.
That gives every trade two descriptions:
- Buy Yes at 62¢: you pay 62¢, you get $1 if Yes wins. Max loss 62¢, max gain 38¢.
- Sell No at 38¢: the same position seen from the other side. If you already hold No, selling it at 38¢ gives up a contract that would pay $1 if No wins.
- Buy No at 38¢: you pay 38¢, you get $1 if No wins. Max loss 38¢, max gain 62¢.
- Sell Yes at 62¢: economically the same exposure as buying No at 38¢.
"Bullish" and "bearish" on a Kalshi market are therefore just Yes and No. There is no separate short-selling step: if you think the event will not happen, you buy No.
Why the Kalshi order book shows only bids
If you pull a market's order book from Kalshi's API, you get two lists, Yes bids and No bids, and no asks. Kalshi's documentation explains why: a Yes bid at price X is the same thing as a No ask at $1.00 minus X, and a No bid at Y is the same thing as a Yes ask at $1.00 minus Y. Showing asks as well would only repeat the same orders.
So to find what you would actually pay, you flip the other side's best bid:
| Book shows | What it means |
|---|---|
| Best Yes bid 58¢ | You can sell Yes for 58¢, or buy No for 42¢ (100 − 58) |
| Best No bid 40¢ | You can sell No for 40¢, or buy Yes for 60¢ (100 − 40) |
| Yes spread | 60¢ ask − 58¢ bid = 2¢ |
| No spread | 42¢ ask − 40¢ bid = 2¢ |
The spread is the same 2¢ on both sides, because it is the same set of orders. A common mistake in homemade bots is to read the Yes bid as "the Yes price" and expect to buy there. You buy Yes at the implied ask (100 minus the best No bid), not at the Yes bid. Our guide to reading the Kalshi order book covers depth and levels in more detail.
How Kalshi's V2 order API expresses Yes and No
Kalshi's older order endpoint took a side (yes or no) and an action (buy or sell), so the same exposure could be sent four ways. Its newer Create Order (V2) endpoint, which Kalshi asks clients to migrate to, uses a single book quoted from the Yes leg. The order's side is bid or ask: in Kalshi's own description, bid means buy Yes and ask means sell Yes, and selling Yes is economically equivalent to buying No at 1 minus the price. Prices are fixed-point dollar strings such as "0.5600", and counts are strings such as "10.00".
In practice, for a bot written against V2:
- To take a Yes position at 60¢, send
side: bidat0.6000. - To take what you would call a "No at 40¢" position, send
side: askat0.6000. You are selling Yes at 60¢, which is buying No at 40¢. - To close a Yes position early, send
side: ask(sell Yes) at a price you accept.
The translation is the single most common source of bugs when moving a bot from the old endpoint to V2. A No order at 40¢ that is sent as an ask at 0.4000 instead of 0.6000 is a completely different trade. A bot should convert once, in one function, and log both the Yes-leg price it sent and the No-equivalent price a person would read on the app. See the Kalshi API Python tutorial and amending and cancelling orders for the request basics.
Positions: one signed number per market
Kalshi's Get Positions endpoint reports a market position as one number, where, in the docs' words, negative means No contracts and positive means Yes contracts. A position of 10 is 10 Yes; −10 is 10 No. It also reports exposure, realized profit and loss, and fees paid for that market.
Two consequences matter for anyone trading both sides:
- Buying the opposite side reduces what you hold. Because the position is one signed number, buying No while you hold Yes moves the number toward zero rather than creating a separate No holding. Always read the position back after a fill instead of assuming.
- "Hedging" inside one market mostly means closing. Holding 10 Yes and adding 10 No in the same market nets to zero exposure: a guaranteed $10 at settlement against what you paid for both, minus fees. The fees on the second leg are real money, so unwinding by selling the original side is usually the same economics described more simply.
More on reading balances and fills: Kalshi API balance, positions and fills.
Fees are the same on either side
Kalshi charges a fee on each fill, not on winnings. For taker orders on the crypto 15-minute series the formula is 0.07 × contracts × price × (1 − price), rounded up under Kalshi's fee rounding rules. Because price × (1 − price) is the same number whichever side you name, buying Yes at 60¢ and buying No at 40¢ pay the same fee:
| Trade (10 contracts) | Cost | Fee before rounding | Max gain | Max loss |
|---|---|---|---|---|
| Buy Yes at 60¢ | $6.00 | 0.07 × 10 × 0.60 × 0.40 = $0.168 | $4.00 | $6.00 |
| Buy No at 40¢ | $4.00 | 0.07 × 10 × 0.40 × 0.60 = $0.168 | $6.00 | $4.00 |
| Buy Yes at 90¢ | $9.00 | 0.07 × 10 × 0.90 × 0.10 = $0.063 | $1.00 | $9.00 |
| Buy No at 10¢ | $1.00 | 0.07 × 10 × 0.10 × 0.90 = $0.063 | $9.00 | $1.00 |
The fee is largest at 50¢ (1.75¢ per contract before rounding) and smallest near 1¢ or 99¢. As a share of what you pay, though, the cheap side of a lopsided market carries a much heavier fee: 0.63¢ on a 10¢ contract is 6.3% of the cost, while the same 0.63¢ on a 90¢ contract is 0.7%. Maker orders that rest on the book are charged differently on many series; see maker vs taker fees and the full Kalshi fees explainer.
Break-even win rate for each side
A held-to-settlement contract breaks even when your win rate equals the price you paid plus the fee per contract. Using the 10-contract example above (1.68¢ per contract):
- Buy Yes at 60¢: you need Yes to win about 61.7% of the time.
- Buy No at 40¢: you need No to win about 41.7% of the time.
Add those together and you get about 103.4%, not 100%. That gap is the cost of the spread and the fee on both sides, and it is why "just buy whichever side is cheap" does not work: both sides start behind. A rule only makes money if it picks the side that wins more often than its price implies, by more than the fee. The break-even win rate guide has a full table from 5¢ to 95¢, and the odds and expected value guide shows how to compare a price with a measured hit rate.
Closing early: sell your side or buy the other?
Say you bought 10 Yes at 60¢ and, with five minutes left, the book shows a best Yes bid of 70¢ and a best No bid of 28¢. You have two ways out:
- Sell Yes at the 70¢ bid. You collect $7.00 and pay a fee of about 0.07 × 10 × 0.70 × 0.30 = $0.147.
- Buy No at the implied ask. The best Yes bid of 70¢ is a No ask of 30¢. Buying 10 No at 30¢ costs $3.00 and nets your position to zero, so at settlement you receive $10 from whichever side wins: the same $7.00 net. The fee is the same formula on the same numbers.
Both routes hit the same resting order, because they are the same order viewed from two sides. Which button you press matters less than whether the price beats holding to settlement after the exit fee. Our guide to selling before settlement works through when an early exit costs more than it saves.
Common mistakes with Yes and No
- Reading the bid as the price you can buy at. You buy at the other side's best bid, flipped.
- Sending the No price into a Yes-quoted API. On V2, a No at 40¢ is an ask at 0.60.
- Treating the cheap side as low risk. A 10¢ No loses its whole cost far more often than it wins, and its fee is a larger share of the stake.
- Assuming two positions after buying the opposite side. The position is one signed number; check it after each fill.
- Comparing win rates across sides without the price. A 45% win rate is excellent at a 30¢ average entry and a loss at a 55¢ one.
How DeskBot handles Yes and No
DeskBot uses proprietary trading logic with customer-selected settings. Its dashboard shows supported market views and app activity. See the current product and support pages for the features and requirements of your release.
Is buying No the same as selling Yes on Kalshi?
Economically, yes. Buying No at 40¢ and selling Yes at 60¢ give the same maximum gain, maximum loss and fee. Kalshi's V2 order API states that selling Yes is equivalent to buying No at 1 minus the price.
Why does the Kalshi order book have no asks?
Because a Yes bid at X is a No ask at $1 minus X, and a No bid at Y is a Yes ask at $1 minus Y. The bids already describe every resting order.
How do I find the price to buy Yes?
Take the best No bid and subtract it from $1. If the best No bid is 40¢, you can buy Yes at 60¢.
Do Yes and No prices always add up to $1?
The payouts do: one side pays $1 and the other pays nothing. The best Yes bid plus the best No bid adds up to less than $1; the gap is the spread.
Is the fee different for Yes and No?
No. The taker fee depends on price × (1 − price), which is the same for Yes at 60¢ and No at 40¢. It is a much larger share of the cost on the cheap side.
Can I hold Yes and No in the same market?
Kalshi reports one signed position per market, positive for Yes and negative for No, so buying the opposite side reduces your existing position. Check your position after each fill.
Which side should a bot buy?
There is no side that wins by default. A rule needs a measured win rate above the price plus the fee for the side it buys, over at least 100 trades, before it is worth trusting.
Is DeskBot affiliated with Kalshi?
No. DeskBot is independent software that uses Kalshi's API with your own key. It is not affiliated with, endorsed by or a partner of Kalshi.
Trading can lose money. DeskBot does not guarantee profits, returns, win rates or income. Not affiliated with Kalshi. Order book and API behaviour quoted from Kalshi's documentation (Orderbook Responses, Get Positions, Create Order V2) on October 31, 2026; check kalshi.com for the current rules and fee schedule.
Current product information: Kalshi · Robinhood · Setup and support. Check the relevant product page for current downloads, pricing, renewal and cancellation terms. Desktop and mobile products have separate availability and offers.
Educational content, not financial advice. Trading can lose money. DeskBot does not guarantee profits, returns, win rates or income and is not affiliated with or endorsed by the named exchanges or brokers.
