# Arbitrage Betting Calculator

> Sums the implied probabilities of the best decimal odds available on each outcome of a 2- or 3-way market, tests whether an arbitrage exists (sum below 100 %) and splits a total stake so that every outcome returns the same payout.

- Calculator id: `arbitrage-bet` · Category: Games & Betting Math (`gaming`) · Tool name: `calculate_arbitrage_bet`
- Canonical page: https://tttkmbb.com/gaming/arbitrage-bet · This document: https://tttkmbb.com/gaming/arbitrage-bet.md · JSON definition: https://tttkmbb.com/gaming/arbitrage-bet.json

## Purpose

Sums the implied probabilities of the best decimal odds available on each outcome of a 2- or 3-way market, tests whether an arbitrage exists (sum below 100 %) and splits a total stake so that every outcome returns the same payout.

**Use when:** You have the best price for each outcome of a market (from different bookmakers or an exchange) and want to know whether the prices overlap, how to split the stake, and the guaranteed return.

**Do not use when:** You already hold one bet and want to cover it (use hedge-bet), or the market has more than three outcomes. Mathematics only; not gambling advice: stake limits, voided bets and stake rounding can turn a paper arbitrage into a loss.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `decimal_odds` | number_list |  | required | The best decimal odds available for each outcome of the market (2 outcomes, or 3 for home/draw/away), each greater than 1. |
| `total_stake` | number |  | optional, default 1000 | Total amount to spread across the outcomes (any currency). (> 0, max 1000000000) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `arbitrage_percentage` | number | % | Σ 100/odds_i: the combined implied probability (market overround from the bettor's side). |
| `arbitrage_exists` | boolean |  | true when the arbitrage percentage is below 100 %. |
| `profit_percent` | number | % | (100 / arbitrage_percentage − 1) × 100; negative when no arbitrage exists. |
| `stakes` | number_list |  | total_stake × (1/odds_i) / Σ(1/odds), in the order of the input odds. |
| `guaranteed_payout` | number |  | Return whichever outcome wins: total_stake / Σ(1/odds) (the same for every outcome). |
| `guaranteed_profit` | number |  | guaranteed_payout − total_stake. |
| `implied_probabilities_percent` | number_list | % | 100/odds_i for each outcome. |

## Formula

`arbitrage_percentage = Σ (100 / odds_i); arbitrage_exists = arbitrage_percentage < 100; stake_i = total_stake × (1/odds_i) / Σ(1/odds); guaranteed_payout = total_stake / Σ(1/odds); guaranteed_profit = guaranteed_payout − total_stake; profit_percent = (100 / arbitrage_percentage − 1) × 100`

Dutching arithmetic: stakes proportional to each outcome's implied probability make every outcome pay the same amount. Exchange commission and stake rounding are not modelled. Probability mathematics only; not gambling advice.

## Data Sources

- Arbitrage betting (Wikipedia) — https://en.wikipedia.org/wiki/Arbitrage_betting (reference, retrieved 2026-09-24)
- Mathematics of bookmaking – overround and implied probability (Wikipedia) — https://en.wikipedia.org/wiki/Mathematics_of_bookmaking (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/arbitrage-bet?decimal_odds=…`
- `POST https://tttkmbb.com/api/v1/calculate/arbitrage-bet` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/arbitrage-bet · OpenAPI operationId `calculate_arbitrage_bet` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "arbitrage-bet", "inputs": {…}}`

## Example

- Two-way 2.10 and 2.05, total 1000: inputs `{"decimal_odds":[2.1,2.05],"total_stake":1000}` → `{"arbitrage_percentage":96.4,"arbitrage_exists":true,"profit_percent":3.73,"stakes":[493.98,506.02],"guaranteed_payout":1037.35,"guaranteed_profit":37.35}`
- Two-way 1.91 and 1.91 (no arbitrage): inputs `{"decimal_odds":[1.91,1.91],"total_stake":1000}` → `{"arbitrage_percentage":104.71,"arbitrage_exists":false,"profit_percent":-4.5,"stakes":[500,500],"guaranteed_payout":955,"guaranteed_profit":-45}`

```
GET https://tttkmbb.com/api/v1/calculate/arbitrage-bet?decimal_odds=2.1%2C2.05&total_stake=1000
```

## Limitations

You already hold one bet and want to cover it (use hedge-bet), or the market has more than three outcomes. Mathematics only; not gambling advice: stake limits, voided bets and stake rounding can turn a paper arbitrage into a loss. Dutching arithmetic: stakes proportional to each outcome's implied probability make every outcome pay the same amount. Exchange commission and stake rounding are not modelled. Probability mathematics only; not gambling advice. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Why do the stakes not add up to a round number per outcome?**

They are the exact proportional split; rounding each stake to whole units changes the payouts slightly, so recompute the payout of each outcome (stake × odds) after rounding.

**Does this include exchange commission?**

No. On a betting exchange reduce the net odds first, e.g. net = 1 + (odds − 1) × (1 − commission), then enter the net decimal odds.

## Related

- [Hedge Bet Calculator](https://tttkmbb.com/gaming/hedge-bet.md) — Cover a bet you already hold instead of staking all outcomes fresh.
- [Odds Converter](https://tttkmbb.com/gaming/odds-converter.md) — Convert each bookmaker's price to decimal odds.
- [Percentage Calculator](https://tttkmbb.com/math/percentage.md) — Percent arithmetic on the stake split.
