Analyst Dojo
Lesson 3 of 3 11–14% of the exam

Portfolio duration and convexity

In practice, portfolio duration is the average of the bonds' durations weighted by market value, and portfolio convexity works the same way. It is quick and intuitive, but it assumes every bond's yield moves by the same amount (a parallel shift), which real yield curves rarely do.

8 min cram, 40 min full read. Based on the 2027 CFA® Program Level I curriculum, Fixed Income, Learning Module 12. Also part of the 2026 curriculum, so it applies to the November 2026 exam too.

Tailor this to you: take the self-assessment

Before this: Modified Duration, Money Duration and PVBP, Estimating price change with duration and convexity

On the exam

  • Calculate portfolio duration and convexity and explain the limitations of these measures

Calculate portfolio duration and convexity, and explain the limitations of these measures. Expect a market-value-weighted average and one question on the parallel-shift assumption. Wrong options weight by par or take a simple average.

How deeply to learn each part
Know the idea
Understand it in general. It frames other topics, but you will not calculate with it.
Use it
Understand it well enough to solve a question with it. Recognize when it applies.
Memorize
Learn it by heart. The exam will not give it to you.

You know this one. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still do.

You tested strong here. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still know it.

Cram mode: the one-screen version of this lesson. Switch to Full for the explanations, worked examples and interactives.

How do you measure the risk of a whole portfolio?

There are two ways to compute portfolio duration and portfolio convexity .

Two ways to measure a portfolio
Portfolio duration and convexitytwo methods
  • Cash flow yield method Know the idea one bond: pool all cash flows, find the portfolio IRR
    • Theoretically correct Know the idea treats the portfolio as a single bond
    • Hard in practice Know the idea impossible with options or floaters
  • Weighted average of bonds’ measures Memorize what managers use
    • Weights = market value share Memorize full price × par, never par alone
    • Assumes a parallel shift Memorize every yield moves by the same amount

The theoretically correct method treats the portfolio’s combined cash flows as one bond and finds its internal rate of return, the cash flow yield . Duration and convexity are then calculated at that yield. It is correct, but hard to use in practice, and it breaks down when the holdings include options or floating-rate coupons.

Managers use the second method: a weighted average of each bond’s own measure. The weights are each bond’s share of total market value, which is full price times par. Par is not what the investor has at risk, so it is not used.

Market-value weight Use it
wi=Full pricei×Pari∑Full pricej×Parjw_i = \frac{\text{Full price}_i \times \text{Par}_i}{\sum \text{Full price}_j \times \text{Par}_j}

These are the market-value weights . They sum to one.

Portfolio modified duration Memorize
ModDurP≈∑iwi×ModDuri\text{ModDur}_P \approx \sum_i w_i \times \text{ModDur}_i
Portfolio convexity Memorize
ConvexityP≈∑iwi×Convexityi\text{Convexity}_P \approx \sum_i w_i \times \text{Convexity}_i
InteractivePortfolio duration: a market-value-weighted average

Try this 0 of 3

  • With the worked example, turn on weights by par
  • Switch the shock to the steepener
  • Buy more Bond Z until portfolio duration reaches 10.00
Bond K
Bond Z
Portfolio market valueEUR 32,898,165
Portfolio ModDur8.981
Portfolio convexity111.95
HoldingMarket valueWeightWeight × ModDur
Bond K19,016,54057.80%2.895
Bond Z13,881,62542.20%6.086
Portfolio32,898,165100%8.981

Contribution to duration (each segment = weight × ModDur)

2.90
6.09
0816
Estimated %ΔP, +75 bp−6.42%
Estimated changeEUR −2,112,454
Actual (repriced)−6.43%

In a parallel shift the portfolio figures work exactly like a single bond's: −6.42%, the same as adding up each bond's own estimate.

Show working

Market values (par × full price ÷ 100): Bond K 19,016,540; Bond Z 13,881,625. Total EUR 32,898,165.

Weights = market value ÷ total: Bond K 57.80%, Bond Z 42.20%.

Portfolio ModDur = Σ weight × ModDur = 0.5780 × 5.0091 + 0.4220 × 14.4231 = 8.9814.

Portfolio convexity = Σ weight × convexity = 0.5780 × 31.7 + 0.4220 × 221.89 = 111.95.

Parallel +75 bp: −8.9814 × 0.0075 + ½ × 111.95 × 0.0075² = −6.736% + 0.315% = −6.421%; repricing both bonds gives −6.433%.

