Bond Pricing, Yield and Duration for the CTP Exam
One bond, priced and measured by hand on the basic calculator the exam allows. Every step shown.
A bond's price is the present value of all its remaining cash flows, discounted at its yield to maturity (YTM). That one idea drives every calculation in this part of the Certified Treasury Professional (CTP) syllabus: price, yield, accrued interest, duration, PV01 and convexity. Price and yield move in opposite directions. When yields rise, prices fall.
Module III asks for these as worked problems, and the online exam allows only a basic calculator of up to 8 functions and 12 digits. Scientific and financial calculators are not allowed. So this page does every example by hand, with the steps you can repeat on that calculator.
You save ₹250
- Full-length mocks
- Chapter-wise practice
- Calculation practice
One payment, no subscription · Valid for 1 month
The Terms You Need
- Coupon yield
- Annual coupon as a percentage of face value. An 8.24% bond pays ₹8.24 a year per ₹100, so its coupon yield is 8.24% whatever its price.
- Current yield
- Annual coupon divided by the purchase price. RBI's example: 8.24 / 103 x 100 = 8.00%. It ignores capital gain or loss and reinvestment.
- Yield to maturity (YTM)
- The single discount rate that makes the present value of all future cash flows equal to today's price. It is the bond's internal rate of return if held to maturity.
- Clean price
- The quoted price, without accrued interest.
- Dirty price
- Clean price plus accrued interest. This is what the buyer actually pays per ₹100.
- Macaulay duration
- The weighted average time, in years, to receive the bond's cash flows in present value terms.
- Modified duration
- Macaulay duration divided by (1 + y/2) for a semi-annual bond. It is roughly the percentage price change for a 1% change in yield.
- PV01
- The change in price, in rupees, for a 1 basis point (0.01%) change in yield.
Worked Example 1: Pricing a Semi-Annual G-Sec
Illustrative bond: face value ₹100, coupon 7.00% paid half-yearly, 2 years to maturity, YTM 7.50%. Indian G-Secs pay coupons half-yearly, so each period is 6 months.
- 1
Set up the cash flows
Half-yearly coupon = 7.00 / 2 = ₹3.50. Four periods: ₹3.50, ₹3.50, ₹3.50 and ₹103.50 (last coupon plus principal).
- 2
Find the per-period rate
7.50% / 2 = 3.75% per half year, so each period's discount factor is 1 / 1.0375 raised to the period number.
- 3
Discount each flow
3.50 / 1.0375 = 3.3735. 3.50 / 1.0375² = 3.2516. 3.50 / 1.0375³ = 3.1340. 103.50 / 1.0375⁴ = 89.3281. On a basic calculator, divide by 1.0375 repeatedly rather than using powers.
- 4
Add them up
Price = 3.3735 + 3.2516 + 3.1340 + 89.3281 = ₹99.0872. The bond trades below par because its YTM (7.50%) is above its coupon (7.00%).
- 5
Compare yields
Current yield = 7.00 / 99.0872 x 100 = 7.06%. So for a discount bond, coupon (7.00%) < current yield (7.06%) < YTM (7.50%). For a premium bond the order reverses.
Going the Other Way: Price to YTM
When the exam gives the price and asks for YTM, there is no direct formula. RBI's primer describes trial and error: try a rate, compute the price, and if it is above the market price try a higher rate. Once you have one rate giving a price above and one giving a price below, interpolate linearly between them. In an MCQ, it is often faster to price the bond at each answer option and pick the one that matches.
Worked Example 2: Accrued Interest, Clean and Dirty Price
Illustrative trade: ₹2 crore face value of a 7.10% G-Sec, last coupon 15 April, settlement 20 June, clean price ₹99.85. Indian bonds use 30/360, and interest accrues from the last coupon date to the day before settlement.
Days (30/360)
Working
15 April to 19 June: 2 months x 30 + (19 - 15)
Result
64 days
Accrued interest per ₹100
Working
7.10 x 64 / 360
Result
₹1.2622
Dirty price
Working
99.85 + 1.2622
Result
₹101.1122
Consideration
Working
2,00,00,000 x 101.1122 / 100
Result
₹2,02,22,444
| Step | Working | Result |
|---|---|---|
| Days (30/360) | 15 April to 19 June: 2 months x 30 + (19 - 15) | 64 days |
| Accrued interest per ₹100 | 7.10 x 64 / 360 | ₹1.2622 |
| Dirty price | 99.85 + 1.2622 | ₹101.1122 |
| Consideration | 2,00,00,000 x 101.1122 / 100 | ₹2,02,22,444 |
Certified Treasury Professional format questions. No signup.
The seller gets the accrued interest because they held the bond for those 64 days but will not receive the next coupon. RBI's own illustration uses the same method: 8.83% 2023, 65 days, 8.83 x 65 / 360 = ₹1.5943, clean ₹100.50, dirty ₹102.0943. Note that T-Bills and other money market instruments use actual/365 instead. Mixing the two bases is a classic wrong option.
Worked Example 3: Macaulay and Modified Duration
Same 2-year, 7.00% bond at 7.50% YTM. Multiply each present value by its period number, add, and divide by the price.
1
Cash flow (₹)
3.50
PV at 3.75%
3.3735
PV x period
3.3735
2
Cash flow (₹)
3.50
PV at 3.75%
3.2516
PV x period
6.5031
3
Cash flow (₹)
3.50
PV at 3.75%
3.1340
PV x period
9.4021
4
Cash flow (₹)
103.50
PV at 3.75%
89.3281
PV x period
357.3123
Total
Cash flow (₹)
PV at 3.75%
99.0872
PV x period
376.5910
| Period (half year) | Cash flow (₹) | PV at 3.75% | PV x period |
|---|---|---|---|
| 1 | 3.50 | 3.3735 | 3.3735 |
| 2 | 3.50 | 3.2516 | 6.5031 |
| 3 | 3.50 | 3.1340 | 9.4021 |
| 4 | 103.50 | 89.3281 | 357.3123 |
| Total | 99.0872 | 376.5910 |
From the Table to Duration and PV01
- check_circleDuration in periods = 376.5910 / 99.0872 = 3.8006 half years.
- check_circleMacaulay duration in years = 3.8006 / 2 = 1.90 years. It is less than the 2-year maturity because coupons arrive earlier. Only a zero coupon bond has duration equal to its maturity.
- check_circleModified duration = 1.9003 / (1 + 0.075 / 2) = 1.9003 / 1.0375 = 1.83.
- check_circlePrice change for 1% = 1.8316% x 99.0872 = ₹1.8149.
- check_circlePV01 = 1.8149 / 100 = ₹0.0181 per ₹100, about 1.8 paise. On ₹10 crore face value that is about ₹18,150 per basis point.
Worked Example 4: Adding Convexity
Duration treats the price-yield curve as a straight line. It is not; it bends. Convexity measures that bend, and it matters for large yield moves.
- 1
Reprice at yields 1% either side
At 8.50%: ₹97.2935. At 6.50%: ₹100.9237. Current price at 7.50%: ₹99.0872.
- 2
Effective convexity
(P down + P up - 2 x P0) / (P0 x Δy²) = (97.2935 + 100.9237 - 198.1744) / (99.0872 x 0.0001) = 4.34.
- 3
Estimate for a 1% rise
Duration part: -1.8316 x 0.01 x 99.0872 = -₹1.8149. Convexity part: + 0.5 x 4.34 x 0.0001 x 99.0872 = +₹0.0215. Total: -₹1.7934.
- 4
Check against the actual
Actual fall = 99.0872 - 97.2935 = ₹1.7937. Duration alone overstated the loss; duration plus convexity lands within a paisa.
The Asymmetry Convexity Creates
For an option-free bond, a yield rise cuts the price by less than duration predicts, and a yield fall lifts it by more. In this example duration says ±₹1.81 for ±1%; the actual moves are -₹1.79 and +₹1.84. Convexity always adds to the duration estimate, whichever way yields move.
How the CTP Exam Tests This
- check_circleShort pricing sums: a 1 or 2 year semi-annual bond where you discount 2 to 4 cash flows by hand. Remember to halve both the coupon and the yield.
- check_circleAccrued interest with 30/360 days counted to the day before settlement, then clean to dirty to consideration amount.
- check_circleRanking yields: which is highest among coupon, current yield and YTM, given that the bond is at a premium or a discount.
- check_circleDuration properties: higher coupon means shorter duration; zero coupon duration equals maturity; modified duration is always below Macaulay duration.
- check_circlePV01 on a position size: MD x price / 10,000 per ₹100, then scale to the face value held.
- check_circleSituation questions: which of two bonds loses more if yields rise (the one with the higher modified duration), and why the duration-only estimate is too pessimistic for a rate rise.
FAQs
What is the difference between clean price and dirty price?expand_more
The clean price is the quoted price without accrued interest. The dirty price adds the interest accrued since the last coupon. In India, G-Secs are quoted clean and the buyer pays the dirty price.
Which day count is used for accrued interest on G-Secs?expand_more
30/360 for the bond market: every month is 30 days and the year is 360 days. Money market instruments such as T-Bills use actual/365.
What is the difference between Macaulay and modified duration?expand_more
Macaulay duration is a time measure in years: the weighted average time to receive the cash flows. Modified duration divides it by (1 + y/2) and gives the approximate percentage price change for a 1% change in yield.
How do I calculate PV01?expand_more
Multiply modified duration by the price and divide by 10,000. For a bond with MD 1.83 and price ₹99.09, PV01 is about ₹0.018 per ₹100 of face value.
Can I use a financial calculator in the CTP exam?expand_more
No. IIBF allows only a basic battery calculator of up to 8 functions and 12 digits. Scientific and financial calculators are not allowed, so practise discounting by repeated division.
Next steps
- Day Count Conventionsarrow_forward
- Forward Premium & Discountarrow_forward
- Syllabusarrow_forward
- Preparationarrow_forward
100 questions on the full CTP syllabus, timed and scored.
