Decimal odds: how the multiplier and payout work
Contents

How the decimal odds multiplier works

The decimal number represents total return rather than profit alone. At 2.50, each unit of stake corresponds to 2.5 units returned in total. At 1.50, each unit corresponds to 1.5 units returned. The profit portion is whatever remains after the original stake has been removed.

Stake: 10
Decimal odds: 2.50

Total return = stake x decimal odds
Total return = 10 x 2.50
Total return = 25

Profit = total return - stake
Profit = 25 - 10
Profit = 15

This makes total-return calculations a single multiplication. The distinction between return and profit still matters in the UI, however. If a component is labelled “return”, displaying only 15 units in the example above would omit the original 10-unit stake and therefore show the wrong figure.

Why 1.00 is the decimal odds boundary

A decimal price of 1.00 represents a total return equal to the original stake, so the profit is zero. Under the normal decimal-odds convention, a valid betting price does not fall below 1.00, because a multiplier below one would represent a total return smaller than the amount staked.

For developers, this creates a useful validation rule. A price such as 1.50 is perfectly normal and represents a return of 1.5 times the stake. A price of 0.85, by contrast, should not be accepted as a conventional decimal betting price without first checking whether the source uses a different field convention.

This is also why a price does not need to be above 2.00 to be valid. 2.00 is simply even money in decimal format. Prices between 1.00 and 2.00 represent shorter prices where the profit is smaller than the original stake.

How decimal prices appear in our Odds API

Our Odd entity includes value, dp3, american and probability alongside identifiers such as fixture_id, market_id, bookmaker_id and label. Current documentation shows a Home selection with value: "1.48" and dp3: "1.480" on the same odds record.

For an application consuming our data, the important implementation rule is consistency. If calculations, comparisons or historical records use value, keep using value throughout that workflow. If the application standardises on dp3, use dp3 for both sides of the comparison. Do not mix one field for an opening snapshot and another for a later snapshot simply because both look like decimal prices.

The current documented example does not prove that dp3 always contains more underlying price information than value. In the example, 1.48 and 1.480 represent the same number. The safer interpretation is therefore that dp3 provides a fixed three-decimal representation, while value provides the standard decimal field returned on the odd object. The application can choose the representation appropriate for its own data model without assuming one necessarily contains hidden precision the other has lost.

Decimal odds and implied probability

Decimal odds can be converted directly into implied probability using:

implied probability = 1 / decimal odds

2.00:
1 / 2.00 = 0.50 = 50%

1.50:
1 / 1.50 = 0.6667 = 66.67%

2.50:
1 / 2.50 = 0.40 = 40%

Our odds objects already include a probability representation alongside the bookmaker price, so an application consuming our Odds API can use the returned percentage rather than recalculating it purely for display. The same percentage should still be treated as market-implied probability, not as the same thing as the probabilities generated by our Football Predictions API. Our Predictions API provides model-generated probabilities for football outcomes through dedicated prediction endpoints and fixture includes.

Keeping those two concepts separate in the data model prevents a bookmaker-derived percentage and a Sportmonks prediction from being stored under one ambiguous field name.

Converting decimal odds to American odds

When decimal prices need to be converted into American odds, the formula depends on which side of 2.00 the price sits.

Decimal odds >= 2.00

american = (decimal - 1) x 100

2.50:
american = (2.50 - 1) x 100
american = +150


Decimal odds < 2.00

american = -100 / (decimal - 1)

1.50:
american = -100 / 0.50
american = -200

The split exists because American odds use different positive and negative conventions around even money. When consuming our odds response, however, this conversion is generally unnecessary for display because the odd object already includes an american field alongside the decimal price.

That is a useful pattern for multi-format interfaces: keep the selection identity stable through fixture_id, market_id, bookmaker_id and label, then choose the returned price representation needed by the frontend rather than repeatedly converting formats yourself.

Common decimal odds implementation mistakes

One common problem is confusing total return with profit. Decimal odds already include the stake in the multiplier, so stake × odds gives the total return. Subtract the stake only when the UI specifically needs the profit amount.

Another issue is rejecting perfectly valid prices simply because they are below 2.00. Decimal odds such as 1.40, 1.65 or 1.90 are valid conventional prices. The meaningful lower boundary is 1.00, not 2.00.

A third mistake is mixing value and dp3 inside the same calculation or historical series. Even when the visible numbers are equivalent, a stable data pipeline should choose one field representation for that workflow and stick to it.

Finally, avoid converting between formats repeatedly if the API already returns the representation you need. Each extra conversion creates another place for rounding differences to appear without adding new information.

Building a decimal-odds interface with Sportmonks

A betting, odds-comparison or trading product can keep decimal prices as its internal or displayed representation while using the same fixture, market and bookmaker structure throughout the integration. Our Football Predictions API can then sit alongside the odds feed when the product also needs model-generated probabilities for fixture outcomes.

This separation is useful for builders because bookmaker prices and prediction probabilities remain related through the fixture without being treated as the same dataset. The frontend can show decimal odds, implied probability and model probability together while still preserving where each value came from.

Related reading

Integrating Odds Data: Using Sportmonks’ Odds API for Smarter Betting Apps covers how bookmaker, market and selection data fit into an odds-driven product. The article is currently live on our site.

How-to use the Sportmonks’ Football Predictions API explains how our model-generated probabilities can be requested and used alongside football and odds data.

The new way of AI football predictions provides another live walkthrough of working with our Predictions endpoints and fixture-level probability data.

Faqs

What does a decimal odds price of 2.50 actually pay out?
A 2.50 price returns 2.5 times your stake in total, including your original stake. A 10-unit stake returns 25 units total: 15 units of profit plus the 10-unit stake back.
What is the lowest possible decimal odds value?
1.00, which represents a stake returned with zero profit. Decimal odds cannot go below 1.00 for a genuine wager, since that would imply receiving back less than the stake.
Why does Sportmonks return both a value field and a dp3 field for decimal odds?
value gives a standard decimal price, while dp3 carries the same price to three decimal places. Applications tracking small price movements, such as for closing line value, should read dp3, since value's coarser rounding can hide movements that only appear at three decimal places.

Written by David Jaja

David Jaja is a technical content manager at Sportmonks, where he makes complex football data easier to understand for developers and businesses. With a background in frontend development and technical writing, he helps bridge the gap between technology and sports data. Through clear, insightful content, he ensures Sportmonks' APIs are accessible and easy to use, empowering developers to build standout football applications