Market values and portfolio duration
  1. 20000000×95.0827÷100=STO119,016,540.00, Bond K market value
  2. 25000000×55.5265÷100=STO213,881,625.00, Bond Z market value
  3. RCL1+RCL2=STO932,898,165.00, total
  4. (RCL1×5.0091)+(RCL2×14.4231)=÷RCL9=8.9814, portfolio ModDur

STO store · RCL recall a stored number

  1. 20000000ENTER95.0827×100÷STO119,016,540.00, Bond K market value
  2. 25000000ENTER55.5265×100÷STO213,881,625.00, Bond Z market value
  3. RCL1RCL2+STO932,898,165.00, total
  4. RCL15.0091×RCL214.4231×+RCL9÷8.9814, portfolio ModDur

ENTER enter (on the HP, puts the number on the stack) · STO store · RCL recall a stored number

Portfolio estimate for the parallel shift
  1. 0.5×111.9521×0.0075x²=STO80.003149, convexity effect
  2. 8.9814×0.0075=+|-+RCL8=-0.064212, so −6.42%

x² square · STO store · +|- change sign · RCL recall a stored number

  1. 111.9521ENTER0.0075ENTER××2÷0.003149, convexity effect
  2. 8.9814ENTER0.0075×−-0.064212, so −6.42%

ENTER enter (on the HP, puts the number on the stack)

Average by market value, and remember it only holds if every yield moves together.
Rearrange itTwo-bond portfolio duration or convexity: solve for any input
The question asks for
A portfolio holds two bonds. Bond A is 57.80% of market value with a duration of 5.0091, and bond B is the rest with a duration of 14.4231. The portfolio's duration is closest to:

0.578043 × 5.0091 + 0.421957 × 14.4231 = 8.9814

Portfolio duration (or convexity)8.9814

On your calculator
  1. 0.578043×5.0091=STO1
  2. 0.421957×14.4231+RCL1=

STO store · RCL recall a stored number

  1. 0.578043ENTER5.0091×0.421957ENTER14.4231×+

ENTER enter (on the HP, puts the number on the stack)

Exam tip First build market values, then weights, then the average. If a question gives par and prices, par is never the weight.

A worked portfolio

Go deeper Contribution to duration, and barbell vs bullet

Weight × duration is each bond’s contribution to duration, and managers use it to say where the risk sits. Here Bond K contributes 2.90 years of the portfolio’s 8.98, and Bond Z contributes 6.09 although it is under half the portfolio.

Two portfolios can have the same duration with different shapes. A barbell (short and long bonds) has more dispersed cash flows than a bullet (all in the middle), so it is more convex. That is the dispersion idea from the first lesson, now at portfolio level.

Go deeper Why the cash flow yield method is rarely used

It needs every cash flow of every holding, the IRR of the pooled stream and a duration at that single yield. A portfolio with callable or floating-rate bonds has no fixed cash flows to pool. The weighted average needs only each bond’s published duration, which is why it wins in practice despite being approximate.

What are the limitations?

Where the weighted average breaks down
Limitations of the weighted average
  • Parallel-shift assumption Memorize steepening, flattening or twists move bonds differently
  • Best when yields are close and the curve is flat Use it accuracy falls as the holdings spread out
  • Embedded options and floaters Use it need effective or reset-based measures first

The central limitation is the parallel shift assumption. The weighted average multiplies one portfolio duration by one yield change, so it implicitly assumes every holding’s yield moves by the same amount. When the curve steepens, flattens or twists, short and long bonds move by different amounts, and a single portfolio number cannot capture that.

Two more points to know:

  • The approximation is better when the holdings’ yields are close together and the yield curve is flat.
  • Bonds with embedded options or floating coupons need effective or reset-based durations before their measures can be averaged.

Memorize this

MemorizePortfolio duration and convexity

ItemRule
Portfolio ModDurΣ (weight × ModDur)
Portfolio convexityΣ (weight × convexity)
WeightsMarket value (full price × par) ÷ total
NeedsParallel shift in all yields
Theoretically correctCash flow yield method, hard to use

Memory hook Average by what you own, not by what you face: market value, never par, never equal weights.

Know it cold Weighted average assumes every yield moves together. Steepeners, flatteners and twists break it. Then feed it into %ΔP ≈ −ModDur × Δy + ½ × Con × Δy².

