Bond Accrued Interest Calculator (Clean and Dirty Price)
Interest a bond has earned since its last coupon, the full-coupon amount, and the dirty price a buyer actually pays on top of the quoted clean price.
Results
What this tool does
Bond prices are quoted without the interest that has built up since the last coupon, so that the quote does not jump every time a coupon is paid. A buyer pays that interest to the seller on top: dirty price = clean price + accrued interest. The accrual is the coupon times the fraction of the period elapsed, and the day-count convention (actual/actual, 30/360 and so on) decides how days are counted — enter the days exactly as your bond's convention counts them. The buyer gets the whole next coupon, which is why the accrued part is handed over.
Formula
accrued = coupon × days since last coupon ÷ days in period · dirty price = clean price + accrued
Variables
| Symbol | Meaning | Unit |
|---|---|---|
fv | Face (par) value of the bond | — |
cr | Annual coupon rate | % |
m | Coupon payments per year | — |
d | Days since the last coupon | d |
dp | Days in the whole coupon period | d |
pc | Quoted (clean) price, same units as the face value | — |
AI | Accrued interest | — |
DP | Price you actually pay (dirty price) | — |
CP | Full coupon payment | — |
AP | Accrued interest as a share of face value | % |
DN | Days until the next coupon | d |
Worked example
- Face (par) value of the bond1000
- Annual coupon rate5 %
- Coupon payments per year2
- Days since the last coupon60 d
- Days in the whole coupon period182 d
- Quoted (clean) price, same units as the face value985
- Accrued interest8.2418
- Price you actually pay (dirty price)993.2418
- Full coupon payment25.0000
- Accrued interest as a share of face value0.8242 %
- Days until the next coupon122 d
Limitations
- This is an informational calculator, not personalised financial advice. Rates, fees, taxes and contract conditions vary between institutions and countries.
- The default values are typical reference figures, not measurements of your situation. Replace them with your own data whenever you have it.