---
title: "Polymarket Arbitrage: How It Works, Risks, and Examples"
dek: "Learn how Polymarket arbitrage works across YES/NO and Kalshi markets, including fees, slippage, contract risk, bots, and a live calculator."
description: "Learn how Polymarket arbitrage works across YES/NO and Kalshi markets, including fees, slippage, contract risk, bots, and a live calculator."
author: "Matthew Figula"
author_role: "Prediction-market trader"
date: 2026-08-07
updated: 2026-08-08
category: "Guide"
tags: ["Arbitrage", "Bots", "Tools", "Polymarket", "Kalshi", "Cross-venue", "Execution", "Fees", "Order book"]
reading_time_minutes: 14
canonical: https://www.kosmos.fyi/blog/polymarket-arbitrage
---

# Polymarket Arbitrage: How It Works, Risks, and Examples

*Learn how Polymarket arbitrage works across YES/NO and Kalshi markets, including fees, slippage, contract risk, bots, and a live calculator.*

Matthew Figula · Prediction-market trader · August 7, 2026 · Guide · 14 min read

**Polymarket arbitrage means combining two or more positions whose guaranteed payout is greater than their total all-in cost.** The simplest version is buying equal quantities of YES and NO for less than $1 after fees. A cross-platform version can appear when Polymarket and Kalshi price genuinely equivalent contracts differently.

The arithmetic is simple. The hard part is proving that the trade is actually locked. You must use executable bids and asks—not the large probability on the market card—and account for fees, depth, slippage, partial fills, contract wording, resolution rules, and the time your capital remains tied up.

> **The one-line test**: ==Guaranteed payout − entry cost − fees − slippage > 0.== If the final profit still depends on which outcome wins, the position may be +EV, but it is not pure arbitrage.

*This guide focuses on Polymarket International's CLOB and pUSD complete-set mechanics. Polymarket US is a separate product. Cross-venue examples apply only to traders eligible to use both venues.*

## What is Polymarket arbitrage?

A binary prediction-market share settles at $1 if its outcome is correct and $0 if it is wrong. Arbitrage uses that fixed payoff to build a complete hedge for less than the value it is guaranteed to return.

Imagine the executable asks are:

- YES: 46¢
- NO: 51¢

Buying 100 of each costs $97 before fees. Equal quantities of YES and NO form a complete set worth $100, so the gross spread is $3. Once both legs are filled, the event outcome no longer matters.

That last sentence is the key. Before both equal-sized legs fill, you have only an **arbitrage candidate**.

### Arbitrage versus positive expected value

| Trade | Outcome-independent profit? | Correct label |
| --- | ---: | --- |
| Equal YES and NO shares cost less than $1 all-in | Potentially | Same-market arbitrage |
| Polymarket YES plus equivalent Kalshi NO cost less than $1 all-in | Potentially | Cross-venue arbitrage |
| Your model says 70% while the market trades at 62% | No | Positive expected value |
| News has not reached the price yet | No | Information or latency trade |
| You post both sides to earn spread and rebates | No | Market making |

A model edge can be [more profitable than an arbitrage spread](/blog/positive-expected-value-prediction-markets), but it can still lose when the forecast is wrong. Pure arbitrage is narrower: the payoff must remain positive across every covered outcome.

### The three main structures

| Structure | Lock condition | Main failure mode |
| --- | --- | --- |
| **YES + NO complete set** | Equal quantities cost less than $1 after all costs | One leg fails or the net spread disappears |
| **Multi-outcome / negative risk** | A truly exhaustive basket costs less than its guaranteed value | “Other,” placeholders, or incomplete outcomes change the payoff map |
| **Polymarket–Kalshi** | Opposite contracts resolve identically and cost less than $1 all-in | Rule mismatch, partial fill, fees, or settlement divergence |

## Use executable prices, not headline odds

Polymarket normally displays the midpoint between the best bid and ask. A market can show 37% while the best bid is 34¢ and the best ask is 40¢. An immediate buyer pays 40¢, not 37¢.

