Home/Fee Schedule

Kalshi & Polymarket Fee Schedule: Formulas, Rates & Free JSON Data

Reference sheet for both platforms: the exact fee formulas, every published rate and multiplier, primary sources, a dated changelog, and the same numbers as free JSON. Built to be cited.

Fee formulas

Kalshi

fee = round_up_to_cent( taker_multiplier x 0.07 x C x P x (1 - P) )fee = round_up_to_cent( maker_multiplier x 0.0175 x C x P x (1 - P) )

Polymarket

fee = C x feeRate x p x (1 - p)fee = 0
Base constantsKalshiPolymarket
Taker rate0.070–0.07 by category
Maker rate0.01750
Default multiplier (taker / maker)1 / 0—

Kalshi. C = number of contracts, P = contract price in dollars (0.01-0.99). Maker fee charged on: only series whose API fee_type is 'quadratic_with_maker_fees' (or the combo variant). On every other series resting orders pay no fee.

Polymarket. C = number of shares, p = share price in dollars (0-1), feeRate = the market's rate. Fees are rounded to 5 decimal places; the smallest fee charged is 0.00001 pUSD (Polymarket's USDC-backed trading dollar).

Kalshi rounding. Each fill's fee is rounded up to the next whole cent. The schedule's formula footnote says 'centicent', but the fee table printed in the same PDF uses whole cents (1 contract at 1c = $0.01, where the raw value is $0.000693), so whole-cent rounding is what the published numbers follow.

Polymarket rates by category

CategoryPublished taker rateMaker rateMaker rebateDeclared by live marketsVerified on-chain
Crypto0.07020%0.070.07 (2 fills)
Sports0.05015%0.05 / 0.030.05 (5 fills) / 0.03 (5 fills)
Economics0.05025%0.050.05 (4 fills)
Culture0.05025%0.050.05 (5 fills)
Weather0.05025%0.050.05 (2 fills)
Other / General0.05025%——
Politics0.04025%0.04 / 00.04 (5 fills) / 0 (4 fills)
Finance0.04025%0.040.04 (5 fills)
Tech0.04025%0.040.04 (5 fills)
Mentions0.04025%0.040.04 (2 fills)
Geopolitics00—00 (5 fills)

The table is the published per-category schedule. Polymarket sets the rate on each market (Gamma API: feeSchedule.rate, feesEnabled), so live markets can declare a rate that differs from their category's published one. The live_check block of fees.json lists, per category, the rates live markets declare and, separately, which of those were confirmed against fees actually deducted on-chain.

The last two columns are PolyKal's own daily check (last run 2026-10-12 08:36 UTC) and they are two different things. Declared by live markets is the rate the most-traded open markets in that category state in Polymarket's API. Verified on-chain lists only the declared rates we confirmed against money actually deducted: 49 real taker fills across 12 of 12 category/rate combinations were charged exactly what the rate implies. A dash means no sampled market fell in that category.

Kalshi rates and series multipliers

Taker fee = taker multiplier × 0.07 × C × P × (1 − P). Maker fee = maker multiplier × 0.0175 × C × P × (1 − P). The maker multiplier is 0 on every series except the ones listed here, so on most Kalshi markets a resting order pays nothing. Schedule effective 2026-07-07.

Series ticker(s)Taker multiplierMaker multiplier
Every series not listed below (default)10
KXAAAGASM, KXATPMATCH, KXBALLONDOR, KXBTCMAX150, KXCPI, KXCPIYOY, KXEGGS, KXEMMYCACTO, KXEMMYCACTR, KXEMMYCSERIES, KXEMMYDACTO, KXEMMYDACTR, KXEMMYDSERIES, KXFED, KXFEDDECISION, KXGDP, KXHEISMAN, KXINXY, KXIPO, KXLALIGA, KXLLM1, KXMARMAD, KXMENWORLDCUP, KXMLB, KXMLBAL, KXMLBASGAME, KXMLBGAME, KXMLBNL, KXNASDAQ100Y, KXNBA, KXNBAEAST, KXNBAMVP, KXNBAROY, KXNBAWEST, KXNCAAF, KXNCAAFACC, KXNCAAFB10, KXNCAAFB12, KXNCAAFGAME, KXNCAAFPLAYOFF, KXNCAAFSEC, KXNFLAFCCHAMP, KXNFLAFCEAST, KXNFLAFCNORTH, KXNFLAFCSOUTH, KXNFLAFCWEST, KXNFLCOTY, KXNFLCPOTY, KXNFLDPOTY, KXNFLDROTY, KXNFLGAME, KXNFLMVP, KXNFLNFCCHAMP, KXNFLNFCEAST, KXNFLNFCNORTH, KXNFLNFCSOUTH, KXNFLNFCWEST, KXNFLOPOTY, KXNFLOROTY, KXNHL, KXNHLEAST, KXNHLWEST, KXPAYROLLS, KXPGARYDER, KXPGASOLHEIM, KXPGATOUR, KXRATECUTCOUNT, KXSB, KXSUPERBOWLHEADLINE, KXU3, KXUCL, KXUCLGAME, KXWCGAME, KXWNBA, KXWNBAGAME, KXWTAMATCH11
KXBTCY, KXCITRINI, KXDOED, KXELECTIRAN, KXETHY, KXGAMBLINGREPEAL, KXGREENLAND, KXIRANDEMOCRACY, KXLAYOFFSYINFO, KXPAHLAVIHEAD00
KXMVE*12

