Kelly Criterion Position Sizing for Polymarket Binary Markets
How to apply fractional Kelly sizing to Polymarket YES/NO positions when you have an edge over the implied probability, including adjustments for illiquidity, correlated bets, and uncertain edge estimates.
Polymarket is a parimutuel-adjacent binary market, not a limit-order book — which means standard equity position-sizing frameworks apply awkwardly at best. If you have a genuine probability edge over the market-implied price, Kelly gives you the mathematically optimal fraction of bankroll to deploy. The hard part is making Kelly safe to use in production without blowing up on the things Kelly ignores: illiquid fills, correlated exposure, and edge estimates that are wrong half the time.
The Kelly Formula in Binary Market Terms
For a binary YES/NO market, the Kelly fraction is:
f* = (p * b - (1 - p)) / b
Where p is your estimated true probability of YES, and b is the net odds per unit staked — i.e., (1 - market_price) / market_price for a YES purchase at market_price (denominated in USDC cents on the 0–1 scale).
Example: you estimate a 62% true probability on a YES contract priced at 0.55. Then b = 0.45 / 0.55 ≈ 0.818, and f* = (0.62 * 0.818 - 0.38) / 0.818 ≈ 0.155. Full Kelly says put 15.5% of your bankroll on this single bet. That number is almost certainly too large the moment you account for what can go wrong.
Why Full Kelly Will Eventually Ruin You Here
Kelly maximises long-run geometric growth but it's extremely sensitive to errors in p. On Polymarket, your edge estimate comes from a model — a polling aggregator, a sentiment signal, a calibrated LLM — and those models carry fat uncertainty bands. If your true probability is off by even 5–7 percentage points in the wrong direction, full Kelly can recommend negative-EV bet sizes.
The standard production answer is fractional Kelly: run at 25–33% of f*. At one-quarter Kelly you sacrifice roughly 6% of peak long-run growth rate but cut variance by 75%. For most discretionary or semi-automated strategies on Polymarket, this is the right default. We use quarter-Kelly as the floor and only move toward half-Kelly when a model has a validated out-of-sample track record of at least 200 resolved markets.
Illiquidity Adjustment
Polymarket order books on tail events or newly listed markets are thin. You will not fill f* * bankroll at the quoted price. The fill impact is nonlinear: a 50k USDC position on a market with 80k total liquidity will move the average fill price by 3–8 percentage points, which can erase your entire edge before settlement.
Practical fix: cap the position size at 2–5% of the market's available liquidity and recalculate Kelly at your expected fill price, not the mid. If the Kelly recommendation exceeds the liquidity cap, either accept a smaller position or skip the market. Our trading bot infrastructure enforces this cap automatically by querying the CLOB depth snapshot before order submission.
A secondary illiquidity problem is exit. Binary markets on Polymarket rarely allow clean exits at mid — if you need to reverse before resolution you will pay a wide spread twice. Model this as an additional drag on effective b when sizing the entry.
Correlated Bets and Portfolio Kelly
If you are running multiple concurrent positions — US election outcome markets, related sports props, macro-linked event markets — their outcomes are correlated. Running independent Kelly fractions on each ignores this and overstates diversification.
The correct framework is portfolio Kelly, which requires a correlation matrix across all open positions. In practice, a simplified but effective heuristic is:
- Group positions by underlying driver (e.g., all markets that move together if Candidate X wins)
- Treat the group as a single bet; allocate the group Kelly fraction first
- Distribute within the group proportionally to individual edge, never letting any single market exceed the group allocation
This prevents a scenario where three "independent" 15% Kelly bets are actually the same macro position three times over.
Handling Edge Uncertainty with Shrinkage
When you do not have a long track record on a specific market category, shrink your p estimate toward the market price before running Kelly. A pragmatic formula:
p_shrunk = alpha * p_model + (1 - alpha) * market_price
Set alpha = 0.5 for a new model with no category-specific validation. As validated resolved markets accumulate, increase alpha up to a ceiling of 0.85 — you never want to be 100% confident your model is right and the market is wrong. The resulting f* from p_shrunk is almost always substantially smaller than raw model Kelly, and this is the correct behavior: your bet should scale with your actual confidence, not your theoretical model output.
Practical Sizing Floor and Transaction Costs
Kelly can produce very small fractions — sometimes below 0.5% — when edge is thin. These are not worth executing once you factor in:
- Polymarket protocol fees (currently 2% of winnings)
- Gas costs for on-chain settlement if you are automating fills
- Operational overhead of monitoring small positions to resolution
Set a minimum position threshold — we use 50 USDC as an absolute floor and 1% of bankroll as a relative floor. If Kelly says bet less than both thresholds, pass. The long-run value of not trading is underrated.
If you want sizing logic like this running automatically across your Polymarket portfolio, get in touch — we build and operate the full stack.
Need a bot like this built?
We design, build and run trading bots on Solana, Hyperliquid and Polymarket.
Start a projectMore from the blog
Public vs Paid RPC: How to Run a Fair Benchmark
A fair comparison of public and paid RPC endpoints must account for quotas, workload, freshness and support guarantees.
Read articleRPC Benchmark Percentiles Explained: p50, p95 and p99
Why averages hide the latency spikes that break trading bots, wallets and production blockchain applications.
Read articleHyperliquid REST vs WebSocket Benchmark: What to Measure
A benchmark plan for Hyperliquid market data that separates request latency from streaming freshness and recovery.
Read article