← All guides

Educational content only. Not financial advice. Prediction markets carry risk.

How Bundle Arbitrage Works on Polymarket

A "bundle" on Polymarket is a YES share and a NO share of the same event. Together, they always resolve to exactly $1.00 — one of them pays out $1, the other $0. If you can buy both for less than $1.00 total, you have a guaranteed profit regardless of outcome.

The basic mechanic

Every binary prediction market has two sides: YES and NO. At settlement, one pays $1.00 and the other pays $0.00. The combined value of YES + NO is always exactly $1.00 at settlement.

Event: "Will the Fed cut rates in June?"

YES bid: $0.47

NO ask: $0.51

Bundle cost: $0.98

Guaranteed return at settlement: $1.00

Risk-free profit: $0.02 per bundle (2%)

Why these opportunities exist

Bundle arb opportunities arise from market inefficiency — specifically, the bid-ask spread and order book depth. When a large order moves the NO side up while the YES side hasn't adjusted, a temporary gap opens. On low-liquidity markets, these gaps can persist for hours.

They're more common on:

  • Low-volume markets (less arbitrage pressure)
  • Contracts near settlement (higher bid-ask spreads)
  • Volatile news events (rapid price moves create temporary gaps)

The risks

Bundle arb looks risk-free but has practical constraints:

  • Liquidity — the opportunity may not be fillable at the prices you see. Trying to fill a large position moves the price against you.
  • Settlement risk — Polymarket has settled contracts incorrectly in rare cases. "Guaranteed" is conditional on proper settlement.
  • Capital lock-up — your capital is locked until settlement, which may be months away.
  • Fees — Polymarket charges fees on trades that eat into small margins.

How to find them

Manually: browse Polymarket markets and calculate YES ask + NO ask for each contract. Any sum below $1.00 is a potential opportunity.

Programmatically: use Polymarket's Gamma API (gamma-api.polymarket.com, not the CLOB) to fetch market prices. The outcomePrices field returns a JSON-encoded string — double-parse it.

Why this scan is no longer sold

Edge Digest ran this scan weekly and charged for the results. Once fees and slippage were priced in, the surviving edge was close to zero, so the digest stopped and the subscription was closed. The method above still works — the margin is the problem, not the code.

Read the full post-mortem →

Educational research only. Not financial advice.