What a trade actually costs on a prediction market

Venues publish trading fees in four incompatible units, so 3.00% on one can be cheaper than 1.75% on another. How to convert them, and what else takes a cut.

Four different quantities are all published as a rate. Kalshi and Polymarket charge a coefficient on price times one minus price; Limitless charges a percentage of what the fill costs; ForecastEx charges a flat cent per contract from each side; PredictIt charges nothing on a fill and ten percent of profit. Convert every published figure to one measure, cost per dollar of payout, before you compare two venues.

Every venue in this catalogue publishes its trading fee, and most of them publish it as a percentage or a rate. Almost none of those numbers can be compared with each other, because a rate is meaningless without the quantity it is charged on, and this sector uses at least four different quantities without naming them in the headline.

The result is not a rounding difference. A published 3.00% on one venue is a smaller charge than a published 1.75% on another, on the same contract, in the same direction, at the same price.

How it works

A contract here pays $1.00 if it resolves your way and $0.00 if it does not, and it trades between $0.01 and $0.99. That gives four different things a fee can be charged on, and each one is in production use.

A coefficient on expected earnings

Kalshi's fee schedule is the clearest statement of this base that any venue publishes. It defines the fee as a variable percentage of the expected earnings on an individual contract, which it calculates by multiplying the maximum potential earnings from the contract by the implied probability of making them — the price of the contract divided by $1. The formula that follows is

fees = round up(0.07 x C x P x (1 - P))

with P the price in dollars and C the number of contracts. Expected earnings per contract are therefore P x (1 - P), which is one quarter of a dollar at 50 cents and shrinks towards nothing at both ends. The 0.07 is seven percent — of that. Against the $50 you hand over for 100 contracts at 50 cents, the $1.75 charged is 3.5%; against the $100 those contracts pay if they win, it is 1.75%.

Two consequences fall out of the shape, and both surprise people:

  • The charge is symmetric about 50 cents. A contract at 90 cents and a contract at 10 cents cost exactly the same to trade — 63 cents per 100 contracts on Kalshi's own table, at both prices. The fee follows uncertainty, not price.
  • It is at its worst on the coin flip. The maximum is at the midpoint, which is where the markets with the most volume tend to sit.

Four venues use this exact shape with different coefficients. Kalshi charges 0.07, and then multiplies it per series: its schedule lists named series carrying a multiplier of their own, and a number of those are set to zero, so a whole series trades free on both sides - KXBTCY, the end-of-year Bitcoin range, is one. The two equity-index series a reader is most likely to go looking for, the S&P 500 and Nasdaq yearly ranges, sit at the standard multiplier and are not discounted. Polymarket charges by market category: 0.07 on crypto, 0.05 on sports, economics, culture, weather and the general bucket, 0.04 on finance, politics, mentions and tech, and zero on geopolitics. Polymarket US runs one coefficient for the whole exchange, 0.0695 on the taker. Futuur charges 0.05 on every market it lists.

A percentage of what the fill costs

Limitless and Myriad publish percentages of the money that changes hands, which is the intuitive reading and the one that makes their numbers look large. Limitless charges a flat 0.40% on its AMM markets, and on the order book a curve that runs from 3.00% down to 0.40% on buys and peaks at 1.50% on sells. Myriad's order book has a peak rate of 1.5% at 50 cents that decays linearly to nothing at the extremes, and its AMM markets carry between 0% and 2% on a buy depending on the market.

There is a reliable tell for this base. Limitless holds 3.00% flat from a cent all the way to the midpoint. If that were 3% of the dollar a winning contract pays, a contract bought at one cent would carry a three-cent fee — three times its own price. It is not: it is 3% of the fill, so the charge on that contract is three hundredths of a cent. Any rate that would exceed the contract's own price somewhere on the curve is a rate on the fill value.

A flat amount per contract

ForecastEx charges $0.01 per contract, and its schedule says the fee is charged to both the Yes and the No side of each executed transaction and is independent of contract resolution, netting and settlement. Because the contract pays a dollar, a cent is exactly 1% of the payout — at one cent, at fifty, at ninety-nine. It is the only fee here with no curve at all.

The same unit turns up inside a brokerage stack. Robinhood Derivatives' fee schedule states that exchange fees on KalshiEX products routed through it are $0.01 per contract, per side — a flat cent standing in for the exchange's own curve.

A formula with a ceiling on top of it

