Products

PRICEMAT function

PRO

The PRICEMAT function in Jspreadsheet Formulas Pro is a financial tool that calculates the price per $100 face value of a security that pays interest only at the point of maturity. This is useful for understanding the cost of securities that do not pay periodic interest. By using this formula, you can accurately determine the price you would pay today for a security that will only provide returns at the end of its term.

Documentation

Returns the price per $100 face value of a security that pays interest at maturity.

Category

Financial

Syntax

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

Parameter Description
settlement The settlement date of the security.
maturity The maturity date of the security.
issue The issue date of the security.
rate The annual interest rate of the security.
yld The annual yield of the security.
[basis] Optional. The day count basis to use for calculating bond interest. If omitted, defaults to 0 (US (NASD) 30/360).

Behavior

The PRICEMAT function calculates the price per $100 face value of a security that pays interest at maturity. It requires six arguments: settlement date, maturity date, issue date, rate, yield, and redemption value.

  • If the settlement date, maturity date, or issue date is not a valid date, the function will return a #VALUE! error.
  • If any of the required fields are left empty, the function will return a #NUM! error.
  • This function does not handle text inputs, it expects numerical and date inputs.
  • Boolean values are treated as numbers (TRUE = 1, FALSE = 0), which may lead to unexpected results if passed as parameters.
  • If the provided issue date is after the settlement date, the function will return a #NUM! error.
  • If the yield, rate, or redemption value is less than 0, the function will return a #NUM! error.

Common Errors

Error Description
#VALUE! Occurs if any of the provided arguments are not of the expected data type.
#NUM! Occurs if any of the numerical arguments are less than 0, or if the issue date is after the settlement date, or any required fields are left empty.

Best practices

  • Always ensure that the settlement date, maturity date and issue date are valid dates.
  • Ensure that the yield and rate are all positive values.
  • Be careful with the order of the arguments. The first argument should be the settlement date, followed by the maturity date, issue date, rate, yield, and finally the redemption value.
  • Always check your function for typos or errors in syntax to avoid the #NAME? error. The correct syntax is PRICEMAT(settlement, maturity, issue, rate, yld, [basis]).

Usage

A few examples using the PRICEMAT function.

// Basic usage with default basis (0 = US 30/360)
PRICEMAT("2023-01-01","2043-01-01","2022-01-01",0.06,0.08)
// Result: 80.92307

// Using Actual/Actual basis (basis = 1)
PRICEMAT("2023-01-01","2028-01-01","2022-01-01",0.05,0.045,1)
// Result: 101.1229

// Short-term bond, with higher yield than rate
PRICEMAT("2023-01-01","2024-01-01","2022-01-01",0.04,0.06,0)
// Result: 97.8867

Interactive Spreadsheet Demo

<html>
<script src="https://jspreadsheet.com/v11/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v11/jspreadsheet.css" type="text/css" />

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<script src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro/dist/index.min.js"></script>

<div id="spreadsheet"></div>

<script>
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('N2QzOGFmOTQ2MTVlYTJjYzY5YWU2MjkxOWQ2MDgyYTBlNjkwNDEzOGRjZDA4ZWQxZWQzMGRlM2M1YTkzZjJlNjllMDUwYjNjOWMwNWQzOTJhM2I2YTZiYTE1ZDBlMGZmODQzNjdmMWZhZjBmOWRkMTk4ODU0M2M3YWMxNGQ1YTAsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXdPVEF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
  worksheets: [{
    data: [
    [
        "Settlement",
        "Maturity",
        "Issue",
        "Rate",
        "Yield",
        "Price per $100"
    ],
    [
        "2023-01-15",
        "2025-01-15",
        "2022-01-15",
        0.05,
        0.06,
        "=PRICEMAT(A2,B2,C2,D2,E2)"
    ],
    [
        "2023-03-01",
        "2024-03-01",
        "2022-03-01",
        0.04,
        0.045,
        "=PRICEMAT(A3,B3,C3,D3,E3)"
    ],
    [
        "2023-06-15",
        "2026-06-15",
        "2022-06-15",
        0.065,
        0.07,
        "=PRICEMAT(A4,B4,C4,D4,E4)"
    ]
]
  }]
});
</script>
</html>
import React, { useRef } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import formula from "@jspreadsheet/formula-pro";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";