Rows listed in the fee schedule's 'Non-Standard Fees' table. A ticker ending in * is a prefix. Any series not listed uses the default multipliers. Live value for any series: GET https://api.elections.kalshi.com/trade-api/v2/series/{series_ticker} (field fee_multiplier).

Known discrepancy. KXMLBGAME: the fee schedule lists taker multiplier 1, the series API returns 0.5 (noted 2026-09-12). PolyKal uses the live API value for taker fees and shows no maker figure for this series.

Free JSON data

The same numbers, machine-readable, at a stable address: https://polykal.net/data/fees.json. No key, no sign-up, CORS enabled (Access-Control-Allow-Origin: *), refreshed with every site build.

curl -s https://polykal.net/data/fees.json | jq '.platforms.kalshi.taker_rate'

const fees = await fetch("https://polykal.net/data/fees.json").then(r => r.json());
const rate = fees.platforms.polymarket.categories.sports.taker_rate;

Fields: platforms.kalshi (formulas, base rates, default and per-series multipliers), platforms.polymarket (formula, per-category rates, rebates), changelog, verified_on, source_urls, and live_check (daily: the rates live markets declare, and separately the ones verified against on-chain deductions, with the number of fills checked). Version 1.0.

Worked examples

Example 1 — Kalshi taker, standard series. 100 contracts at 50¢: 1 × 0.07 × 100 × 0.5 × (1 − 0.5) = $1.7500 → rounded up to the next cent = $1.75.
Example 2 — Kalshi maker, a series that charges maker fees (KXAAAGASM). A resting order for 100 contracts at 80¢ that gets filled: 1 × 0.0175 × 100 × 0.8 × (1 − 0.8) = $0.2800 → $0.28. On a series with the default maker multiplier 0 the same order pays $0.00.
Example 3 — Polymarket taker, Sports category at the published rate. 100 shares at 50¢: 100 × 0.05 × 0.5 × (1 − 0.5) = $1.25. The maker on the other side pays $0.00.

Need a specific trade? The fee calculator walks the live order book. New to this? Start with Kalshi fees explained or Polymarket fees explained.

Common questions

What are Kalshi's trading fees?

Kalshi charges takers a fee of 7% × price × (1 − price) per contract, rounded up to the next cent — at most 1.75¢ per contract, at the 50¢ price point. Makers pay nothing on standard series and 1.75% on the series Kalshi flags for maker fees. Verified against Kalshi's official fee schedule (effective 2026-07-07) on 2026-09-12.

What are Polymarket's fees?

Polymarket charges takers a fee set per market by category — from 7% on crypto markets down to 0% on geopolitics, with most categories at 4% or 5% — using the same size × rate × price × (1 − price) shape. Makers pay nothing. As of 2026-09-20.

Kalshi vs Polymarket: which is cheaper?

It depends on the market. On crypto markets the taker fee is identical (both 7%). On every other category Polymarket's taker rate is lower — about 29% lower on its 5% categories and 43% lower on politics — and Polymarket never charges makers, while Kalshi charges makers only on flagged series. Spread and depth often matter more than the fee, so compare the exact after-fee cost of a specific trade with the fee calculator. As of 2026-09-12.

How is the Kalshi fee calculated?

Fee = round up to the next cent of ( M × 0.07 × C × P × (1 − P) ), where C is the number of contracts, P is the price in dollars (0 to 1), and M is the series' fee multiplier (1 by default). Example: 100 contracts at 50¢ on a standard series = 0.07 × 100 × 0.50 × 0.50 = $1.75. Verified 2026-09-12.

Primary sources & verification