Robinhood publishes the coefficient form and then caps it. Its fee schedule gives Total Commission = (k x p x (1 - p) x c) with k at 10% without a Gold subscription and 5% with one, rounded up to the cent; its help centre adds a maximum commission rate of $0.01 per contract. The cap is what makes the two tiers meet: 10% and 5% of expected earnings at 50 cents are 2.5 cents and 1.25 cents, both above the ceiling, so both are charged a cent. Robinhood's own table shows $1.00 per 100 contracts anywhere between 28 and 72 cents whether or not you pay for Gold. Away from the middle the constant starts to matter again — at 90 cents the same 100 contracts cost 45 cents with Gold and 90 without.

And one venue that charges on none of the above

PredictIt charges nothing on a fill in either direction. Its fee is 10% of profit, levied when you sell a share for more than you paid, with nothing charged on a flat or losing sale, plus 5% of every withdrawal. There is no per-contract number to convert, because the charge is not on the trade at all. It is not comparable to anything else in this list, and any table that puts a number in that cell has invented one.

Rounding is not a detail at the extremes

Kalshi's schedule says two different things here, and the difference is the entire charge on a small order. The gloss under the formula rounds up "such that the fee + positionCost is rounded to a centicent" — a hundredth of a cent. The worked table printed beside it rounds to the whole cent: 100 contracts at 1 cent are charged $0.07 where the raw figure is $0.0693. On a single contract at 1 cent the two readings give $0.0007 and $0.01, a factor of fourteen, and the document does not say which governs. Polymarket US uses banker's rounding to the nearest cent and says plainly that a small fill can round to zero. Polymarket rounds to five decimal places with a floor of 0.00001 USDC. Same family of formula, four different behaviours on a one-contract order.

What it costs

One contract, bought at 50 cents, taking liquidity. The last column is the charge as a percentage of the $1.00 a winning contract pays — the only column in which these venues can be read against each other.

That last column has a name in this catalogue, because every card carries it in a field rather than in prose: the effective fee at fifty cents, which is what economics.fees_taker and economics.fees_maker hold. No venue charges that rate; it is the conversion, and it exists so the column can be sorted.

Venue and casePublished figureCharged onPer contract% of payout
Kalshi, generalcoefficient 0.07expected earnings$0.01751.75%
Kalshi, a series whose multiplier is 0coefficient 0.07, multiplier 0expected earnings$00%
Polymarket, crypto0.07expected earnings$0.01751.75%
Polymarket, sports and general0.05expected earnings$0.01251.25%
Polymarket, politics and finance0.04expected earnings$0.01001.00%
Polymarket, geopolitics0$00%
Polymarket US, taker0.0695expected earnings$0.01741.74%
Polymarket US, maker−0.0125expected earnings−$0.0031−0.31%
Futuur0.05expected earnings$0.01251.25%
Limitless, order-book buy3.00%value of the fill$0.01501.50%
Limitless, order-book sell1.50%value of the fill$0.00750.75%
Limitless, AMM0.40%value of the fill$0.00200.20%
Myriad, order book1.5% peakvalue of the fill$0.00750.75%
Myriad, AMM buy0% to 2%value of the fill$0 to $0.01000% to 1.00%
ForecastEx$0.01 per contract, per sidethe contract$0.01001.00%
Robinhood, commission10% or 5%, capped at $0.01expected earnings$0.01001.00%
Robinhood, KalshiEX exchange fee$0.01 per contract, per sidethe contract$0.01001.00%
PredictIt10% of profit, 5% of withdrawalsrealised profitnothing on the fill

Read the first and the tenth rows together. Limitless publishes a number nearly twice the size of Kalshi's and charges about fourteen percent less for the same trade. Read the Robinhood rows together and the brokerage layer doubles: a cent of commission plus a cent of exchange fee is 2% of the payout on a contract that would have cost 1.75% on the exchange directly.

The ranking changes when you move off the midpoint

50 cents is the worst case for the coefficient venues and an ordinary day for the flat ones, so a single comparison point hides the crossover. At 5 cents, on 100 contracts:

VenueFee on 100 contracts at 5 cents% of payout
Kalshi, general$0.340.34%
Polymarket, politics and finance$0.190.19%
ForecastEx$1.001.00%
Limitless, order-book buy$0.150.15%

ForecastEx charged noticeably less than Kalshi at the midpoint and charges three times as much here. If you mostly trade long shots, the flat cent is the thing to avoid; if you mostly trade coin flips, it is one of the cheapest per-contract charges on the list. Nothing about either venue changed between the two tables except the price of the contract.

