Upgrade

The Hidden Costs That Kill 'Guaranteed' Arbitrage Profits: A Math-Driven Breakdown

Arbitrage—exploiting pricing differences between venues—is often called "risk-free profit." But in practice, the math is rarely so simple. Even when a pricing gap exists between a sportsbook and a prediction market like Kalshi or Polymarket, friction can eat up the edge. Fees, slippage, limits, and other costs can quietly turn a seemingly perfect opportunity into a break-even or losing trade.

In this article, we'll walk through a concrete, numbers-driven example of how these hidden costs impact real-world arbitrage opportunities. Along the way, we'll show how a market-data scanner like ArbMonster accounts for these costs—and why ignoring them can lead to disappointment.

A Simple Example: Arbitrage Between a Sportsbook and a Prediction Market

Suppose you notice the following odds on a simple "Yes/No" event:

  • Sportsbook: "Team A to win on Friday" at +120 (decimal odds 2.20)
  • Kalshi: "Team A to win on Friday" trading at 53c (i.e., 53% probability)

At first glance, this looks like an opportunity:

  • At the sportsbook, $100 on Team A returns $220 if they win (profit $120)
  • On Kalshi, buying "No" at 47c (if available), $100 buys 212 contracts ($100/0.47), each paying $1 if Team A loses

If you bet both sides in the right ratio, you seemingly lock in a profit regardless of the outcome. But is it really that simple? Let's dig in.

Step 1: Laying Out the Trade

Let's assume you can buy "No" on Kalshi at 47c per contract, and bet Team A at +120 at the sportsbook. Ignore fees for now.

  • If Team A wins:
    • Sportsbook: $100 bet returns $120 profit
    • Kalshi: Lose 212 contracts × $0.47 = -$99.64 (lose your stake)
    • Net: $120 - $99.64 = $20.36
  • If Team A loses:
    • Sportsbook: Lose $100
    • Kalshi: Each contract pays $1, so you collect $212
    • Net: $212 - $100 = $112

But wait: the stakes aren't matched. In the winning scenario, you profit $20.36; in the losing, $112. That's a clue you need to resize the bets so the payouts are balanced.

Balancing the Stakes

For a true arbitrage, you want equal profits regardless of outcome. Let:

  • $X = Sportsbook stake
  • $Y = Number of Kalshi "No" contracts at 47c each

Set the net profit equal for both outcomes:

  • If Team A wins:
    • Sportsbook: $X × 1.20 = $1.20X (profit is $0.20X)
    • Kalshi: Lose $Y × $0.47 = $0.47Y
    • Net: $0.20X - $0.47Y
  • If Team A loses:
    • Sportsbook: Lose $X
    • Kalshi: $Y
    • Net: $Y - $X

Set the net profit equal:

$0.20X - $0.47Y = Y - X

$0.20X + X = Y + 0.47Y
$1.20X = 1.47Y
X = (1.47/1.20)Y ≈ 1.225Y

So for every 1 contract on Kalshi, you bet $1.225 at the sportsbook. Now, choose a manageable number (say, $100 on Kalshi = 212 contracts), so $100 × 1.225 ≈ $122.50 at the sportsbook.

Check outcomes:

  • If Team A wins:
    • Sportsbook: $122.50 × 1.20 = $147.00 (profit $24.50)
    • Kalshi: Lose $100
    • Net: $24.50
  • If Team A loses:
    • Sportsbook: Lose $122.50
    • Kalshi: $212
    • Net: $212 - $122.50 = $89.50

Still not perfectly balanced, but for now, let's proceed—this is close enough to illustrate the point.

Step 2: Fees—The First Hidden Cost

Both venues charge fees. Let's break those down:

  • Sportsbook: No explicit commission, but the vig is already baked into the odds. (See our vig article).
  • Kalshi: Kalshi charges a taker fee of 7% × contracts × price × (1 − price), rounded up to the cent, per fill, on most series. Makers pay $0 on most series. Fees are charged on the trade when it fills—not on winnings. There are no deposit, withdrawal, or settlement fees.

Recalculate with Fees

  • If Team A wins:

    • Sportsbook: $24.50 profit
    • Kalshi: Lose $100 plus the taker fee (calculated at fill)
    • Net: $24.50 minus Kalshi fee
  • If Team A loses:

    • Sportsbook: Lose $122.50
    • Kalshi: $212 gross win, but the Kalshi taker fee was already paid on entry (not on winnings)
    • Net: $212 - $122.50 minus Kalshi fee