Last verified: 2026-09-12. Oldest of the per-platform verification dates: every number in this file was checked against its primary source on or after this date.

Kalshi — verified 2026-09-12. Multiplier table transcribed from the official fee schedule PDF and compared row by row; taker multipliers re-checked every day against Kalshi's series API.

Polymarket — verified 2026-09-20. Category table compared with docs.polymarket.com/trading/fees every day; per-market rates checked daily against the fee actually deducted on-chain in real taker fills.

Changelog

DatePlatformWhat changedSource
2026-09-21BothVersion 1.0 of this dataset published.source
2026-09-20PolymarketDocumented that rates are set per market: NFL and college-football game markets are charged 0% and season-long futures 3% while the published Sports rate is 5%. Confirmed against fees deducted on-chain. No change to the published category table.source
2026-09-12KalshiFull Non-Standard Fees table (87 rows) transcribed and checked against the PDF. Noted that KXMLBGAME is listed with taker multiplier 1 while the series API returns 0.5.source
2026-07-07KalshiFee schedule currently in force takes effect (the version this file transcribes).source

Every change to a rate in the data file requires a new entry here; the site build fails otherwise.

How to cite

Copy either line. Both link back to this page, which is all the licence asks for.

HTML
<a href="https://polykal.net/fee-schedule/">Kalshi &amp; Polymarket Fee Schedule</a> (PolyKal, verified 2026-09-12)
Markdown
[Kalshi & Polymarket Fee Schedule](https://polykal.net/fee-schedule/) (PolyKal, verified 2026-09-12)

Licence

The tables on this page and fees.json are free to use, copy and redistribute, including commercially, under Creative Commons Attribution 4.0 (CC-BY-4.0). The one condition: credit PolyKal (polykal.net) and link to https://polykal.net/fee-schedule/.

Independent tool. Not affiliated with, endorsed by, or operated by Polymarket or Kalshi. Data from public sources. Not financial advice.

Polymarket & Kalshi Fee CalculatorEnter a contract count and price to see each platform's exact trading fee, taker or maker, from its published fee formula. Open the calculator →
© 2026 PolyKal. All rights reserved.
About PolyKalWhere to use Polymarket & KalshiMidtermsLeaderboardTopicsPrivacyTerms
Fee Schedule
Kalshi & Polymarket Fee Schedule: Formulas, Rates & Free JSON Data

Reference sheet for both platforms: the exact fee formulas, every published rate and multiplier, primary sources, a dated changelog, and the same numbers as free JSON. Built to be cited.

Fee formulas

Kalshi

fee = round_up_to_cent( taker_multiplier x 0.07 x C x P x (1 - P) )fee = round_up_to_cent( maker_multiplier x 0.0175 x C x P x (1 - P) )

Polymarket

fee = C x feeRate x p x (1 - p)fee = 0
Base constantsKalshiPolymarket
Taker rate0.070–0.07 by category
Maker rate0.01750
Default multiplier (taker / maker)1 / 0—

Kalshi. C = number of contracts, P = contract price in dollars (0.01-0.99). Maker fee charged on: only series whose API fee_type is 'quadratic_with_maker_fees' (or the combo variant). On every other series resting orders pay no fee.

Polymarket. C = number of shares, p = share price in dollars (0-1), feeRate = the market's rate. Fees are rounded to 5 decimal places; the smallest fee charged is 0.00001 pUSD (Polymarket's USDC-backed trading dollar).

Kalshi rounding. Each fill's fee is rounded up to the next whole cent. The schedule's formula footnote says 'centicent', but the fee table printed in the same PDF uses whole cents (1 contract at 1c = $0.01, where the raw value is $0.000693), so whole-cent rounding is what the published numbers follow.

Polymarket rates by category

CategoryPublished taker rateMaker rateMaker rebateDeclared by live marketsVerified on-chain
Crypto0.07020%0.070.07 (2 fills)
Sports0.05015%0.05 / 0.030.05 (5 fills) / 0.03 (5 fills)
Economics0.05025%0.050.05 (4 fills)
Culture0.05025%0.050.05 (5 fills)
Weather0.05025%0.050.05 (2 fills)
Other / General0.05025%——
Politics0.04025%0.04 / 00.04 (5 fills) / 0 (4 fills)
Finance0.04025%0.040.04 (5 fills)
Tech0.04025%0.040.04 (5 fills)
Mentions0.04025%0.040.04 (2 fills)
Geopolitics00—00 (5 fills)

