ElyxAI

Master PRICEMAT: The Complete Guide to Bond Price Calculations in Excel

Advanced
=PRICEMAT(settlement, maturity, issue, rate, yld, [basis])

The PRICEMAT function is a specialized financial formula designed to calculate the price of a security that pays interest at maturity. This advanced function is essential for financial analysts, investment professionals, and treasury managers who work with fixed-income securities. Unlike regular bonds that pay periodic coupons, securities priced with PRICEMAT pay all interest at the maturity date, making them unique instruments in the bond market. Understanding PRICEMAT is crucial for accurate bond valuation and portfolio management. The formula takes into account multiple variables including settlement dates, maturity dates, issue dates, interest rates, and yield requirements. By mastering this function, you can perform sophisticated financial analysis and make informed investment decisions based on precise security pricing calculations. This comprehensive guide will walk you through the syntax, practical applications, and advanced techniques for using PRICEMAT effectively in your Excel financial models.

Syntax & Parameters

The PRICEMAT function follows this structure: =PRICEMAT(settlement, maturity, issue, rate, yld, [basis]). Each parameter plays a critical role in determining the final bond price. The settlement parameter represents the date when the security is purchased or transferred, typically expressed as a serial date number. The maturity parameter indicates when the security reaches its end date and the principal is repaid. The issue parameter marks the original issuance date of the security, which is necessary for calculating accrued interest. The rate parameter represents the annual coupon rate as a decimal (for example, 0.05 for 5%), determining the interest paid at maturity. The yld parameter specifies the required annual yield as a decimal, reflecting the market's return expectations. The optional basis parameter determines the day-count convention (0-4), where 0 represents US 30/360, 1 represents Actual/Actual, 2 represents Actual/360, 3 represents Actual/365, and 4 represents European 30/360. Understanding these parameters is essential for accurate calculations.

settlement
Settlement date
maturity
Maturity date
issue
Issue date
rate
Interest rate
yld
Annual yield
basis
Day count basis
Optional

Practical Examples

Corporate Bond Pricing at Settlement

=PRICEMAT(DATE(2024,6,15), DATE(2025,12,31), DATE(2023,1,1), 0.045, 0.052, 0)

This formula calculates the bond price using the US 30/360 day-count basis. The settlement date is the purchase date, maturity is when interest and principal are paid, and the rate/yield comparison determines whether the bond is trading at a premium or discount.

Zero-Coupon Bond Valuation

=PRICEMAT(DATE(2024,9,15), DATE(2027,3,1), DATE(2022,3,1), 0, 0.038, 1)

For zero-coupon bonds, the coupon rate is 0%, and the price is purely based on the discount rate. The Actual/Actual basis (1) is used for more precise calculations. The formula returns a price significantly below par value.

Government Security Pricing with Actual/365 Basis

=PRICEMAT(DATE(2024,11,10), DATE(2026,7,1), DATE(2023,7,1), 0.0375, 0.041, 3)

Using Actual/365 basis (basis 3) is common for government securities and international bonds. This formula accounts for the exact number of days in the calculation period, providing more accurate pricing for these instruments.

Key Takeaways

  • PRICEMAT calculates prices for securities paying interest at maturity, essential for zero-coupon bonds and similar instruments
  • The formula requires six parameters: settlement, maturity, issue dates, coupon rate, yield, and optional day-count basis
  • Basis parameter selection significantly impacts results; choose based on security type and market convention (US, European, international)
  • Always validate dates are in chronological order and parameters are in correct format to avoid #NUM! and #VALUE! errors
  • Combine PRICEMAT with ACCRINTM for dirty price, or use with YIELDMAT for yield calculations in comprehensive bond analysis

Pro Tips

Use named ranges for frequently used parameters like settlement dates or yield curves. This makes formulas more readable and easier to maintain across large models.

Impact : Improves formula clarity by 40-50%, reduces errors when updating parameters, and makes auditing financial models significantly faster.

Create a lookup table for basis values (0-4) with descriptions to ensure consistent application across your bond pricing models. Reference this table with VLOOKUP or INDEX/MATCH.

Impact : Eliminates basis selection errors, ensures compliance with accounting standards, and standardizes calculations across your organization.

Build sensitivity analysis tables showing how bond prices change with different yield scenarios. Use Data Table feature with PRICEMAT to create yield curve analyses.

Impact : Enables quick risk assessment, supports portfolio management decisions, and provides visual insight into interest rate risk exposure.

Validate PRICEMAT results against market prices from Bloomberg or other data providers. Create reconciliation reports to catch calculation errors early.

Impact : Ensures accuracy of financial reporting, identifies systematic calculation errors, and builds confidence in your pricing models.

Useful Combinations

Bond Price with Accrued Interest Calculation

=PRICEMAT(settlement, maturity, issue, rate, yld, basis) + ACCRINTM(issue, settlement, maturity, rate, basis)

This combination calculates both the clean price (PRICEMAT) and accrued interest (ACCRINTM), then adds them to get the dirty price or invoice price that the buyer actually pays. This is essential for accurate settlement calculations in bond trading.

