QUANT.BOND.DV01 OpenBI
How much a bond's price changes, for each 100 of nominal, when its yield rises by one basis point.
Group: Quantitative finance. OpenBI’s own: DAX has no function of this name.
Syntax
QUANT.BOND.DV01 ( <settlement>, <maturity>, <coupon>, <yieldRate> [, <frequency>] [, <dayCount>] [, <redemption>] )
| Parameter | Type | Description |
|---|---|---|
settlement | Date | The day the bond changes hands: everything is worked out as of this day. |
maturity | Date | The day the bond pays its last coupon and its redemption. |
coupon | Number | The coupon rate a year, as a decimal: 0.04 for 4 %. |
yieldRate | Number | The yield to maturity as a decimal, compounded as many times a year as the coupon is paid. |
frequency | Whole number optional | Coupons a year: 1 (when left out), 2, 4 or 12. |
dayCount | Text optional | How days are counted between coupons: "Actual/Actual" (when left out: each coupon period's own days), "Actual/Actual ISDA", "Actual/365", "Actual/360" or "30/360". |
redemption | Number optional | What the bond pays back at maturity for each 100 of nominal; 100 when left out. |
Returns
Number. The change in the dirty price for each 100 of nominal for a yield one basis point (0.01 %) higher: negative for an ordinary bond.
Remarks
- The sign follows the price: a rise in the yield lowers the price, so the DV01 is negative. Many desks quote it as a positive number; take its absolute value with
ABSwhere a report needs that. - It is worked out to first order: minus the modified duration, times the dirty price, times 0.0001.
- For a holding, multiply by its nominal and divide by 100: the change in money for a basis point.
- For the same risk spread over the curve's maturities, use
QUANT.KEYRATE. - The coupon dates are counted back from the maturity one period at a time, on the same day of the month, and are not moved off weekends or holidays.
- The yield is compounded at the coupon frequency, with the day count given: the convention of a bond's own quote.
- A blank or a text where a number belongs, a maturity on or before the settlement, or a frequency other than 1, 2, 4 or 12 is an error.
Compared with DAX
An OpenBI function: DAX has none like it, so a measure or query that uses it works in OpenBI only, not in Power BI or Analysis Services.
Examples
The holdings' DV01 in NOK
Each holding's value change for one basis point at a yield of 4 %, and their total.
EVALUATE
VAR Risk =
ADDCOLUMNS (
Holdings,
"DV01", QUANT.BOND.DV01 ( DATE ( 2026, 10, 13 ), Holdings[Maturity], Holdings[Coupon], 0.04 ) * Holdings[Nominal] / 100
)
RETURN
UNION (
SELECTCOLUMNS ( Risk, "Bond", Holdings[Bond], "DV01, NOK", ROUND ( [DV01], 0 ) ),
ROW ( "Bond", "All", "DV01, NOK", ROUND ( SUMX ( Risk, [DV01] ), 0 ) )
)
| Bond | DV01, NOK |
|---|---|
| Government 2028 | -32720 |
| Government 2033 | -156957 |
| Municipal 2031 | -64507 |
| Covered 2029 | -30035 |
| Corporate 2030 | -30386 |
| All | -314604 |
DV01 against a basis point repriced
The five-year bond's DV01, and its price at 4.51 % less its price at 4.5 %: close, as the change is small.
EVALUATE
ROW (
"DV01", QUANT.BOND.DV01 ( DATE ( 2026, 10, 13 ), DATE ( 2031, 10, 13 ), 0.04, 0.045 ),
"Repriced", QUANT.BOND.PRICE ( DATE ( 2026, 10, 13 ), DATE ( 2031, 10, 13 ), 0.04, 0.0451 ) - QUANT.BOND.PRICE ( DATE ( 2026, 10, 13 ), DATE ( 2031, 10, 13 ), 0.04, 0.045 )
)
| DV01 | Repriced |
|---|---|
| -0.0432881029409165 | -0.0432760068560043 |
Related functions
QUANT.BOND.DURATION, QUANT.KEYRATE, QUANT.BOND.PRICE, VALUATION.VALUE.