So your profit drops further after accounting for the Kalshi taker fee, which is charged on the trade, not on winnings. The fee is highest near 50c contracts and approaches zero near 1c or 99c.

But what if you want to exit before settlement? Suppose the market moves and you sell your Kalshi position for 48c. You would pay the taker fee again on the closing trade, as fees are charged per fill.

Step 3: Slippage—The Second Hidden Cost

Most venues show a top-of-book price, but the fillable size may be tiny. If you want to buy $500 worth of contracts on Kalshi, the price might move as you eat through the order book. Let's say:

  • First 100 contracts at 47c
  • Next 200 at 48c
  • Next 200 at 49c

Your average price is now higher than 47c. If you size your sportsbook bet to match, your edge shrinks or vanishes.

Suppose you buy 500 contracts:

  • 100 × 47c = $47
  • 200 × 48c = $96
  • 200 × 49c = $98
  • Total: $241 for 500 contracts (average price: $241/500 = 48.2c)

Now redo the math:

  • Sportsbook bet: 500 × 1.225 × $0.482 ≈ $295.13
  • If Team A loses: Kalshi win = $500 × $1 = $500
    • Kalshi taker fee was paid on entry (see above)
    • Sportsbook loss: $295.13
    • Net: $500 - $295.13 minus Kalshi fee
  • If Team A wins: Kalshi loss = $241
    • Sportsbook win: $295.13 × 1.20 = $354.16 (profit $59.03)
    • Net: $59.03 - $241 minus Kalshi fee

Now, instead of a locked-in profit, you have a scenario where you could lose money if Team A wins. Slippage has killed the apparent arbitrage.

Step 4: Withdrawal, Conversion, and Capital Costs

  • Withdrawal fees: Some sportsbooks charge for payouts; crypto markets like Polymarket may have network fees. Polymarket itself does not charge deposit or withdrawal fees, but on-ramps may.
  • Currency conversion: If one venue is in USD, another in crypto or another fiat, exchange rates and conversion spreads can sap additional points.
  • Capital lockup: Tying up funds for days/weeks may have an opportunity cost, especially if you could deploy that capital elsewhere.

Suppose a $20 withdrawal fee wipes out a small edge, or a 1% unfavorable currency conversion turns a profit into a loss.

Step 5: Limits, Partial Fills, and Human Error

  • Betting limits: Sportsbooks may restrict max bet sizes, especially if you show a pattern of arbing.
  • Partial fills: Order book venues like Kalshi and Polymarket may not fill your full order at the displayed price.
  • Fat-finger risk: Entering mismatched stakes or making a typo can ruin the math.

All of these add friction. It only takes one misstep for a theoretical profit to evaporate.

How ArbMonster Handles Hidden Costs

ArbMonster scans 20+ sportsbooks, Kalshi, and Polymarket live, and bakes in all known fees, slippage (to fillable size), and conversion costs. Opportunities shown are net of these frictions, so you can see which pricing gaps are real—and which are illusions. (See ArbMonster Learn for more on our methodology.)

But even the best scanner can't eliminate operational risks, withdrawal issues, or venue-specific surprises. Always verify details before acting.

Conclusion: The Math Is Relentless

Arbitrage is never as easy as "buy low, sell high." Every venue takes its cut, and the real world is full of small leaks—fees, slippage, limits, delays. An edge that looks irresistible in a spreadsheet may wither to nothing in execution.

The good news: careful, numerate analysis (and automated data tools) can help you spot the real opportunities—and avoid the mirage of "guaranteed" profit.


FAQ

Q: Can you really find arbitrage opportunities after all these costs?

A: Sometimes, yes—especially during market inefficiencies or when fresh lines are posted. But after all fees and frictions, most pricing gaps are too small to be actionable at meaningful size. Automation helps spot the rare genuine edge.

Q: How does ArbMonster account for slippage and fees?

A: ArbMonster scans live order books (Kalshi, Polymarket) and sportsbook APIs, factoring in all known fees (exchange, withdrawal, conversion) and only shows opportunities at fillable size, net of costs.

Q: What if a venue changes its fees or limits?

A: Always verify fee schedules and limits before trading; platforms may update terms without notice. ArbMonster updates its models regularly, but the final responsibility is yours.

ArbMonster is a data service. Nothing here is financial or betting advice; markets carry risk, venues have age and jurisdiction restrictions, and you are responsible for verifying everything before acting.

← all articles · Glossary · How we measure

The Hidden Costs That Kill 'Guaranteed' Arbitrage Profits: A Math-Driven Breakdown · ArbMonster