ODDLPRICE Function

Excel 2007+

Summary

The ODDLPRICE function calculates the price per $100 face value of a security with an irregular final coupon period. Perfect for fixed-income analysts pricing bonds with non-standard last interest payments.

Syntax

ODDLPRICE(settlement, maturity, last_interest, rate, yld, redemption, frequency, [basis])

Parameters

Parameter Type Required Description
settlement Date Yes Security settlement date (post-issue trading date)
maturity Date Yes Security maturity/expiration date
last_interest Date Yes Most recent interest payment date
rate Number Yes Security's annual coupon interest rate
yld Number Yes Security's annual yield to maturity
redemption Number Yes Redemption value per $100 face value
frequency Number Yes Coupon payments per year (1=annual, 2=semiannual, 4=quarterly)
basis Number No Day count basis (0=30/360 US, 1=Actual/actual, etc.)

Using the ODDLPRICE Function

ODDLPRICE is crucial for bond traders and portfolio managers valuing securities with irregular final coupon periods. Use it when the settlement date falls between regular coupon dates, creating an odd last period.

Common ODDLPRICE Examples

Pricing Bond with Odd Last Coupon

=ODDLPRICE(DATE(2008,2,7), DATE(2008,6,15), DATE(2007,10,15), 0.0375, 0.0405, 100, 2, 0)

Calculates $99.88 price per $100 face value for semiannual bond using 30/360 basis

Short Last Coupon Period

=ODDLPRICE("1/15/2024", "6/30/2024", "12/31/2023", 0.05, 0.048, 100, 2, 1)

Prices bond with actual/actual day count for short final period

Annual Coupon Bond

=ODDLPRICE(A2, B2, C2, D2, E2, 100, 1, 0)

Annual pay bond using cell references and default basis

Frequently Asked Questions

An odd period occurs when settlement falls between regular coupon dates, creating either a short (< normal period) or long (> normal period) final coupon.

PRICE assumes regular coupon periods; ODDLPRICE handles irregular final periods.

Yes, use basis=4 for European 30/360 day count convention.

Common Errors and Solutions

#NUM!

Cause: rate < 0 or yld < 0

Solution: Ensure both rate and yield are positive numbers

#NUM!

Cause: basis < 0 or basis > 4

Solution: Use valid basis values: 0,1,2,3, or 4

#NUM!

Cause: maturity ≤ settlement or settlement ≤ last_interest

Solution: Verify chronological order: maturity > settlement > last_interest

#VALUE!

Cause: Invalid dates for settlement, maturity, or last_interest

Solution: Use DATE() function or valid date serial numbers

Notes

  • Dates must satisfy: maturity > settlement > last_interest
  • Excel stores dates as serial numbers (1/1/1900 = 1)
  • Frequency: 1=annual, 2=semiannual, 4=quarterly
  • Redemption typically equals 100 for par value bonds
  • Always use DATE() function for dates to avoid text errors

Compatibility

Available in: Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021, Excel 365

Not available in: Excel 2003, Excel XP, Excel 2000, Excel 97

Content last reviewed: December 9, 2025
Update frequency: As needed
Excel versions tested: Excel 2007+