Two ways to measure a portfolio
Portfolio duration and convexitytwo methods
  • Cash flow yield method Know the idea one bond: pool all cash flows, find the portfolio IRR
    • Theoretically correct Know the idea treats the portfolio as a single bond
    • Hard in practice Know the idea impossible with options or floaters
  • Weighted average of bonds’ measures Memorize what managers use
    • Weights = market value share Memorize full price × par, never par alone
    • Assumes a parallel shift Memorize every yield moves by the same amount
Where the weighted average breaks down
Limitations of the weighted average
  • Parallel-shift assumption Memorize steepening, flattening or twists move bonds differently
  • Best when yields are close and the curve is flat Use it accuracy falls as the holdings spread out
  • Embedded options and floaters Use it need effective or reset-based measures first
Market-value weight Use it
wi=Full pricei×Pari∑Full pricej×Parjw_i = \dfrac{\text{Full price}_i \times \text{Par}_i}{\sum \text{Full price}_j \times \text{Par}_j}
Quick example

USD 7,000,000 par of a bond at 90.00 and USD 3,000,000 par of a bond at 70.00. Market values 6,300,000 and 2,100,000, so the first bond has weight 6,300,000 ÷ 8,400,000 = 0.75.

On your calculator
  1. 3000000×0.7=+6300000=STO1 8,400,000
  2. 6300000÷RCL1= 0.75

STO store · RCL recall a stored number

  1. 3000000ENTER0.7×6300000+STO1 8,400,000
  2. 6300000RCL1÷ 0.75

ENTER enter (on the HP, puts the number on the stack) · STO store · RCL recall a stored number

Portfolio modified duration Memorize
ModDurP≈∑iwi×ModDuri\text{ModDur}_P \approx \sum_i w_i \times \text{ModDur}_i
Quick example

Weights 50%, 30% and 20% with modified durations 3.0, 7.0 and 10.0: 0.50 × 3.0 + 0.30 × 7.0 + 0.20 × 10.0 = 1.5 + 2.1 + 2.0 = 5.6.

On your calculator
  1. 0.5×3=STO1
  2. 0.3×7+RCL1=STO1
  3. 0.2×10+RCL1= 5.6

STO store · RCL recall a stored number

  1. 0.5ENTER3×0.3ENTER7×+0.2ENTER10×+ 5.6

ENTER enter (on the HP, puts the number on the stack)

Portfolio convexity Memorize
ConvexityP≈∑iwi×Convexityi\text{Convexity}_P \approx \sum_i w_i \times \text{Convexity}_i
Quick example

Same weights (50%, 30%, 20%) with convexities 12, 60 and 110: 0.50 × 12 + 0.30 × 60 + 0.20 × 110 = 6 + 18 + 22 = 46.

On your calculator
  1. 0.5×12=STO1
  2. 0.3×60+RCL1=STO1
  3. 0.2×110+RCL1= 46

STO store · RCL recall a stored number

  1. 0.5ENTER12×0.3ENTER60×+0.2ENTER110×+ 46

ENTER enter (on the HP, puts the number on the stack)

How it is asked

  1. Weighted-average duration, par vs market value

    USD 9m par of A (price 80, ModDur 2.0) and USD 4m par of B (price 70, ModDur 8.0).

    Weights 0.72 and 0.28: 1.44 + 2.24 = 3.68. Par weights give 3.85, a simple average gives 5.00.

  2. Which assumption does the shortcut make?

    Using the weighted average of bond durations most likely assumes what?

    An equal (parallel) change in all yields. A flat curve helps accuracy but is not the assumption.

  3. Portfolio price change

    Portfolio ModDur 6.10, convexity 60, all yields +100 bp.

    −6.10% + ½ × 60 × 0.01² = −6.10% + 0.30% = −5.80%.

Exam traps

  • Weighting by par value instead of market value.
  • Averaging durations equally.
  • Claiming the weighted average is the theoretically correct method. The cash flow yield method is.
  • Applying the portfolio figure to a non-parallel move.

Checkpoint

