Contact

PRICEMAT Function (Gnumeric)

Financial Intermediate Gnumeric Gnumeric 0.33–0.35; exact first version unresolved

Calculate Gnumeric’s per-100 maturity-interest price using its source formula, with accrued-interest, yield and day-count controls.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: =PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),6%,8%,0) has independent reference price 99.480392156863 per 100 face value.

Availability and evidence

  • Introduction: Listed in the grouped 0.33–0.35 release notes. The evidence does not identify which of those three releases first contained the function.
  • Source support: Registered in the Gnumeric 1.12.62 plugin. No retirement is established. The last functioning application version is unverified for this guide.
  • Evidence dates: Gnumeric 1.12.62 source was retained October 13–14, 2026 and reviewed October 15. Historical introduction evidence, GOffice 0.10.61 source and the calendar reference were retrieved October 15 where cited. Independent calendar or exact-rational calculations are labeled reference results; no native Gnumeric, headless application or GUI execution was performed.

Syntax and the vendor’s argument names

=PRICEMAT(settlement,maturity,issue,discount,yield,[basis])

The first five arguments are required; basis defaults to 0. The Gnumeric help calls the fourth argument discount. In the implementation it supplies the annual rate used to form maturity interest and accrued interest. The fifth argument is the annual yield used to discount the remaining settlement-to-maturity period. Retain their order: exchanging these two rates changes the answer.

The result is a price per 100 face value for a security paying interest at maturity. It is not a total portfolio cost, an interest amount or a periodic-coupon price. Enter percentages as 6% and 8%, or 0.06 and 0.08.

The exact calculation

Let DSM be the settlement-to-maturity day count, DIM the issue-to-maturity count, A the issue-to-settlement count, and B the annual denominator from the settlement date. If r is the fourth argument and y the yield, the callback computes:

(100+100*r*DIM/B)/(1+y*DSM/B) - 100*r*A/B

The first term discounts principal plus maturity interest. The second subtracts accrued interest through settlement. For the main basis-0 dates, DSM=90, DIM=180, A=90 and B=360. Maturity cash per 100 is 103; discounted cash is 103/1.02, approximately 100.980392156863; accrued interest is 1.5. Subtracting it gives the stated price.

Basis integers 0–4 are documented: US 30/360, actual/actual, actual/360, actual/365 and European 30/360. The source uses the same local day-count helper as ACCRINTM, with actual serial differences for bases 1–3 and 30-day-month arithmetic for 0/4 plus its basis-0 February adjustment. Basis 1 uses the settlement year’s 365/366 denominator. It is not an assumed universal year-fraction algorithm.

Reproducible per-100 pricing sheet

Create MaturityPrice with settlement in B2, maturity in B3 and issue in B4 using the three DATE expressions from the quick answer. Put 6% in B5, 8% in B6 and 0 in B7. In B9 enter =PRICEMAT(B2,B3,B4,B5,B6,B7).

For the same day counts, independently enter =103/1.02-1.5 in B10. Both reference values are 99.480392156863. In a copy change B6 to 0%; the reference price becomes 101.5. In another copy change B5 to 0% while keeping B6 at 8%; the reference price becomes 98.039215686275. These isolate the roles of maturity-interest rate and yield.

Reference prices and source errors

Formula Independent reference result
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,0.08,0) 99.480392156863
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,0,0) 101.500000000000
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0,0.08,0) 98.039215686275
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,-0.04,0) 102.540404040404
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,-4,0) #NUM!
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,-8,0) -104.500000000000
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,0.08,1) 99.482189720214
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,0.08,2) 99.474733173601
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,0.08,3) 99.482189720214
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),0.06,0.08,4) 99.480392156863
=PRICEMAT(DATE(2026,1,15),DATE(2026,7,15),DATE(2026,1,15),6%,8%,0) #NUM!
=PRICEMAT(DATE(2026,7,15),DATE(2026,7,15),DATE(2026,1,15),6%,8%,0) #NUM!
=PRICEMAT(DATE(2026,4,15),DATE(2026,7,15),DATE(2026,1,15),6%,8%,7) #NUM!

The callback requires positive A, DSM, DIM and B. In particular, issue equal to settlement is rejected here because A=0; do not borrow another application’s acceptance rule. Settlement equal to maturity is also rejected. A zero discounting denominator returns #NUM! rather than a numeric price.

Advanced: scale a quote and reconstruct the yield

For face amount 1000, the original per-100 price corresponds to 994.803921568627 before adding accrued interest. The corresponding accrued amount is 15, so their sum is 1009.803921568627. The maturity cash is 1030. Keep all three quantities labeled: multiplying the clean quote by ten does not itself include the accrued amount.

Using p for the per-100 clean price and the same fractions, recover the input yield algebraically as ((103/(p+1.5))-1)/0.25. Substituting the unrounded original reference p returns 0.08. If you first round the quote to 99.48, the recovered yield is approximately 0.080015844722. Retain underlying precision when using a price/yield round-trip as an audit.

This identity is stated for the explicit positive-denominator fixture. It is not a claim that every other yield function uses identical day-count helpers or validation. Do not infer cross-product equivalence from one matched example.

Negative values and troubleshooting

The inspected callback has no explicit nonnegative-rate or nonnegative-yield guard. For this quarter-year fixture, y=-4 makes the denominator zero and is rejected, while y=-8 makes it negative and yields a negative numeric result. Those are implementation-boundary controls, not meaningful recommended market inputs. Validation should therefore enforce the assumptions of the actual use case rather than relying on every implausible number to trigger an error.

Check date order, rate units, basis and the per-100 scale before changing the formula. Use numeric dates and rates; localized parsing, empty-cell coercion, extreme dates, save/reload and installed-build results remain unverified. The calculation illustrates a defined mathematical model and does not advise buying or pricing a real security.