Dynamic Bond Pricing with IF Statement

=IF(yld>rate, PRICEMAT(settlement, maturity, issue, rate, yld, basis), PRICEMAT(settlement, maturity, issue, rate, yld, basis))*100

This formula multiplies PRICEMAT by 100 to express the result as a percentage of par value, making it easier to read in financial reports. The IF statement can be enhanced to apply different bases or conditions based on security type.

Comparing Multiple Securities with Array Formula

=PRICEMAT(settlement, maturity, issue, rate, yld, basis) & " | Yield: " & yld*100 & "%"

This combination concatenates the price result with the yield percentage, creating a readable summary output. Useful for creating comparison tables or reports that display both price and yield metrics for multiple securities simultaneously.

Common Errors

#NUM!

Cause: This error occurs when settlement date is after maturity date, or when negative values are provided for rate or yield parameters. It can also happen when the settlement date is before the issue date.

Solution: Verify that dates are in chronological order (issue ≤ settlement < maturity). Ensure rate and yield are positive decimal values. Use DATE function to create valid date values and double-check date logic with cell references.

#VALUE!

Cause: This error appears when non-numeric values are provided for rate, yld, or basis parameters. It can also occur if dates are entered as text strings instead of proper date serial numbers.

Solution: Ensure all numeric parameters are formatted as numbers, not text. Convert text dates using DATE function or DATEVALUE. Check that basis parameter is an integer between 0 and 4. Use formula auditing tools to identify problematic cell references.

#REF!

Cause: This error indicates that one or more cell references in the formula have been deleted or the referenced cells no longer exist. It commonly occurs when rows or columns containing referenced data are removed.

Solution: Restore deleted rows or columns from backup, or recreate the formula with valid cell references. Use absolute references ($A$1) for fixed parameters to prevent reference errors when copying formulas. Review formula dependencies using the Trace Precedents feature.

Troubleshooting Checklist

  • 1.Verify that all date parameters are valid Excel date serial numbers; use DATE function to create dates rather than text strings
  • 2.Confirm rate and yld parameters are in decimal format (0.05 not 5); check for percentage vs. decimal confusion
  • 3.Ensure chronological order: issue date ≤ settlement date < maturity date; any violation causes #NUM! error
  • 4.Check basis parameter is integer between 0-4; values outside this range cause errors or unexpected results
  • 5.Validate that settlement date is not before issue date and maturity date is in the future; both conditions must be true
  • 6.Test formula with known values from financial textbooks or Bloomberg to confirm calculation accuracy before using in production

Edge Cases

Settlement date equals issue date

Behavior: Formula calculates correctly; security is priced at issuance. This represents the initial offering price scenario.

Solution: This is valid behavior. The formula handles this case appropriately and returns the offering price.

Common in primary market bond offerings where settlement occurs on issuance date

Coupon rate equals yield (rate = yld)

Behavior: PRICEMAT returns a price very close to 100 (par value), adjusted for the time between issue and settlement dates

Solution: This is expected behavior. When coupon rate equals market yield, the security trades near par.

Represents fair value pricing where coupon and market return expectations align

Very long maturity periods (20+ years)

Behavior: Formula remains accurate but price becomes highly sensitive to yield changes. Small yield changes create large price swings.

Solution: Use sensitivity analysis to understand duration risk. Consider using duration calculations to measure interest rate sensitivity.

Reflects real market behavior where long-duration bonds exhibit greater price volatility

Limitations

  • PRICEMAT assumes the security pays all interest at maturity; cannot handle bonds with periodic coupon payments (use PRICE function instead)
  • The formula does not account for credit risk, default probability, or embedded options; returns theoretical price assuming no default
  • Limited to day-count bases 0-4; cannot accommodate custom or non-standard day-count conventions used in some emerging markets
  • Requires precise date inputs; even small date entry errors can produce significantly different results due to time-value-of-money calculations

Alternatives

Calculates yield instead of price; useful when you know the price and need to find the yield. YIELDMAT works inversely to PRICEMAT.

When: When analyzing market-quoted bond prices to determine implied yield or comparing yields across different securities in your portfolio.

Handles regular coupon-paying bonds with periodic interest payments; more commonly used for standard bond valuation than PRICEMAT.

When: When pricing conventional bonds that pay semi-annual or annual coupons rather than interest at maturity.

Generic discounting function that can be customized for various financial instruments; provides flexibility for non-standard securities.

When: When pricing unique or customized fixed-income instruments that don't fit standard bond pricing models.

Compatibility

Excel

Since 2007

=PRICEMAT(settlement, maturity, issue, rate, yld, [basis]) - Fully supported in Excel 2007, 2010, 2013, 2016, 2019, and Excel 365

Google Sheets

Not available

LibreOffice

=PRICEMAT(settlement, maturity, issue, rate, yld, [basis]) - Compatible with LibreOffice Calc with identical syntax to Excel

Frequently Asked Questions

Ready to automate your bond pricing calculations? Discover how ElyxAI can help you build intelligent financial models and master advanced Excel formulas for investment analysis.

Explore Financial

Related Formulas