6 exam-style questions. About 90 seconds each.

  1. 1A portfolio holds USD 6,000,000 par of Bond A (full price 100.00, modified duration 3.0) and USD 5,000,000 par of Bond B (full price 80.00, modified duration 9.0). The portfolio's modified duration is closest to:

  2. 2Using the weighted average of individual bond durations to measure a portfolio's interest rate risk most likely assumes:

  3. 3The portfolio in the first question has bond convexities of 12.0 (Bond A) and 95.0 (Bond B). If all yields rise by 100 bp, the estimated percentage change in portfolio value is closest to:

  4. 4A portfolio holds three bonds with market values of USD 40 million, USD 35 million and USD 25 million and modified durations of 2.0, 6.0 and 11.0. The portfolio's modified duration is closest to:

  5. 5A portfolio has a modified duration of 5.65 and a convexity of 50. If all yields rise by 100 bp, the estimated percentage change in its value is closest to:

  6. 6Which method gives the theoretically correct duration of a bond portfolio?

Key takeaways

  • Portfolio duration ≈ Σ (market-value weight × duration). Convexity works the same way.
  • Weights use market value (full price × par), never par.
  • The shortcut assumes parallel shifts. Non-parallel moves break it.
Market-value weight Use it
wi=Full pricei×Pari∑Full pricej×Parjw_i = \dfrac{\text{Full price}_i \times \text{Par}_i}{\sum \text{Full price}_j \times \text{Par}_j}
Quick example

USD 7,000,000 par of a bond at 90.00 and USD 3,000,000 par of a bond at 70.00. Market values 6,300,000 and 2,100,000, so the first bond has weight 6,300,000 ÷ 8,400,000 = 0.75.

On your calculator
  1. 3000000×0.7=+6300000=STO1 8,400,000
  2. 6300000÷RCL1= 0.75

STO store · RCL recall a stored number

  1. 3000000ENTER0.7×6300000+STO1 8,400,000
  2. 6300000RCL1÷ 0.75

ENTER enter (on the HP, puts the number on the stack) · STO store · RCL recall a stored number

Portfolio modified duration Memorize
ModDurP≈∑iwi×ModDuri\text{ModDur}_P \approx \sum_i w_i \times \text{ModDur}_i
Quick example

Weights 50%, 30% and 20% with modified durations 3.0, 7.0 and 10.0: 0.50 × 3.0 + 0.30 × 7.0 + 0.20 × 10.0 = 1.5 + 2.1 + 2.0 = 5.6.

On your calculator
  1. 0.5×3=STO1
  2. 0.3×7+RCL1=STO1
  3. 0.2×10+RCL1= 5.6

STO store · RCL recall a stored number

  1. 0.5ENTER3×0.3ENTER7×+0.2ENTER10×+ 5.6

ENTER enter (on the HP, puts the number on the stack)

Portfolio convexity Memorize
ConvexityP≈∑iwi×Convexityi\text{Convexity}_P \approx \sum_i w_i \times \text{Convexity}_i
Quick example

Same weights (50%, 30%, 20%) with convexities 12, 60 and 110: 0.50 × 12 + 0.30 × 60 + 0.20 × 110 = 6 + 18 + 22 = 46.

On your calculator
  1. 0.5×12=STO1
  2. 0.3×60+RCL1=STO1
  3. 0.2×110+RCL1= 46

STO store · RCL recall a stored number

  1. 0.5ENTER12×0.3ENTER60×+0.2ENTER110×+ 46

ENTER enter (on the HP, puts the number on the stack)

All Fixed Income formulas, every lesson

Practice exam-style questions on Convexity and Portfolio Duration

Questions about this lesson?

Where this comes back

Questions candidates ask

How do you calculate the duration of a bond portfolio?

Multiply each bond's duration by its share of the portfolio's market value and add them up.

What is the limitation of portfolio duration?

It assumes all yields change by the same amount, which rarely happens.

Is portfolio convexity a weighted average too?

Yes, using the same market-value weights.

Spotted an error? Tell us and we will fix it.

  1. Convexity and the convexity adjustment
  2. Estimating price change with duration and convexity
  3. Portfolio duration and convexity

Ask Sensei Listen instead

Questions on Portfolio duration and convexity

Learn with Sensei, out loud The voice tutor, in early access

Sensei teaches the lesson aloud and stops when you interrupt: "wait, why is the geometric mean lower?" It answers with the lesson's own example, then quizzes you by voice. Every account can try Sensei on one module, with one voice question.

USD 149 a month founding price (regular USD 199), kept for as long as you stay subscribed. Everything in Plus included.

In active development and improving every day. Send feedback · Plans and pricing

Analyst Dojo Plus

Your free review list holds 10 items.

Plus keeps everything you save, for USD 19 a month. To make room on the free plan, remove something from your review list.

See Plus

Lessons, checkpoints and the lesson questions in practice stay free. Compare plans