Explainer
What is a basis point? Bps meaning, conversions and a calculator
Percent is ambiguous when the thing that moves is already a percentage. A 5.24% yield that rises 1% could end at 5.29% or at 6.24%; one that rises 100 basis points can only end at 6.24%.
On this page
Key takeaways
- A basis point is one hundredth of a percentage point: 1 bp = 0.01% = 0.0001, and 100 bps = 1 percentage point.
- To convert, divide basis points by 100 for percent and by 10,000 for a decimal: 25 bps = 0.25% = 0.0025.
- Markets quote rate moves in bps because "up 1%" is ambiguous for a rate: from 5.24%, a 1% relative rise ends at 5.29% and a 1 percentage point rise at 6.24%.
- On 1 October 2026 the US 2-year yield fell 10 bps and the 10-year 5 bps, while the French 10-year rose 15.2 bps and its spread over Germany widened by 13.2 bps.
- A 1 bp rise in yield takes about 0.077% off a 10-year bond priced at par with a 5.24% coupon, about $770 per $1 million: that figure is the bond’s DV01.
A basis point (bp, plural bps, often said "bips") is one hundredth of a percentage point: 0.01%, or 0.0001 as a decimal. One hundred basis points make one percentage point. When the US 10-year Treasury yield went from 5.29% to 5.24% on 1 October 2026, it fell 5 basis points.
Interest rates, bond yields, spreads between two rates, fund fees and central bank decisions are all quoted in basis points. This guide covers the conversions, why the unit exists, how to read bps in yields, quotes and fees, and the mistakes that show up in code. The calculator below does the arithmetic for any move.
Basis points to percent and decimal
percent = bps ÷ 100decimal = bps ÷ 10,000bps = percentage points × 100
- bps
- Basis points: the number of hundredths of a percentage point.
- percentage points
- The plain difference between two percentages: 5.24% minus 5.29% is −0.05 percentage points.
| Basis points | Percent | Decimal | On $1,000,000 |
|---|---|---|---|
| 1 | 0.01% | 0.0001 | $100 |
| 5 | 0.05% | 0.0005 | $500 |
| 10 | 0.10% | 0.0010 | $1,000 |
| 25 | 0.25% | 0.0025 | $2,500 |
| 50 | 0.50% | 0.0050 | $5,000 |
| 100 | 1.00% | 0.0100 | $10,000 |
| 250 | 2.50% | 0.0250 | $25,000 |
| 10,000 | 100% | 1 | $1,000,000 |
The only trap in the arithmetic is the decimal. A formula that multiplies by a rate wants 0.0025 for 25 bps, not 0.25 and not 25. Most basis point bugs are a factor of 100 in one direction or the other.
Why markets say basis points instead of percent
The unit exists to remove an ambiguity. When the thing that changes is itself a percentage, "up 1%" can describe two very different moves. Start from a 5.24% yield:
| Feature | New rate | What changed |
|---|---|---|
| Up 1% | 5.29% | The rate grew by 1% of itself: 5.24 × 1.01 |
| Up 1 percentage point | 6.24% | One whole point was added |
| Up 100 bps | 6.24% | The same move as one percentage point, with no ambiguity |
| Up 25 bps | 5.49% | A quarter of a point |
TickerLayer’s bond snapshot returns the move in all three forms, so code never has to guess which one a number is:
The US 10-year yield, as the API returns it
{
"symbol": "US:10Y",
"rate": 5.24,1
"unit": "percent",
"date": "2026-10-01",2
"timestamp": 1790812800000,
"prev_rate": 5.29,
"prev_date": "2026-09-30",
"change": -0.05,3
"change_bps": -5,4
"change_percent": -0.94525
}
rateThe yield in percent: 5.24 means 5.24%, not 0.0524.dateThe observation date. Yields are daily observations, not ticks.changeThe move in percentage points: 5.24 − 5.29 = −0.05.change_bpsThe same move in basis points: −0.05 × 100 = −5.change_percentThe relative move of the yield itself: −0.05 ÷ 5.29 = −0.95%. Rarely what you want for a rate.
change_percent is the field that bites. It answers a question nobody asks about a yield, and in a headline it would turn a 5 bps dip into a 0.95% slide. For rates, spreads and charts, use rate and change_bps.
Basis points in bond yields and spreads
Yields move in small steps, so bond desks talk in bps all day. These are the moves on 1 October 2026 across three government curves, from TickerLayer’s daily yield observations:
Daily change in yield, 1 October 2026
A spread between two yields is quoted in basis points too: subtract one yield from the other and multiply by 100. The same day steepened the US curve and pushed France further away from Germany:
- +46 bpsUS 2s10s, 10-year minus 2-year, from +41 the day before
- +107 bpsUS 3m10y, 10-year minus 3-month, from +109
- 128.3 bpsFrance minus Germany, 10-year, from 115.1
The yield curve inversion guide recorded 2s10s at +36 bps on 25 September. By 1 October it stood at +46: ten basis points of steepening in four sessions. Written as "0.10 percentage points" the same move sounds like a rounding error, which is why bond desks call it 10 bps.
What a basis point is worth: DV01
For a bondholder a basis point is money. A bond’s price falls when its yield rises, by roughly its modified duration times the change in yield. The value of a 1 bp move is called the DV01, the dollar value of an 01, or the price value of a basis point.
ΔP ÷ P ≈ −D × ΔyDV01 = D × P × 0.0001
- ΔP ÷ P
- Relative change in the bond’s price.
- D
- Modified duration in years: 7.71 for a 10-year bond priced at par with a 5.24% coupon paid twice a year.
- Δy
- Change in yield as a decimal: 25 bps is 0.0025.
- P
- Price or position value.
The formula is a straight-line approximation, and bond prices curve. For a 100 bps rise it predicts −7.71%, while repricing the same bond exactly gives −7.36%. The gap is convexity, and it is why risk systems reprice bonds rather than multiply for large moves. For a few basis points the shortcut is accurate to a rounding error.
Basis points in quotes, fees and loans
Outside bonds, basis points make different prices comparable. A spread or a fee written in bps costs the same fraction of a trade whether the instrument is priced at 1.12 or at 82,000.
- Bid-ask spreadsIn pre-market on 2 October 2026, US:KO quoted 86.25 bid and 86.35 ask: a 10-cent spread, or 11.6 bps of the mid. In regular hours one cent on the same price is 1.2 bps. More in bid-ask spread explained.
- Pips and bpsOne pip on EURUSD is 0.0001 in price, about 0.89 bps at 1.125. The 0.6-pip spread quoted the same morning was 0.53 bps. See what a pip is.
- Fund feesAn expense ratio of 0.03% is 3 bps: $300 a year on $1,000,000. The ETF vs index fund guide puts fees and spreads side by side.
- Central bank movesPolicy rates usually move in steps of 25 bps, sometimes 50 or more. "A quarter point" and "25 basis points" are the same move.
- Credit spreadsCorporate bonds are priced as a spread over government yields: +150 bps means 1.50 percentage points more yield than the matching government bond.
- LoansFloating-rate loans are quoted as a benchmark rate plus a margin in bps. "Plus 200" means two percentage points above the benchmark, wherever the benchmark goes.
Basis points in code
Keep rates in code as numbers in percent, the way the API returns them, and convert to bps only to show a move or a spread. The snapshot already carries change_bps; spreads you build yourself. This script prints the latest move for four tenors and two spreads. It needs pip install requests, a TICKERLAYER_API_KEY environment variable and the Bonds data add-on.
import os
import requests
BASE_URL = "https://api.tickerlayer.com"
HEADERS = {"x-api-key": os.environ["TICKERLAYER_API_KEY"]}
def snapshot(symbol):
resp = requests.get(f"{BASE_URL}/bond/snapshot/{symbol}", headers=HEADERS, timeout=10)
resp.raise_for_status()
return resp.json()
def spread_bps(long_leg, short_leg):
"""Long yield minus short yield in basis points, from observations of the same date."""
if long_leg["date"] != short_leg["date"]:
raise ValueError(f"dates differ: {long_leg['date']} and {short_leg['date']}")
return round((long_leg["rate"] - short_leg["rate"]) * 100, 1)
yields = {symbol: snapshot(symbol) for symbol in ["US:2Y", "US:10Y", "DE:10Y", "FR:10Y"]}
for symbol, snap in yields.items():
move = "n/a" if snap["change_bps"] is None else f"{snap['change_bps']:+.1f} bps"
print(f"{symbol:<7}{snap['rate']:>7.3f}% {move:>10} {snap['date']}")
print("US 2s10s ", spread_bps(yields["US:10Y"], yields["US:2Y"]), "bps")
print("FR-DE 10Y", spread_bps(yields["FR:10Y"], yields["DE:10Y"]), "bps")US:2Y 4.780% -10.0 bps 2026-10-01
US:10Y 5.240% -5.0 bps 2026-10-01
DE:10Y 3.620% +2.0 bps 2026-10-01
FR:10Y 4.903% +15.2 bps 2026-10-01
US 2s10s 46.0 bps
FR-DE 10Y 128.3 bpsTwo details in that script are deliberate. spread_bps refuses to subtract yields observed on different dates, because curves do not all publish at once: on the same morning the Spanish 10-year still showed 30 September while the US and German curves showed 1 October. And it rounds, because floating-point arithmetic does not do it for you:
Common basis point mistakes
- Dividing by 100 when the formula needs 10,000: 25 bps is 0.25 in percent but 0.0025 as a decimal
- Reading
change_percent(−0.95%) as if it werechange_bps(−5) - Comparing spreads in price units across instruments instead of in bps of the mid
- Building a spread from two observations with different dates
- Testing floating-point bps for equality without rounding
- Forgetting the direction: a yield that falls 5 bps belongs to a bond whose price rose
Questions
How much is 1 basis point?
One basis point is 0.01 percentage point, or 0.0001 as a decimal. On $1,000,000 it is $100; on $10,000 it is $1.
What does 25 basis points mean?
25 basis points is a quarter of a percentage point, 0.25%. When a central bank raises a 4.00% policy rate by 25 bps, the new rate is 4.25%.
How do you convert basis points to a percentage?
Divide by 100: 50 bps is 0.50% and 150 bps is 1.50%. To go the other way, multiply percentage points by 100, and to get a decimal for a formula, divide basis points by 10,000.
What does bps mean in finance?
Bps stands for basis points, hundredths of a percentage point. It is the standard unit for changes in interest rates and yields, for spreads between two rates or prices, and for fees and costs.
Is 100 basis points 1%?
Yes, 100 basis points equal one percentage point. Watch the wording, though: a rate that rises 100 bps from 4% ends at 5%, while a rate that rises 1% in relative terms ends at 4.04%.
Why are bond yields quoted in basis points?
Yields usually move by a few hundredths of a percentage point a day, and "up 0.05 percentage points" is clumsy and easy to confuse with a relative change. Basis points give whole numbers for small moves and remove the ambiguity.