The table is the published per-category schedule. Polymarket sets the rate on each market (Gamma API: feeSchedule.rate, feesEnabled), so live markets can declare a rate that differs from their category's published one. The live_check block of fees.json lists, per category, the rates live markets declare and, separately, which of those were confirmed against fees actually deducted on-chain.

The last two columns are PolyKal's own daily check (last run 2026-10-12 08:36 UTC) and they are two different things. Declared by live markets is the rate the most-traded open markets in that category state in Polymarket's API. Verified on-chain lists only the declared rates we confirmed against money actually deducted: 49 real taker fills across 12 of 12 category/rate combinations were charged exactly what the rate implies. A dash means no sampled market fell in that category.

Kalshi rates and series multipliers

Taker fee = taker multiplier × 0.07 × C × P × (1 − P). Maker fee = maker multiplier × 0.0175 × C × P × (1 − P). The maker multiplier is 0 on every series except the ones listed here, so on most Kalshi markets a resting order pays nothing. Schedule effective 2026-07-07.

Series ticker(s)Taker multiplierMaker multiplier
Every series not listed below (default)10
KXAAAGASM, KXATPMATCH, KXBALLONDOR, KXBTCMAX150, KXCPI, KXCPIYOY, KXEGGS, KXEMMYCACTO, KXEMMYCACTR, KXEMMYCSERIES, KXEMMYDACTO, KXEMMYDACTR, KXEMMYDSERIES, KXFED, KXFEDDECISION, KXGDP, KXHEISMAN, KXINXY, KXIPO, KXLALIGA, KXLLM1, KXMARMAD, KXMENWORLDCUP, KXMLB, KXMLBAL, KXMLBASGAME, KXMLBGAME, KXMLBNL, KXNASDAQ100Y, KXNBA, KXNBAEAST, KXNBAMVP, KXNBAROY, KXNBAWEST, KXNCAAF, KXNCAAFACC, KXNCAAFB10, KXNCAAFB12, KXNCAAFGAME, KXNCAAFPLAYOFF, KXNCAAFSEC, KXNFLAFCCHAMP, KXNFLAFCEAST, KXNFLAFCNORTH, KXNFLAFCSOUTH, KXNFLAFCWEST, KXNFLCOTY, KXNFLCPOTY, KXNFLDPOTY, KXNFLDROTY, KXNFLGAME, KXNFLMVP, KXNFLNFCCHAMP, KXNFLNFCEAST, KXNFLNFCNORTH, KXNFLNFCSOUTH, KXNFLNFCWEST, KXNFLOPOTY, KXNFLOROTY, KXNHL, KXNHLEAST, KXNHLWEST, KXPAYROLLS, KXPGARYDER, KXPGASOLHEIM, KXPGATOUR, KXRATECUTCOUNT, KXSB, KXSUPERBOWLHEADLINE, KXU3, KXUCL, KXUCLGAME, KXWCGAME, KXWNBA, KXWNBAGAME, KXWTAMATCH11
KXBTCY, KXCITRINI, KXDOED, KXELECTIRAN, KXETHY, KXGAMBLINGREPEAL, KXGREENLAND, KXIRANDEMOCRACY, KXLAYOFFSYINFO, KXPAHLAVIHEAD00
KXMVE*12

Rows listed in the fee schedule's 'Non-Standard Fees' table. A ticker ending in * is a prefix. Any series not listed uses the default multipliers. Live value for any series: GET https://api.elections.kalshi.com/trade-api/v2/series/{series_ticker} (field fee_multiplier).

Known discrepancy. KXMLBGAME: the fee schedule lists taker multiplier 1, the series API returns 0.5 (noted 2026-09-12). PolyKal uses the live API value for taker fees and shows no maker figure for this series.

Free JSON data

The same numbers, machine-readable, at a stable address: https://polykal.net/data/fees.json. No key, no sign-up, CORS enabled (Access-Control-Allow-Origin: *), refreshed with every site build.

curl -s https://polykal.net/data/fees.json | jq '.platforms.kalshi.taker_rate'

const fees = await fetch("https://polykal.net/data/fees.json").then(r => r.json());
const rate = fees.platforms.polymarket.categories.sports.taker_rate;

Fields: platforms.kalshi (formulas, base rates, default and per-series multipliers), platforms.polymarket (formula, per-category rates, rebates), changelog, verified_on, source_urls, and live_check (daily: the rates live markets declare, and separately the ones verified against on-chain deductions, with the number of fills checked). Version 1.0.

Worked examples

