Let's say an inflation bond has inflation adjusted coupons and nominal. With respect to dirty and clean price, is the accrued inflation of the nominal usually included in the clean quote? For example, this inflation indexed bond

Germany 0.10% inflation-linked Federal bond 2021 (2033), ISIN DE0001030583


is quoted without the nominal accrued inflation.

And could it be that there is a difference in quotation of government issued inflation bonds and corporate inflation bonds?


  • $\begingroup$ I don't know the answer for German bonds, but here's a detailed explanation for U.S.: seekingalpha.com/instablog/434935-south-gent/… - it may or may not work the same way. $\endgroup$ Jan 3 at 16:43
  • 1
    $\begingroup$ Since seekingalpha is paywalled, I'll comment further. I don't know about Germany/EUR. For USD-denominated bonds linked to US CPI, the daily CPI inflation factors can be found here: treasurydirect.gov/auctions/announcements-data-results/… think of the quoting convention as clean and denominated in inflation-adjusted USD. Inflation-linked bonds in Mexico (Udibonos) and Chile are also quoted clean in inflation-adjusted local currency. In contrast, in some other markets, e.g. Brazil NTN-B's and Israel, the price quote usually includes the inflation factor. $\endgroup$ Jan 3 at 19:09
  • $\begingroup$ thank you @DimitriVulis, this helps $\endgroup$
    – user34031
    Jan 4 at 7:02

1 Answer 1


Your URL provides the majority of the terms for these German linkers. I too had not come across them before but they seem identical to Canadian style (and now UK style) linkers with daily index interpolation and 3 month lag.

The link page gives (or implies) the following properties:

Clean price on 3rd Jan (settle 5th): 100.32 ytm: 0.07%
Indexed Dirty price for settle 5th: 119.23
Base index: 104.474748
Index Ratio for 5th Jan: 1.18764

Pricing this then results in applying the usual the usual bond formula to the un-indexed bond:

from rateslib import *

ibnd = IndexFixedRateBond(
    effective=dt(2021, 2, 11),
    front_stub=dt(2022, 4, 15),
    termination=dt(2033, 4, 15),
ibnd.ytm(price=100.32, settlement=dt(2024, 1, 5))  # 0.06538
ibnd.accrued(settlement=dt(2024, 1, 5))  # 0.07240

You can use this data to derive the indexed dirty price on the page of 119.23:

$$ Index \; dirty \; price = (Clean \; price + Accrued) \times Index \; ratio \\ 119.23 = (100.32 + 0.07240) \times 1.18764 $$

If you like you can consider this as 4 components:

Clean notional: 100.32
Clean accrued: 0.07240
Indexed notional: 18.82404    /* = 100.32*0.18764 */
Indexed accrued: 0.01359      /* = 0.07240*0.18764 */

Total: 119.230
  • $\begingroup$ I like to think of everything being denominated in "inflation-adjusted EUR" = Index Ratio on settlement date $\times$ EUR. $\endgroup$ Jan 4 at 13:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.