// Set license
jspreadsheet.setLicense('N2QzOGFmOTQ2MTVlYTJjYzY5YWU2MjkxOWQ2MDgyYTBlNjkwNDEzOGRjZDA4ZWQxZWQzMGRlM2M1YTkzZjJlNjllMDUwYjNjOWMwNWQzOTJhM2I2YTZiYTE1ZDBlMGZmODQzNjdmMWZhZjBmOWRkMTk4ODU0M2M3YWMxNGQ1YTAsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXdPVEF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default function App() {
    // Spreadsheet array of worksheets
    const spreadsheet = useRef();

    // Worksheet data
    const data = [
    [
        "Settlement",
        "Maturity",
        "Issue",
        "Rate",
        "Yield",
        "Price per $100"
    ],
    [
        "2023-01-15",
        "2025-01-15",
        "2022-01-15",
        0.05,
        0.06,
        "=PRICEMAT(A2,B2,C2,D2,E2)"
    ],
    [
        "2023-03-01",
        "2024-03-01",
        "2022-03-01",
        0.04,
        0.045,
        "=PRICEMAT(A3,B3,C3,D3,E3)"
    ],
    [
        "2023-06-15",
        "2026-06-15",
        "2022-06-15",
        0.065,
        0.07,
        "=PRICEMAT(A4,B4,C4,D4,E4)"
    ]
];

    // Render component
    return (
        <Spreadsheet ref={spreadsheet}>
            <Worksheet data={data} />
        </Spreadsheet>
    );
}
<template>
    <Spreadsheet ref="spreadsheet">
        <Worksheet :data="data" />
    </Spreadsheet>
</template>

<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
import formula from "@jspreadsheet/formula-pro";

// Set license
jspreadsheet.setLicense('N2QzOGFmOTQ2MTVlYTJjYzY5YWU2MjkxOWQ2MDgyYTBlNjkwNDEzOGRjZDA4ZWQxZWQzMGRlM2M1YTkzZjJlNjllMDUwYjNjOWMwNWQzOTJhM2I2YTZiYTE1ZDBlMGZmODQzNjdmMWZhZjBmOWRkMTk4ODU0M2M3YWMxNGQ1YTAsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXdPVEF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default {
    components: {
        Spreadsheet,
        Worksheet,
    },
    data() {
        // Worksheet data
        const data = [
    [
        "Settlement",
        "Maturity",
        "Issue",
        "Rate",
        "Yield",
        "Price per $100"
    ],
    [
        "2023-01-15",
        "2025-01-15",
        "2022-01-15",
        0.05,
        0.06,
        "=PRICEMAT(A2,B2,C2,D2,E2)"
    ],
    [
        "2023-03-01",
        "2024-03-01",
        "2022-03-01",
        0.04,
        0.045,
        "=PRICEMAT(A3,B3,C3,D3,E3)"
    ],
    [
        "2023-06-15",
        "2026-06-15",
        "2022-06-15",
        0.065,
        0.07,
        "=PRICEMAT(A4,B4,C4,D4,E4)"
    ]
]

        return {
            data
        };
    }
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
import * as formula from "@jspreadsheet/formula-pro";

// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('N2QzOGFmOTQ2MTVlYTJjYzY5YWU2MjkxOWQ2MDgyYTBlNjkwNDEzOGRjZDA4ZWQxZWQzMGRlM2M1YTkzZjJlNjllMDUwYjNjOWMwNWQzOTJhM2I2YTZiYTE1ZDBlMGZmODQzNjdmMWZhZjBmOWRkMTk4ODU0M2M3YWMxNGQ1YTAsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXdPVEF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

@Component({
    standalone: true,
    selector: "app-root",
    template: `<div #spreadsheet></div>`
})
export class AppComponent {
    @ViewChild("spreadsheet") spreadsheet: ElementRef;
    // Worksheets
    worksheets: jspreadsheet.worksheetInstance[];

    // Create a new data grid
    ngAfterViewInit() {
        // Create spreadsheet
        this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
            worksheets: [{
                data: [
    [
        "Settlement",
        "Maturity",
        "Issue",
        "Rate",
        "Yield",
        "Price per $100"
    ],
    [
        "2023-01-15",
        "2025-01-15",
        "2022-01-15",
        0.05,
        0.06,
        "=PRICEMAT(A2,B2,C2,D2,E2)"
    ],
    [
        "2023-03-01",
        "2024-03-01",
        "2022-03-01",
        0.04,
        0.045,
        "=PRICEMAT(A3,B3,C3,D3,E3)"
    ],
    [
        "2023-06-15",
        "2026-06-15",
        "2022-06-15",
        0.065,
        0.07,
        "=PRICEMAT(A4,B4,C4,D4,E4)"
    ]
]
            }]
        });
    }
}