Kalshi's API exposes YES and NO bids. The opposite ask is inferred from the binary relationship: a 26¢ NO bid implies a 74¢ YES ask. On both venues, the relevant price is the one you can actually execute at your intended size.

> **Core rule**: Calculate arbitrage from depth-weighted fills. Never use two headline probabilities, midpoints, or last-traded prices.

![Polymarket order book showing asks, bids, the last trade, and visible market depth](https://www.kosmos.fyi/blog/polymarket-arbitrage/polymarket-orderbook-example.webp)

*Polymarket's order book: the first ask is only the price of the first available shares — a larger order may fill across several worse levels. A locally hosted excerpt from [Polymarket's public market-making article](https://news.polymarket.com/p/automated-market-making-on-polymarket).*

![Recreated Kalshi order book example showing a 74 cent YES ask, a 71 cent YES bid, and a three cent spread](https://www.kosmos.fyi/blog/polymarket-arbitrage/kalshi-orderbook-official-example.webp)

*Kalshi's official example: a 74¢ YES ask against a 71¢ YES bid — a 3¢ spread before fees. A legibility-focused recreation of [Kalshi's official order-book example](https://help.kalshi.com/en/articles/13823828-the-orderbook), not a live market.*

## Strategy 1: Buy YES and NO for less than $1

Polymarket's outcome tokens are fully collateralized. Splitting $1 of pUSD creates one YES and one NO token; equal quantities can be merged back into $1 of pUSD. That identity creates the cleanest arbitrage test:

> **YES ask + NO ask + fees + slippage < $1**

Using the 46¢ YES and 51¢ NO example:

| Item | Per pair | 100 pairs |
| --- | ---: | ---: |
| YES cost | 46¢ | $46.00 |
| NO cost | 51¢ | $51.00 |
| **Gross entry** | **97¢** | **$97.00** |
| Complete-set value | $1.00 | $100.00 |
| **Gross spread** | **3¢** | **$3.00** |

For a fee-enabled politics market, Polymarket's current taker formula is `contracts × 0.04 × price × (1 − price)`. On 100 shares per side, the two fees total about $1.99, leaving roughly **$1.01 before slippage or any builder fee**.

The headline spread was 3¢. The realistic cushion was nearly 1¢. A one-cent move on one leg could erase it.

A same-market trade is mechanically complete only when:

1. Both legs fill.
2. The quantities are equal.
3. The fee-adjusted cost remains below $1.
4. The complete set can be merged or held to resolution.

## Strategy 2: Multi-outcome and negative-risk arbitrage

Multi-outcome events can also create complete-set opportunities. Suppose exactly one of four exhaustive outcomes can win:

| Outcome | Executable YES ask |
| --- | ---: |
| Candidate A | 22¢ |
| Candidate B | 31¢ |
| Candidate C | 27¢ |
| Other | 17¢ |
| **Total** | **97¢** |

One outcome should pay $1, leaving a 3¢ gross spread before fees.

Polymarket's negative-risk system makes these events more capital-efficient: one NO share in an outcome can be converted into one YES share in every other outcome.

| Metric | Value | Note |
| --- | --- | --- |
| Hold | 1 NO | Outcome A |
| Receive | 1 YES | Outcome B |
| Receive | 1 YES | Outcome C |
| Receive | 1 YES | every other outcome |

The danger is event structure. Augmented negative-risk markets may contain unnamed placeholders, while the definition of “Other” narrows as placeholders are assigned. Polymarket's own documentation advises trading only named outcomes and avoiding “Other” directly in those events.

Before treating a basket as complete, confirm that the outcomes are mutually exclusive, exhaustive, already named, and governed by one consistent resolution framework.

## Strategy 3: Arbitrage between Polymarket and Kalshi

Cross-venue arbitrage buys opposite outcomes on two exchanges. For example:

- Buy Polymarket YES at 42¢.
- Buy equivalent Kalshi NO at 53¢.
- Gross combined cost: 95¢.
- Guaranteed gross payout: $1.
- Gross spread: 5¢.

That five-cent gap is real only when:

1. Both contracts describe the same payoff in every relevant state.
2. Both orders fill for equal quantities.
3. Fees and slippage leave the combined cost below $1.
4. The trader is eligible and funded on both venues.

Cross-venue execution is not atomic. The Polymarket order might fill while Kalshi moves from 53¢ to 59¢. The intended 95¢ pair now costs $1.01 before fees, leaving an ordinary directional position rather than arbitrage.

This is why a screenshot or scanner result proves only that a gap was observed. It does not prove that equal size was executable on both venues at the same moment.

## Why Polymarket and Kalshi prices diverge

A cross-venue gap does not automatically mean one side is irrational. Prices can separate for several legitimate reasons:

- **Different traders.** The venues have [different user bases, capital, and category strengths](/blog/polymarket-vs-kalshi), so order flow does not arrive evenly.
- **Different liquidity.** One book may be deep and competitive while the other has only a few resting orders. A thin market can move several cents without new information.
- **Different reaction speed.** News or a large trade may reprice one venue first. The second venue can catch up—or reveal that the first move was temporary.
- **Different contracts.** A deadline, source, threshold, or cancellation rule can justify a persistent price difference.
- **Different costs and capital constraints.** Fees, funding rails, eligibility, and money already parked on each exchange affect who can close the gap.

The best opportunities are not simply the widest gaps. They are gaps where the contracts match, both books have real depth, and the difference remains positive after execution costs.

## The false-arbitrage test: do the contracts really match?

The most dangerous candidates are not wildly different markets. They are almost-identical markets.

Consider two apparently equivalent contracts on the same U.S. measles count:

- Contract A: YES on **more than 10,000** cases.
- Contract B: NO on **10,000 or more** cases.

Those positions are not complements. This is an illustrative wording example, not a live trade.

|  | Contract A | Contract B |
| --- | --- | --- |
| Threshold | `> 10,000` | `≥ 10,000` |
| YES requires | At least 10,001 cases | At least 10,000 cases |

> **If the official count is exactly 10,000**: Contract A YES loses—and Contract B NO also loses.

A title-matching algorithm can see the same event, threshold, country, and year while missing the one character that breaks the hedge.

### Contract-equivalence checklist

| Check | Questions to answer |
| --- | --- |
| **Outcome** | Does each possible real-world state produce opposite payouts? |
| **Threshold** | `>`, `≥`, exactly, touch, close, average, preliminary, or final? |
| **Deadline** | Same date, time, and time zone? |
| **Resolution source** | Same agency, league, court, publication, or data series? |
| **Revisions** | First release, final release, or later corrections? |
| **Edge cases** | Cancellation, postponement, recount, substitution, tie, or invalid market? |
| **Trading and settlement** | Same cutoff, and could one venue remain locked longer? |
| **Eligibility** | Can you lawfully and operationally use both venues? |

> **Do not ask whether the titles look equivalent. Ask whether every possible state produces the hedge you expect.**

## Fees, depth, and leg risk: what erases the spread

The gross gap is only the starting point.

### Fees

Polymarket currently charges takers on fee-enabled markets using:

> **Fee = contracts × fee rate × price × (1 − price)**

Current rates vary by category: 0.04 for finance and politics, 0.05 for sports and general categories, 0.07 for crypto, and zero for geopolitics. Makers pay no standard platform trading fee. The setting is market-specific, so a production system should query it rather than infer it from the label.

Kalshi's current general taker formula is:

> **Fee = round up(multiplier × 0.07 × contracts × price × (1 − price))**

Specific products can use a different multiplier or fee schedule. Check the fee shown for the exact order.

### Depth and slippage

An opportunity is sized by the number of profitable pairs available across the books—not by the first share at the best price. If 50 shares are offered at 42¢ and the next 500 are at 48¢, a scanner showing “42¢” materially overstates the trade for larger size.

The correct process [walks both books level by level](/blog/reading-the-book-not-the-last-print), matches equal quantities, applies fees to each fill price, and stops when the next marginal pair is no longer profitable.

### Partial fills and leg risk

The most common failure is one filled leg and one missing hedge. Other failure modes include:

- Equal prices but unequal available quantities.
- A marketable order sweeping through worse levels.
- A limit order protecting price but never filling.
- Insufficient settled balance on one venue.
- A pause or close between submissions.
- Reading a bid as an ask.

A serious execution plan sets a maximum combined price, monitors every partial fill, and defines in advance when to cancel, hedge, or unwind.

## Polymarket Arbitrage Calculator

The calculator below estimates the economics of two equal-sized legs using the current public fee formulas. It cannot verify contract equivalence, current depth, eligibility, or whether either order will fill.

> **Interactive tool**: the net arbitrage calculator — guaranteed payout − entry cost − fees − slippage — runs in the web version of this article.

For live use, replace manually entered prices with depth-weighted fills and query the exact fee parameters for both markets.

## Manual trading versus bots and scanners

Manual arbitrage is possible when the spread is large, the size is modest, and the contracts are simple. Keep both rule pages open, prefund both venues, use price-protected orders, and demand a larger safety margin because the second leg can move while you click.

Bots are better at monitoring many books, calculating fees consistently, and reacting to short-lived gaps. A serious scanner needs four layers:

1. **Discovery:** find possible same-event or complete-set candidates.
2. **Contract matching:** compare thresholds, dates, sources, revisions, and edge cases.
3. **Market data:** read live bids, asks, depth, and market-specific fees.
4. **Execution control:** size equal legs, enforce a maximum combined price, and manage partial fills.

The hardest problem is not speed. It is knowing whether the contracts actually match. A fast title matcher can automate the measles mistake above just as efficiently as it can find a real opportunity.

Treat scanners as candidate generators. Verification determines whether a candidate is a trade.

## How to verify a possible arbitrage in Kosmos

Kosmos is most useful between discovery and execution.

1. **Find the event across venues.** Group the related Polymarket and Kalshi markets around the same real-world question.
2. **Compare the executable market.** Check price, spread, touch depth, movement, and volume rather than only the headline percentage.
3. **Read both contracts.** Compare the threshold, deadline, source, cancellation language, and settlement process. The venue rules remain authoritative.
4. **Investigate and monitor.** Use matched news, related assets, market activity, and trader context to understand why the gap exists and watch both legs until completion.

> **Verify the market, not only the gap**: Compare Polymarket and Kalshi, inspect liquidity, read both contracts, and investigate why the prices differ before acting. **[Compare a live market in Kosmos →](https://app.kosmos.fyi/markets)**

## The seven-point go/no-go checklist

A candidate is worth considering only when every answer below is satisfactory:

1. **Payoff:** Do the contracts create opposite payouts in every relevant state?
2. **Price:** Are you using executable asks or bids, not midpoints?
3. **Quantity:** Can equal size fill on every leg?
4. **Costs:** Is the spread positive after platform fees, builder fees, and slippage?
5. **Depth:** Does the edge survive at the intended size?
6. **Execution:** Is there a clear maximum combined price and failed-leg plan?
7. **Settlement:** Is the return still attractive after considering lockup and resolution timing?

Failing one test does not always mean the underlying idea is bad. It means the position should not be described as locked arbitrage.

## Final takeaway

Polymarket arbitrage is not simply “one platform says 60% and another says 50%.” It is a complete payoff construction.

A real opportunity survives five tests:

1. The contracts are truly complementary.
2. Equal quantities are executable.
3. The spread remains positive after every cost.
4. Both legs can be completed without unacceptable exposure.
5. The settlement rules preserve the hedge.

A scanner finds the price difference. The order books, rule comparison, and execution plan determine whether it is actually arbitrage.

**[Research a live prediction market in Kosmos →](https://app.kosmos.fyi/markets)**

## Related Kosmos guides

- [Polymarket vs. Kalshi: fees, liquidity, odds, and markets](/blog/polymarket-vs-kalshi)
- [Positive expected value in prediction markets](/blog/positive-expected-value-prediction-markets)
- [How prediction-market order books work](/blog/reading-the-book-not-the-last-print)
- [How prediction markets resolve](/blog/how-a-contract-resolves)
- [Prediction markets vs. sports betting](/blog/prediction-markets-vs-sports-betting)
- [Best Polymarket analytics tools](/blog/best-polymarket-analytics-tools)

## Sources and methodology

Mechanics and fee schedules were reviewed on August 8, 2026. Prices in worked examples are illustrative unless explicitly labeled otherwise.

- [Polymarket: prices and order books](https://docs.polymarket.com/concepts/prices-orderbook)
- [Polymarket: positions, split, merge, and redeem](https://docs.polymarket.com/concepts/positions-tokens)
- [Polymarket: trading fees](https://docs.polymarket.com/trading/fees)
- [Polymarket: builder fees](https://docs.polymarket.com/builders/fees)
- [Polymarket: negative-risk markets](https://docs.polymarket.com/advanced/neg-risk)
- [Polymarket: market-making article used for the order-book excerpt](https://news.polymarket.com/p/automated-market-making-on-polymarket)
- [Kalshi: the order book](https://help.kalshi.com/en/articles/13823828-the-orderbook)
- [Kalshi: order-book API structure](https://docs.kalshi.com/getting_started/orderbook_responses)
- [Kalshi: fees overview](https://help.kalshi.com/en/articles/13823805-fees)
- [Kalshi: July 7, 2026 fee schedule](https://kalshi.com/docs/kalshi-fee-schedule.pdf)

> **Disclaimer**: This article is for education and market research, not financial advice. Prediction-market trading involves substantial risk, including the loss of the full amount paid. No scanner, calculator, platform, or AI agent can guarantee fills, identical settlement, or profitable outcomes.

## Frequently asked questions

### Is Polymarket arbitrage risk-free?

A completed same-market complete set can lock a mechanical payout when equal YES and NO quantities are acquired below $1 all-in and merged. Cross-venue trades still carry execution, contract-equivalence, venue, and settlement risk, so “risk-free” is too strong for most real-world setups.

### Can Polymarket YES and NO add to less than $1?

The best executable asks can briefly total less than $1 during fast repricing or thin liquidity. The opportunity is profitable only if equal quantities fill and the remaining gap exceeds fees and slippage.

### Can you arbitrage between Polymarket and Kalshi?

Yes, when opposite positions in genuinely equivalent contracts cost less than $1 all-in. Compare the complete rules, not only the titles, and remember that the two orders cannot usually be made atomic.

### What is negative-risk arbitrage on Polymarket?

Negative risk links mutually exclusive outcomes so one NO token can be converted into YES tokens in the other outcomes. It can create complete-set opportunities, but placeholders and a changing “Other” definition require special care.

### How do fees affect Polymarket arbitrage?

Fees reduce the gross gap and are highest near 50¢ under the current fee curves. Polymarket rates vary by category and market; Kalshi fees can vary by product and multiplier. Calculate the exact order, not a universal percentage.

### Can Polymarket arbitrage be done manually?

Yes, especially for larger spreads and smaller size. Manual traders should prefund both venues, verify rules first, use depth-aware prices, protect the maximum entry, and have an immediate failed-leg plan.

### Do Polymarket arbitrage bots work?

Bots can scan and calculate faster, but they do not eliminate rule mismatch, disappearing liquidity, partial fills, or resolution divergence. Safe contract matching is usually harder than the arithmetic.

### What is the difference between arbitrage and +EV?

Arbitrage seeks a positive payoff across every covered outcome. A +EV trade has a positive average forecasted return but can still lose when the event resolves against it.
