Files
polymarket-skills/polymarket-analyzer/references/fee-model.md
T
Polymarket Skills BuilderandClaude Opus 4.6 068b2adc75 Add 6 Polymarket trading skills with paper trading engine
Composable Agent Skills (SKILL.md format) for Polymarket prediction market
trading. Includes scanner, analyzer, monitor, paper trader, strategy advisor,
and live executor. All tested against live Polymarket APIs. Security audited
with all HIGH/MEDIUM findings resolved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 07:25:07 +00:00

102 lines
3.5 KiB
Markdown

# Polymarket Fee Model
## Overview
Most Polymarket markets are **fee-free**. Dynamic taker fees apply only to
short-duration crypto markets (5-minute and 15-minute expiry).
## Fee-Free Markets
The vast majority of markets on Polymarket -- political, sports, entertainment,
weather, and long-duration crypto markets -- charge **zero fees** for both makers
and takers. This makes arbitrage significantly more viable than on traditional
exchanges.
## Dynamic Taker Fees (Crypto Short-Duration Only)
For 5-minute and 15-minute crypto prediction markets, a dynamic taker fee applies:
```
feeQuote = baseRate * min(price, 1 - price) * size
```
Where:
- `baseRate` is set per market (typically 0.063 or 6.3%)
- `price` is the execution price (0 to 1)
- `size` is the number of shares
### Effective Fee Rate by Price
| Price | min(p, 1-p) | Effective Rate (baseRate=0.063) |
|-------|-------------|-------------------------------|
| 0.05 | 0.05 | 0.315% (0.063 * 0.05) |
| 0.10 | 0.10 | 0.630% |
| 0.20 | 0.20 | 1.260% |
| 0.30 | 0.30 | 1.890% |
| 0.40 | 0.40 | 2.520% |
| 0.50 | 0.50 | 3.150% (maximum) |
| 0.60 | 0.40 | 2.520% |
| 0.70 | 0.30 | 1.890% |
| 0.80 | 0.20 | 1.260% |
| 0.90 | 0.10 | 0.630% |
| 0.95 | 0.05 | 0.315% |
The fee is **parabolic**, peaking at p=0.50 and dropping sharply near the extremes.
This was explicitly designed to kill latency arbitrage on these fast markets.
### Fee Calculator
```python
def calculate_fee(price: float, size: float, base_rate: float = 0.063) -> dict:
"""Calculate dynamic taker fee for crypto short-duration markets."""
fee_rate = base_rate * min(price, 1 - price)
fee_amount = fee_rate * size
cost_basis = price * size
total_cost = cost_basis + fee_amount
effective_rate = fee_amount / cost_basis if cost_basis > 0 else 0
return {
"fee_rate": fee_rate,
"fee_amount": fee_amount,
"cost_basis": cost_basis,
"total_cost": total_cost,
"effective_rate_pct": effective_rate * 100,
}
```
### Breakeven Analysis for Arbitrage
For an arbitrage trade buying both YES and NO:
```python
def arbitrage_breakeven(yes_price, no_price, base_rate=0.063):
"""Calculate if arb is profitable after fees on fee-bearing markets."""
raw_sum = yes_price + no_price
raw_edge = 1.0 - raw_sum # Positive = underpriced
yes_fee = base_rate * min(yes_price, 1 - yes_price)
no_fee = base_rate * min(no_price, 1 - no_price)
total_fee_rate = yes_fee + no_fee
net_profit_per_share = raw_edge - total_fee_rate
return {
"raw_edge": raw_edge,
"total_fee_rate": total_fee_rate,
"net_profit_per_share": net_profit_per_share,
"profitable": net_profit_per_share > 0,
}
```
## Maker Rebates
Post-only limit orders (introduced January 2026) receive maker rebates on
qualifying markets. This creates a structural advantage for market-making
strategies that provide liquidity.
## Practical Implications
1. **Fee-free markets**: Arbitrage edges as small as $0.01 are worth capturing
2. **Fee-bearing markets**: Need at least 3-6% raw edge at mid-prices to break even
3. **Extreme prices** (< 0.10 or > 0.90): Fees are minimal even on fee-bearing markets
4. **Market making**: Maker rebates make spread-capture profitable on thin books