The same fee expressed as a share of your stake inverts it again

There is a fourth unit, and it is the one that comparison write-ups reach for most often: the fee as a percentage of the money you actually handed over. Futuur's figures make the point, because the formula is fixed and only the base moves. At 50 cents, $1.25 on $50 staked is 2.5%. At 10 cents, $0.45 on $10 staked is 4.5%. The absolute charge at 10 cents is barely a third of the charge at 50, and by this measure it looks nearly twice as expensive. Both statements are arithmetically correct and they point in opposite directions.

Worth being exact about this one: Futuur publishes the formula and a table of dollar amounts per 100 contracts, not percentages of stake. The 2.5% and 4.5% above are conversions, and so is every percent-of-stake figure you will see quoted for a coefficient venue.

And the fee is not the largest number on most fills

  • Price impact on an automated market maker. Futuur's own help centre says that where the order book is empty the automated market maker determines the price and charges a higher price the more you trade, to limit risk exposure. No venue publishes this as a rate, because it depends on the size of your order against the depth of that specific market. On a thin market it is routinely larger than the fee, and it is the cost that does not appear in any schedule.
  • Walking the book. The same help centre describes the order-book version: there is a limited number of contracts available at each price, and an order larger than that is filled by moving up to the next ask. Paying 53 cents on average for a contract quoted at 50 is a 3% cost, which is larger than every trading fee in the table above.
  • The maker side can be negative. Polymarket US pays the maker 0.0125 times the same quantity, credited at the point of the fill: 31 cents per 100 contracts at the midpoint. Myriad rebates 100% of the taker fee to makers at launch, Futuur rebates 80%, and Kalshi, Polymarket and Limitless simply do not charge makers on most markets. A resting order is a different product from a market order, priced differently, and comparing venues on the taker rate alone compares the halves that happen to be published.
  • Getting the money out. Kalshi's schedule makes ACH free in both directions, charges up to 2% on card deposits, and notes that wire withdrawals are not currently supported under $500,000. PredictIt takes 5% of the amount withdrawn, principal included, after a 30-day hold from your first deposit. Futuur has a per-currency withdrawal minimum and passes on the network fee. Myriad adds a flat $0.0085 per transaction to cover chain costs. Polymarket charges nothing to move USDC and says so, while noting that an on-ramp will charge its own.
  • Doing nothing has a price in one place. PredictIt's terms charge $2.00 per calendar month once an account has had no login for twelve consecutive months and still holds cash, until the balance is gone.
  • Who pays when you are wrong. ForecastEx charges its cent to both sides of every execution regardless of how the contract resolves, so the losing side pays. PredictIt charges only profitable sales. On the coefficient venues the taker pays at execution whichever side they took, and there is no separate settlement fee.

What you can do about it

The fee is the part that is published. On a thin market it is usually not the largest part — where the liquidity comes from covers the cost that does not appear in any schedule, and who decides the outcome covers the one that decides whether you are paid at all.

Work out which of the four bases your venue is using, before anything else. The question to ask of any published figure is what it gets multiplied by. If the documentation gives a formula containing price times one minus price, the figure is a coefficient on expected earnings and you get the per-contract cost by multiplying it by P x (1 - P). If the documentation gives a percentage and a table of trade values, it is a percentage of the fill and the per-contract cost is that percentage times the price. If it gives an amount in cents, it is already the answer. If it talks about profit or withdrawals, there is no per-fill cost to find.

Convert to one measure and use it consistently. This catalogue uses the cost of one contract at 50 cents, expressed as a percentage of the $1.00 a winning contract pays, and that is what the taker and maker fee fields on every card mean. Two honest limitations come with it. On the coefficient venues it is the peak of the curve — a trader who mostly buys at 10 or 90 cents pays roughly a third of it, so the number overstates their real cost. On ForecastEx, and on Robinhood inside the range where the cap binds, it is a plateau rather than a peak: 1% at 50 cents is also 1% at 5 cents, and the same figure that flatters the first group describes the second exactly. Comparing a peak with a plateau ranks correctly at one price and can rank backwards at any other, which is why the second table above exists.

Then read what was actually taken, on the fill. This is the only number that settles the question, and several venues hand it to you directly. Limitless returns effectiveFeeBps with usdFee or contractsFee on every order execution — its documentation says in as many words that the curve is not published as a closed-form formula and that you should read the applied rate off the response. Polymarket US returns the collected commission on the execution report. Kalshi and Polymarket show the fee in the order ticket before you confirm. Myriad's interface displays the fee for any market order and its API carries the schedule per market. If you are sizing a position where the fee matters, place one small order first and read the response.

