Fractional odds converter
Enter a fractional price and see its three other faces: 5/2 becomes decimal odds of 3.5, an implied chance of about 28.57% and 2.5 units of profit for every unit staked. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Numerator
- 5
- Denominator
- 2
- Fractional odds
- 5/2
- Decimal odds
- 3.5
- Implied probability
- 0.2857142857
- Implied probability percent
- 28.5714285714
Fractional odds such as five-to-two, written 5/2, are the classic British and Irish price format: the first number is the potential net profit and the second is the stake that earns that profit. This capability converts a pair of positive components into the three values people actually need next to a board price. Decimal odds equal the fraction plus one, so 5/2 becomes 3.5 and tells you the total return including the original stake. Implied probability is the reciprocal of those decimal odds, so a 5/2 price implies a two-sevenths chance before any market overround. Potential profit per unit stake is simply the fraction itself: stake one unit at 5/2 and a winning selection pays 2.5 units of profit.
What fractional odds mean and how the three outputs are built
Fractional odds n/d describe a simple bargain: if you stake the denominator, a winning selection pays the numerator as net profit and also returns the original stake. That is why even money is written 1/1 (stake one to win one), a strong favourite might be 1/4 (stake four to win one), and a longer price such as 5/2 or 11/4 pays more profit than the stake. The first derived figure is potential profit per unit stake, which is just the fraction n divided by d.
At 5/2 that profit is two and a half units for every one unit risked. The second figure is decimal odds, the European total-return quote: add the original unit of stake back to the unit profit, so decimal odds equal n/d plus one. The same 5/2 price is therefore 3.5 in decimal form, 1/1 is 2.0, and 1/4 is 1.25.
The third figure is implied probability, the chance a fair book would assign if this were the only price on the outcome: one divided by the decimal odds, which is also d divided by n plus d. For 5/2 that implied chance is two sevenths, about 28.57 percent; for even money it is one half; for 1/4 it is four fifths. None of these identities involve vig removal across a multi-way market, Monte Carlo sampling, or a live feed.
Textbook checkpoints you can use immediately are 5/2 → decimal 3.5, implied 2/7, profit 2.5; 1/1 → 2.0, 0.5, 1.0; and 1/4 → 1.25, 0.8, 0.25.
Where fractional-odds conversion is used, and what it is not
Price boards, classroom probability drills, and expected-value notebooks constantly jump between the three languages of a single quote. A UK-style 5/2 needs to become 3.5 before it can sit in a decimal-odds column, needs an implied probability before it can enter a log-loss or Brier check, and needs a unit profit before a spreadsheet can mark P and L per stake. Tutors use the same identities so students see why a shorter fraction is a larger implied chance, not a smaller one.
Under that reading, five to two would be five sevenths; under fractional betting odds 5/2 the implied chance is two sevenths. Those are opposite numbers and opposite search intents, so they stay on separate pages. It is also not a moneyline translator, a Dutching splitter, or a vig-adjusted multi-way implied-probability engine.
What you can do with it
Board prices to decimal columns
Turn UK and Irish fractional quotes such as 5/2 or 11/4 into decimal odds so models, tables, and APIs share one total-return scale.
Implied-probability homework and keys
Show students that 5/2 implies 2/7, even money implies one half, and 1/4 implies four fifths, with a deterministic oracle for answer keys.
FAQ
How do you convert fractional odds like 5/2 into decimal odds?
Divide the numerator by the denominator and add one. For 5/2 that is 5÷2+1 = 3.5, the total return per unit stake including the original stake.
What implied probability does a fractional price carry?
Implied probability is 1 divided by the decimal odds, which equals denominator / (numerator + denominator). 5/2 implies 2/7 (about 28.57%); 1/1 implies 50%; 1/4 implies 80%.
What is potential profit per unit stake?
It is the fraction itself: numerator ÷ denominator. Stake 1 at 5/2 and a win pays 2.5 units of net profit; the decimal figure 3.5 is that profit plus the returned stake.
What happens if either odds component is zero or negative?
Both numerator and denominator must be positive finite numbers, strictly greater than zero. Validation failures are not charged.
What does the fractional odds converter cost?
It is free in your browser on this page.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/stat/fractional-odds \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numerator":5,"denominator":2}'const res = await fetch("https://api.kit.forhosting.com/stat/fractional-odds", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numerator": 5,
"denominator": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/fractional-odds",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numerator": 5,
"denominator": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/fractional-odds", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numerator":5,"denominator":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numerator":5,"denominator":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/fractional-odds", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"numerator": 5,
"denominator": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.fractional_odds",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
min_component_exclusive | 0 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Send numerator and denominator as finite numbers strictly greater than zero; zero, negative, missing, infinite, or non-numeric parts fail with invalid_input rather than inventing a price. Successful API calls cost $0.002 per item; validation failures do not consume balance.
Input contract, response shape, and what counts as invalid
Each must be a finite number strictly greater than zero. Negative components are likewise rejected rather than silently taking an absolute value that would invent a different price. Send two required fields: numerator (aliases num and n) and denominator (aliases den and d). JSON numbers and trimmed decimal strings such as "5" or "2.5" are accepted; empty strings, bare signs, hex prefixes, Infinity, NaN, objects, and arrays are rejected. Zero is not a valid component: 0/2 would make implied probability 1 and profit 0, and 5/0 is undefined, so both sides of a zero fail with invalid_input that names the field and says it must be a positive number. On success the body echoes the cleaned numerator and denominator, a fractional_odds display string such as "5/2", decimal_odds as the total return per unit, implied_probability in the unit interval, implied_probability_percent as one hundred times that chance, profit_per_unit as net winnings per one unit staked, and a formula string restating the three identities. The same numerator, denominator pair always yields the same payload. Failed validation is not billed; a successful API conversion costs the published $0.002 per item.
Where fractional-odds conversion is used, and what it is not
Keep every component positive, treat decimal odds as total return rather than net profit, and feed implied_probability—not the percent field—into further math. On this page the conversion runs entirely in your browser; through the API each successful item costs $0.002 and nothing is stored after the response returns.
Integration use cases
Unit-stake profit fixtures
Generate reproducible profit-per-unit and decimal-return checkpoints for spreadsheets, tests, and desk calculators without hand arithmetic.