Example 1 — Kalshi taker, standard series. 100 contracts at 50¢: 1 × 0.07 × 100 × 0.5 × (1 − 0.5) = $1.7500 → rounded up to the next cent = $1.75.
Example 2 — Kalshi maker, a series that charges maker fees (KXAAAGASM). A resting order for 100 contracts at 80¢ that gets filled: 1 × 0.0175 × 100 × 0.8 × (1 − 0.8) = $0.2800 → $0.28. On a series with the default maker multiplier 0 the same order pays $0.00.
Example 3 — Polymarket taker, Sports category at the published rate. 100 shares at 50¢: 100 × 0.05 × 0.5 × (1 − 0.5) = $1.25. The maker on the other side pays $0.00.

Need a specific trade? The fee calculator walks the live order book. New to this? Start with Kalshi fees explained or Polymarket fees explained.

Common questions

What are Kalshi's trading fees?

Kalshi charges takers a fee of 7% × price × (1 − price) per contract, rounded up to the next cent — at most 1.75¢ per contract, at the 50¢ price point. Makers pay nothing on standard series and 1.75% on the series Kalshi flags for maker fees. Verified against Kalshi's official fee schedule (effective 2026-07-07) on 2026-09-12.

What are Polymarket's fees?

Polymarket charges takers a fee set per market by category — from 7% on crypto markets down to 0% on geopolitics, with most categories at 4% or 5% — using the same size × rate × price × (1 − price) shape. Makers pay nothing. As of 2026-09-20.

Kalshi vs Polymarket: which is cheaper?

It depends on the market. On crypto markets the taker fee is identical (both 7%). On every other category Polymarket's taker rate is lower — about 29% lower on its 5% categories and 43% lower on politics — and Polymarket never charges makers, while Kalshi charges makers only on flagged series. Spread and depth often matter more than the fee, so compare the exact after-fee cost of a specific trade with the fee calculator. As of 2026-09-12.

How is the Kalshi fee calculated?

Fee = round up to the next cent of ( M × 0.07 × C × P × (1 − P) ), where C is the number of contracts, P is the price in dollars (0 to 1), and M is the series' fee multiplier (1 by default). Example: 100 contracts at 50¢ on a standard series = 0.07 × 100 × 0.50 × 0.50 = $1.75. Verified 2026-09-12.

Primary sources & verification

Last verified: 2026-09-12. Oldest of the per-platform verification dates: every number in this file was checked against its primary source on or after this date.

Kalshi — verified 2026-09-12. Multiplier table transcribed from the official fee schedule PDF and compared row by row; taker multipliers re-checked every day against Kalshi's series API.

Polymarket — verified 2026-09-20. Category table compared with docs.polymarket.com/trading/fees every day; per-market rates checked daily against the fee actually deducted on-chain in real taker fills.

Changelog

DatePlatformWhat changedSource
2026-09-21BothVersion 1.0 of this dataset published.source
2026-09-20PolymarketDocumented that rates are set per market: NFL and college-football game markets are charged 0% and season-long futures 3% while the published Sports rate is 5%. Confirmed against fees deducted on-chain. No change to the published category table.source
2026-09-12KalshiFull Non-Standard Fees table (87 rows) transcribed and checked against the PDF. Noted that KXMLBGAME is listed with taker multiplier 1 while the series API returns 0.5.source
2026-07-07KalshiFee schedule currently in force takes effect (the version this file transcribes).source

Every change to a rate in the data file requires a new entry here; the site build fails otherwise.

How to cite

Copy either line. Both link back to this page, which is all the licence asks for.

HTML
<a href="https://polykal.net/fee-schedule/">Kalshi &amp; Polymarket Fee Schedule</a> (PolyKal, verified 2026-09-12)
Markdown
[Kalshi & Polymarket Fee Schedule](https://polykal.net/fee-schedule/) (PolyKal, verified 2026-09-12)

Licence

The tables on this page and fees.json are free to use, copy and redistribute, including commercially, under Creative Commons Attribution 4.0 (CC-BY-4.0). The one condition: credit PolyKal (polykal.net) and link to https://polykal.net/fee-schedule/.

Independent tool. Not affiliated with, endorsed by, or operated by Polymarket or Kalshi. Data from public sources. Not financial advice.

About this data
Last verified
2026-09-12
Dataset version
1.0
Licence
CC-BY-4.0
Maintained by
PolyKal data engineering
Polymarket & Kalshi Fee CalculatorEnter a contract count and price to see each platform's exact trading fee, taker or maker, from its published fee formula.
Home Compare Topics Calculator
Data is based on publicly visible on-chain and trading activity across platforms. For research reference only — not investment advice. Past performance does not indicate future results.