Price the round trip, not the entry. Most of these charges apply again when you close, and Robinhood's help centre says explicitly that exchange fees apply to both opening and closing trades. A contract held to resolution pays once; a contract traded out of pays twice, plus the spread in between. Holding to settlement is a fee decision as much as a conviction one.

Ask the maker question before you decide the venue is expensive. If your orders can rest, the relevant number is the maker rate, and on Polymarket US it is negative. The taker figure every comparison quotes describes a trade you may not be making.

Check the version and the date, not just the number. Every figure on this page is tied to a specific document. Kalshi's schedule carries its own footer, last updated and effective 5 February 2026; the live PDF refused to serve to anything but a browser from here, so the copy read for this page was the Internet Archive's capture of 12 June 2026, which is byte-identical to the February captures. Polymarket US's schedule is dated effective from 17 September 2026 — two days before this page was written — and replaced a different structure. Robinhood's commission formula took effect on 1 June 2026 and replaced a flat rate, so any figure from before then is stale. ForecastEx's schedule prints no date at all; the PDF's embedded creation timestamp reads 2 March 2026, which matches the self-certification that moved the cent from an embedded charge at resolution to an explicit transaction fee at execution. Fee schedules in this sector are amended by notice, and a page like this one is a snapshot of documents, not a live feed.

For the venues themselves and what each one's fee field resolves to, the market data APIs section and the cards linked above carry the per-venue detail, each dated to the document it was read from.

Tools this bears on

Cards in the catalogue where what is above changes the decision.

  • Kalshi

    A CFTC-designated exchange for event contracts, settled in dollars against named sources.

  • Polymarket US

    Polymarket's CFTC-designated US exchange — dollars, KYC, and no on-chain oracle.

  • Limitless

    Event contracts on Base, collateralised in USDC, traded on a central limit order book.

  • ForecastEx

    Economic and climate contracts on a CFTC exchange that pays interest on your collateral.

  • Robinhood Prediction Markets

    Event contracts in the Robinhood app, routed to three exchanges — one of them its own JV.

    $5/mo

  • PredictIt

    Political event contracts under CFTC no-action relief, capped at $3,500 a contract.

FAQ

Is a 3% fee always worse than a 1.75% fee?

No, and this pair is the example. Limitless charges 3.00% of what an order-book buy costs, which at 50 cents is 1.5 cents on a contract that pays a dollar. Kalshi charges a 0.07 coefficient on price times one minus price, which at 50 cents is 1.75 cents on the same dollar. The larger published number is the smaller charge.

What does a fee coefficient of 0.07 mean?

Kalshi's schedule defines the base as the expected earnings on a contract — the maximum earnings multiplied by the implied probability of making them, which is price times one minus price. So 0.07 is seven percent of that quantity, not seven percent of the money you hand over. At 50 cents it works out to 1.75 cents a contract.

Which venue charges nothing when you are wrong?

PredictIt charges ten percent of profit on a profitable sale and nothing on a flat or losing one, but takes five percent of every withdrawal including principal. ForecastEx does the opposite, charging a cent to each side of every execution independent of resolution, so the losing side pays too.

Why does our catalogue quote one number when a venue publishes a curve?

Because a curve cannot be sorted. Every card's taker and maker fields carry the cost of one contract at 50 cents, as a percentage of the dollar a winning contract pays. It is the peak of the curve on the coefficient venues and a plateau on the flat-rate ones, which is the comparison's main limitation.

Sources

  1. Fee Schedule for July 2026 - 7.7.26 Update Kalshi,
  2. Fees Kalshi,
  3. Fees Polymarket, read
  4. Fee Schedule Polymarket US,
  5. Fees Limitless Exchange, read
  6. Order Book Myriad Markets, read
  7. AMM Myriad Markets, read
  8. Market Maker Rebate Futuur, read
  9. ForecastEx Fee Schedule ForecastEx, LLC, read
  10. Robinhood Derivatives Standard Pricing Fee Schedule Robinhood Derivatives, LLC,
  11. Event contracts overview Robinhood, read
  12. Frequently Asked Questions PredictIt, read
  13. Terms and Conditions PredictIt, read

The catalogue next door

This page is background, not a listing. The products it bears on are in Prediction Market Data APIs, each filled in against the same schema, with the fields to narrow it yourself.

Last updated . Corrected in place: this is a reference page, not a dated post.