Prediction Markets 101
What a prediction market is, what an outcome is, what a price means here, and how the venues differ.
A glossary for engineers landing in prediction markets for the first time. Skim it once, then come back when an unfamiliar term shows up. Every term is given in the words Synpath uses, so what you read here is what the API returns.
Core concepts
Prediction market
A market where the traded asset is a share in a possible future outcome. The share pays $1 if the outcome happens and $0 if it does not. A YES share on "Will the Fed cut rates in September?" pays $1 if the cut happens. Because the payout is fixed, the price you pay is the market's estimate of how likely the outcome is.
Event, market, side
Synpath's catalog is two levels deep, on every venue, and every market has two sides.
- An event is a real-world question with several possible answers: "Fed decision, September 2026".
- A market is one tradeable proposition inside the event: "Cut by 25bp", "No change", "Hike". One event has many markets. On Kalshi a market is identified by a ticker such as
KXFEDDECISION-26SEP-C25; on Polymarket by a condition id, a hex string. - A side is what you actually buy: YES or NO, held as
market.yesandmarket.nowith their own quotes. Polymarket calls these outcome tokens; Kalshi calls them the YES and NO side. A side has no id of its own: an order saysbuyfor YES orsellfor NO. Synpath resolves the two sides by position, not by label text, because some Kalshi markets label both sides identically.
market = synpath.exchange("kalshi").fetch_markets(query="fed", limit=1)[0]
market.id # "kalshi:KXFEDDECISION-26SEP-C25", the same shape on every venue
market.venue # "kalshi"
market.event_id # "kalshi:KXFEDDECISION-26SEP", the event this market belongs to
market.yes.quote.ask # what YES costs right now
market.no.quote.ask # what NO costsPrice as probability
Prices are in the interval 0 to 1 and read as the market's implied probability. A YES share at 0.31 pays $1 if YES resolves, so the market is saying roughly 31%. Kalshi displays prices in cents (31¢); Synpath returns them as fractions of a dollar on every venue, so 0.31 everywhere.
In a binary market the YES and NO prices sum to about 1. Buying NO at 0.69 is the same bet as selling YES at 0.31, and on Kalshi it is literally the same order: the venue quotes one leg and Synpath keeps the request as you wrote it.
Resolution and settlement
A market resolves when the question is answered, and settles when the venue pays out $1 per winning share. Who decides the answer, and from what source, is the settlement rule. Two venues can list the same question and settle it off different sources, so the settlement rule matters as much as the wording. Synpath carries the rule text in market.description and the arbiters in market.settlement_sources.
A market's lifecycle is the same four statuses on every venue, with the venue's own word kept beside it:
status | Meaning |
|---|---|
unopened | Listed, not yet accepting orders |
open | Trading. active says whether it is accepting orders right now |
closed | Trading has stopped; the outcome is not yet decided or paid |
settled | Resolved and paid out |
Orders
Limit order
You name a price and a size. The order rests on the book and fills only when someone crosses it. This is the native order type on every venue and the only one a venue truly holds.
Market order
You name a size and take whatever is resting, walking the book until filled. Kalshi has no native market order, so Synpath sends an immediate-or-cancel limit at the protection price you give: the worst price you will accept. A market order without one is refused before anything is signed.
Time in force
| Value | Meaning |
|---|---|
gtc | Good till cancelled. Rests until filled or you cancel it. |
ioc | Immediate or cancel. Fill what you can now, cancel the rest. |
fok | Fill or kill. Fill the whole order now or none of it. |
gtd | Good till date. Rests until expires_at. |
Maker and taker
A resting order that gets filled made liquidity; the order that crossed it took it. Venues charge the two sides differently, usually less or nothing for the maker.
Contracts, not dollars
Order size is a number of shares, which Kalshi calls contracts. Ten contracts at 0.31 cost $3.10 and pay $10 if they win. Polymarket sizes in shares too, with a per-market minimum that is usually five.
Fees
Fees are charged per trade, and they are large relative to the edges people look for. A cross-venue comparison that ignores them is wrong by more than most of those edges.
- Kalshi charges a quadratic taker fee:
0.07 × multiplier × contracts × p × (1 − p), rounded up to the cent per order. It peaks at 50¢ (1.75¢ per contract at the standard multiplier) and vanishes near 0 and 1. Makers pay nothing on most markets; a few series charge makers a quarter of the taker fee. The fee type and multiplier are published per series. - Polymarket charges a taker fee of the same shape,
rate × p × (1 − p), only on markets where fees are switched on, with the rate published per market. Makers are never charged, and a market with fees off publishes no schedule at all. - Polymarket US publishes fees per market.
Synpath reads the schedule before you trade and estimates the fee for a given price and size:
fee = kalshi.fetch_fee_schedule(market.id)
fee.estimate(price=0.50, contracts=100) # 1.75
fee.estimate(price=0.05, contracts=100) # 0.34, rounded up from 0.3325Volume, liquidity, open interest
- Volume: how much has traded, over 24 hours or all time.
- Liquidity: how much is resting on the book, a measure of how much you could trade without moving the price.
- Open interest: how many shares are outstanding, so how much money is riding on the outcome.
volume_unit, liquidity_unit), and a venue that published nothing gives None, not 0.Across venues
Matched markets
The same proposition listed on more than one venue. Titles differ, tickers differ, and sometimes the settlement rules differ too, so a match is a statement that the two markets pay out on the same thing. Synpath's Unified Market Research tool shows matched markets side by side with a verdict on the settlement rules.
Arbitrage
When YES on one venue and NO on the other together cost less than the $1 the pair pays out, after each venue's taker fee. Venues are separate pools of liquidity with separate participants, so their prices can differ. Edges are small and books are thin, so an estimate that leaves out fees or contract size is not a real edge.

