Bond Fundamentals and Pricing › Clean Price, Dirty Price, and Accrued Interest
Quantitative FinanceAll chapters Bond Fundamentals and Pricing › Clean Price, Dirty Price, and Accrued InterestOne section · Sections in this chapter7 / 14 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
In many conventional bond markets, the quoted clean price excludes accrued interest, while the full or dirty price includes it. Express both prices and accrued interest on the same face-value basis before adding them. Flat-trading, defaulted, and ex-coupon securities can follow different rules.
For a standard cum-coupon settlement, the buyer receives the upcoming coupon and compensates the seller for the accrued portion through the settlement price. Entitlement follows the security's record-date and ex-coupon rules, not simply ownership on payment day. Special settlement adjustments can apply when a trade falls between the record date and payment date.
For a regular fixed coupon period using the stated actual-days coupon-period fraction, accrued interest is calculated as:
where:
- : the full periodic coupon amount (e.g., )
- : calendar days from the last payment date to settlement
- : total days in the current coupon period
The fraction represents the portion of the coupon period that has elapsed. This is the seller's "fair share" of the upcoming coupon. If exactly half the period has elapsed, the seller is entitled to half the coupon.
The dirty price is then:
where:
- : the full bond price on the stated face-value basis, before transaction charges
- : the quoted market price (excludes accrued interest)
Many markets quote clean prices because dirty prices jump discontinuously at coupon payment dates. The clean price provides a smoother series that better reflects changes in interest rates and credit conditions rather than the mechanical passage of time through a coupon period.
def calculate_accrued_interest(
face_value,
coupon_rate,
days_since_coupon,
days_in_period,
payments_per_year=2,
):
"""Regular nonnegative fixed coupon, using the stated coupon-day ratio.
Apply actual contractual dates and ex-coupon rules outside this example.
"""
face, coupon_rate, _, frequency, _ = _regular_bond_inputs(
face_value, coupon_rate, 1, payments_per_year
)
elapsed = _finite_number(days_since_coupon, "days_since_coupon")
period = _finite_number(days_in_period, "days_in_period")
if period <= 0 or not 0 <= elapsed <= period:
raise ValueError("Require positive period days and 0 <= elapsed <= period")
return (face * coupon_rate / frequency) * (elapsed / period)
# Example: 6% coupon bond, 45 days into a 182-day period
face_value = 1000
coupon_rate = 0.06
days_since_coupon = 45
days_in_period = 182
accrued = calculate_accrued_interest(
face_value, coupon_rate, days_since_coupon, days_in_period
)
clean_price = 1025.50 # Quoted market price
dirty_price = clean_price + accruedBond Settlement Calculation ---------------------------------------- Clean Price (quoted): $1,025.50 Accrued Interest: $7.42 Dirty Price (paid): $1,032.92 Days since last coupon: 45 Days in coupon period: 182 Fraction of period: 24.73%
When the buyer receives the next coupon payment, it will compensate them for both the accrued interest they paid and the interest earned during the remaining portion of the period they held the bond.
