Price a Bond (Present Value of Cash Flows)

Excel Formulas › Financial

All versionsPV

A bond’s price is the present value of its coupon payments plus its face value at maturity. PV bundles both into one figure at the market yield.


Quick formula: price for face B1, coupon rate B2, years B3, market yield B4 (annual coupons):
=-PV(B4, B3, B1*B2, B1)
PV discounts the coupons (face × coupon rate) and the face value back at the yield; negate for a positive price.

Functions used (tap for the full reference guide):

The example

$1,000 face, 5% coupon, 10 yrs, 6% market yield.

AB
1ItemValue
2Face$1,000
3Coupon 5%$50/yr
4Price at 6% yield$926

The formula

The formula:

=-PV(yield, years, face*couponRate, face) // PV of coupons + face

How it works

How it works:

  1. The coupon each period is face × couponRate — the regular payment.
  2. PV(yield, periods, coupon, face) discounts the coupons and the face value back at the market yield.
  3. Negate the result for a positive price. When the yield exceeds the coupon, the bond sells below face (a discount); below, at a premium.
  4. For semiannual coupons, halve the yield and coupon and double the periods.

Excel’s PRICE function handles real settlement/maturity dates and day-count conventions for traded bonds. The PV approach is the clean, intuitive version for coupon bonds with whole periods.

Try it: interactive demo

Live demo

Face, coupon, years, yield.

Price:

Variations

Semiannual coupons

Halve & double:

=-PV(yield/2, years*2, face*cpn/2, face)

PRICE (real dates)

Traded bonds:

=PRICE(settle, maturity, cpn, yld, 100, freq)

Discount or premium?

Compare to face:

=IF(price<face, "Discount", "Premium")

Pitfalls & errors

Sign convention. Negate PV (or expect a negative) so the price is positive.

Match coupon frequency. Semiannual bonds need yield/2, coupon/2, periods×2.

Yield vs coupon. Price moves opposite to yield — rising yields lower prices.

Practice workbook

📊
Download the free Price a Bond (Present Value of Cash Flows) practice workbook
A bond-pricing sheet with the semiannual, PRICE, and discount/premium variants, plus 4 challenges with answers. No sign-up required.

Frequently asked questions

How do I price a bond in Excel?
Use =-PV(yield, years, face*couponRate, face). PV discounts the coupons and face value at the market yield; negate for a positive price.
How do I price a semiannual bond?
Halve the yield and coupon and double the periods: =-PV(yield/2, years*2, face*coupon/2, face).
Why does the bond price differ from face value?
When the market yield is above the coupon rate the bond sells at a discount (below face); below the coupon, at a premium.

Stop fighting formulas. Learn them in a day.

This recipe is one of hundreds of real-world formulas we teach. Our Excel Formulas & Functions class covers lookups, logic, text, and dynamic arrays hands-on — live in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.

See the Formulas & Functions Class

Related formulas: Present value (PV) · Yield to maturity · Net present value (NPV)

Function references: PV