{
  "category": "Financial functions",
  "display_name": "PRICEMAT",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.PRICEMAT",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20430"
      ],
      "larger_numeric": 0,
      "last_bit": 0,
      "matched": 3608,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 3608,
      "unread": 0,
      "worst_ulp": 0
    },
    "detail": "Recorded: 3,608 in the answer bank and 6 workbook cells.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "matches",
    "state_label": "Matches every recorded Excel answer",
    "summary": "Matches all 3,614 recorded answers",
    "workbook_corpus": {
      "cells": 6,
      "matched": 6
    }
  },
  "implementations": [
    {
      "commit": "9e1884369a678158dd82d3d74188daf986995e87",
      "flavour": "excel-compatibility-candidate",
      "language": "Rust",
      "name": "CalcFunc",
      "own_code": [
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/bonds.rs#L145-L148",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bond_core_family.rs#L446-L478"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "catalogue/bonds::or",
        "catalogue/bonds::bond_out",
        "catalogue/financial::date_1900",
        "locale::days_from_civil",
        "locale::civil_from_days",
        "locale::excel_serial_from_ymd",
        "locale::ymd_from_excel_serial",
        "ported/bond_core_family::max_serial",
        "ported/bond_core_family::derr",
        "ported/bond_core_family::dyear",
        "ported/bond_core_family::dim",
        "ported/bond_core_family::act",
        "ported/bond_core_family::basis",
        "ported/bond_core_family::dser",
        "ported/bond_core_family::rate",
        "ported/bond_core_family::d360eu",
        "ported/bond_core_family::less_or_equal_to_a_year_apart",
        "ported/bond_core_family::consider_as_bisestile",
        "ported/bond_core_family::days_in_year_for_mat",
        "ported/bond_core_family::last_day_of_feb",
        "ported/bond_core_family::diff360_us",
        "ported/bond_core_family::days_between_num",
        "ported/bond_core_family::map_bond_core_error_to_ws",
        "ported/excel_numeric::binary_with",
        "ported/excel_numeric::excel_x87_add",
        "ported/excel_numeric::excel_x87_sub",
        "ported/excel_numeric::excel_x87_mul",
        "ported/excel_numeric::excel_x87_div",
        "ported/excel_numeric/x87::mul",
        "ported/excel_numeric/x87::add",
        "ported/excel_numeric/x87::sub",
        "ported/excel_numeric/x87::div"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/bonds.rs#L145-L148",
      "state": "matches",
      "suite": null,
      "summary": "Matches all 3,614 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.PRICEMAT.json",
  "name": "PRICEMAT",
  "notes": [
    {
      "basis": "2,404 of 2,404 recorded rows, with the day counts of FN-PRICEMAT-002. Strict binary64 with the same day counts matches 2,400.",
      "documentation": null,
      "evidence": [
        {
          "commit": "26bb1800d3b349e44d594bed5f8bb589b528ef10",
          "locator": "lines 435-466",
          "note": "recorded answers pinned",
          "path": "crates/calc-func/tests/f3_financial.rs",
          "repository": "DnaCalc"
        },
        {
          "commit": "f1774082865e3a5ab7dec27ead7aeebb73b078c2",
          "locator": "counts",
          "note": "day-count rule against precision",
          "path": "evidence/round23/pricemat-hard/summary.json",
          "repository": "DnaCalc-Research"
        }
      ],
      "functions": [
        "FUNC.PRICEMAT"
      ],
      "inferred": null,
      "kind": "bit-matching-detail",
      "note_id": "FN-PRICEMAT-001",
      "open": [],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "PRICEMAT(38620, 42889, 38168, 0.12180991686638161, 0.019384437069992936, 2)",
          "correct": null,
          "excel": {
            "bits": "0x40687ccaf6a4a5ee",
            "display": "195.89977581174702",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "settlement",
              "value": {
                "bits": "0x40e2db8000000000",
                "display": "38620",
                "kind": "number"
              }
            },
            {
              "name": "maturity",
              "value": {
                "bits": "0x40e4f12000000000",
                "display": "42889",
                "kind": "number"
              }
            },
            {
              "name": "issue",
              "value": {
                "bits": "0x40e2a30000000000",
                "display": "38168",
                "kind": "number"
              }
            },
            {
              "name": "rate",
              "value": {
                "bits": "0x3fbf2eef494503b5",
                "display": "0.12180991686638161",
                "kind": "number"
              }
            },
            {
              "name": "yld",
              "value": {
                "bits": "0x3f93d9838d1165c1",
                "display": "0.019384437069992936",
                "kind": "number"
              }
            },
            {
              "name": "basis",
              "value": {
                "bits": "0x4000000000000000",
                "display": "2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "line 2282, key PRICEMAT|0x40e2db8000000000|0x40e4f12000000000|0x40e2a30000000000|0x3fbf2eef494503b5|0x3f93d9838d1165c1|0x4000000000000000",
            "note": null,
            "path": "cache/oracle-20430/build-20430/PRICEMAT.jsonl.gz",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "PRICEMAT = (100 + (DIM/B)*rate*100) / (1 + (DSM/B)*yld) - (A/B)*rate*100, each operation taken from the x87 unit at precision 64 and stored to binary64.",
      "status": "measured",
      "title": "PRICEMAT formula order on the x87 unit"
    },
    {
      "basis": "One recorded row separates this rule from the standard one: 2,404 of 2,404 against 2,403.",
      "documentation": null,
      "evidence": [
        {
          "commit": "f1774082865e3a5ab7dec27ead7aeebb73b078c2",
          "locator": "counts",
          "note": "day-count rule against precision",
          "path": "evidence/round23/pricemat-hard/summary.json",
          "repository": "DnaCalc-Research"
        },
        {
          "commit": "26bb1800d3b349e44d594bed5f8bb589b528ef10",
          "locator": "lines 435-466",
          "note": "recorded answers pinned",
          "path": "crates/calc-func/tests/f3_financial.rs",
          "repository": "DnaCalc"
        }
      ],
      "functions": [
        "FUNC.PRICEMAT"
      ],
      "inferred": "The order of the two tests is taken from the published ExcelFinancialFunctions getMatFactors rule, which fits; one row cannot pin it alone.",
      "kind": "quirk",
      "note_id": "FN-PRICEMAT-002",
      "open": [],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "PRICEMAT(46376, 52321, 45716, 0.04392789506562811, 0.03266239139487676, 0)",
          "correct": null,
          "excel": {
            "bits": "0x405b4e18ab31a7da",
            "display": "109.22025565957247",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "settlement",
              "value": {
                "bits": "0x40e6a50000000000",
                "display": "46376",
                "kind": "number"
              }
            },
            {
              "name": "maturity",
              "value": {
                "bits": "0x40e98c2000000000",
                "display": "52321",
                "kind": "number"
              }
            },
            {
              "name": "issue",
              "value": {
                "bits": "0x40e6528000000000",
                "display": "45716",
                "kind": "number"
              }
            },
            {
              "name": "rate",
              "value": {
                "bits": "0x3fa67db79160c3a0",
                "display": "0.04392789506562811",
                "kind": "number"
              }
            },
            {
              "name": "yld",
              "value": {
                "bits": "0x3fa0b91ffdb34689",
                "display": "0.03266239139487676",
                "kind": "number"
              }
            },
            {
              "name": "basis",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "line 1455, key PRICEMAT|0x40e6a50000000000|0x40e98c2000000000|0x40e6528000000000|0x3fa67db79160c3a0|0x3fa0b91ffdb34689|0x0000000000000000",
            "note": null,
            "path": "cache/oracle-20430/build-20430/PRICEMAT.jsonl.gz",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "For basis 0, PRICEMAT tests \"end on the 31st gives 30\" before \"start on the last day of February gives 30\"; the US (NASD) 30/360 rule applies the February adjustment first. An issue on 28 February 2025 and maturity on 31 March 2043 gives DIM 6511, not 6510, and moves the price at about 1E-5 relative.",
      "status": "measured",
      "title": "PRICEMAT basis 0 applies the 31st rule before the February rule"
    }
  ],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n### Relationships\n\n\n- **`YIELDMAT`** — the inverse: given the price, recover `yld`. The formula is linear in\n  `1 + (DSM/B) × yld`, so it can be solved in closed form.\n- **[ACCRINTM](FUNC.ACCRINTM.md)** — the accrued-interest term in the same form, over the same span:\n  `ACCRINTM(issue, settlement, rate, 100, basis)`. Whether the two always take the same year length\n  at basis 1 has not been compared.\n- **`PRICE`** — the same question for a security with periodic coupons, with the yield compounded\n  over a schedule.\n- **[PRICEDISC](FUNC.PRICEDISC.md)** — a security that pays no interest and is quoted at a discount.\n  `PRICEMAT` is interest-bearing and quoted at a yield.\n- **[RECEIVED](FUNC.RECEIVED.md)** and [INTRATE](FUNC.INTRATE.md) — the discount-family functions\n  for fully invested securities, which have no accrual term and no issue date.\n- **[YEARFRAC](FUNC.YEARFRAC.md)** and [DAYS360](FUNC.DAYS360.md) — the day counts exposed directly.\n\n\n",
    "how-to-implement": "\n### Numerical notes\n\n**The year length at basis 1.** Excel's `B` comes from the span from *issue to settlement*, not\nfrom settlement to maturity. All 526 basis 1 rows fit this rule, to at least ten significant\nfigures:\n\n- for a span of at most one year, if both dates are in one calendar year, `B` is that year's\n  length; otherwise `B` is 366 if a 29 February lies in the span and 365 if not;\n- for a span of more than one year, `B` is the average length of the calendar years from the issue\n  year to the settlement year, both included.\n\n",
    "quirks": "\n### Result and edge cases\n\n\nReturns `Number`, a price per 100 of face value, excluding accrued interest.\n\n- **`yld = 0` is admissible.** The documented refusal is `yld < 0`, and a recorded row with `yld = 0`\n  returns a number: 105.472… for a 5% rate with 394 days to run on basis 0. With zero yield there is\n  no discounting, and the result is 100 plus the interest still to come.\n- **`rate = 0`** is admissible under Microsoft's wording, which refuses only `rate < 0`. It reduces\n  the formula to a plain simple-yield discount of 100. No recorded row exercises it.\n- **`issue` on or after `settlement`** is not on Microsoft's list, but see Errors below.\n- **The fractional part of a date is dropped.** 208 of the 2,404 rows behind the notes carry a\n  fractional date, and each fits the integer day counts.\n- Empty, missing and error arguments are expected to follow the shared call model; see\n  [The value universe](../model/01-value-universe.md). No reading records this for `PRICEMAT`.\n\n\n\n### Errors\n\n\nAs documented on Microsoft's `PRICEMAT` page, with what the recorded rows add (Excel 16.0 build\n20430, Windows 64-bit, AMD Ryzen 7 4800H):\n\n| Error | Condition | Source |\n|---|---|---|\n| `#VALUE!` | `settlement`, `maturity` or `issue` is not a valid date | Documented; not measured |\n| `#NUM!` | `rate < 0` or `yld < 0` | Documented; one row with `rate < 0` |\n| `#NUM!` | `basis < 0` or `basis > 4` | Documented; not measured |\n| `#NUM!` | `settlement ≥ maturity` | Documented; one row with equal dates |\n| `#NUM!` | `issue` after `settlement` | Not documented; one row |\n\nMicrosoft's list says nothing about the order of `issue` and `settlement`, and the page checks\n`issue` only for validity. One recorded row, with issue 22 January 2010 and settlement 14 October\n2009, returns `#NUM!`. Both statements are shown because they differ. That row does not settle\n`issue = settlement`.\n\n",
    "sources": "- Microsoft, \"PRICEMAT function\" —\n  <https://support.microsoft.com/en-us/office/pricemat-function-52c3b4da-bc7e-476a-989f-a95f675cae77>\n  (syntax, argument meanings, the day-count basis table, the serial-date and truncation remarks,\n  the `#VALUE!` and `#NUM!` conditions, the definitions of `B`, `DSM`, `DIM` and `A`, and the worked\n  example). The equation on that page is an image and was not readable, so no formula here is\n  sourced from it.\n- The function notes on this page, and the recorded Excel rows and readings their evidence lists\n  cite. The error rows, the `yld = 0` row, the fractional-date count, `DSM = DIM − A` and the basis 1\n  year-length rule were read from those 2,404 rows for this page and go beyond the notes' own text;\n  they carry the same Excel build, platform and CPU.\n- Handbook evidence record `EV-FIN-0032` — the record naming this surface.\n- Handbook, [The value universe](../model/01-value-universe.md) and\n  [Coercion and lifting](../model/02-coercion-and-lifting.md).\n- Handbook, [Claim language and honesty](../model/06-claim-language.md) — the scoping rules this\n  page's claims are written under.\n- Handbook projections `data/functions/FUNC.PRICEMAT.json` and\n  `data/presence/FUNC.PRICEMAT.json` (arity, classification axes, implementing module and sibling\n  set).\n\n",
    "version-differences": "The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.\n\n| Excel 16.0 build | Platform and CPU | Captured inputs |\n|---|---|---:|\n| 20430 | Windows, 64-bit, AMD Ryzen 7 4800H with Radeon Graphics | 2,404 |\n\nThe record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.\n\n[Recorded environments and comparison details](https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.PRICEMAT.json).",
    "what-it-does": "\n`PRICEMAT(settlement, maturity, issue, rate, yld, [basis])` returns the **clean price per 100 of\nface value** of a security that pays all of its interest at maturity. Interest accrues at `rate`\nfrom `issue`, the buyer settles part-way through, and the whole of it arrives with the principal.\n\nWith `B` the year length under the chosen `basis`, and three day counts\n\n- `A`, from issue to settlement,\n- `DIM`, from issue to maturity,\n- `DSM`, from settlement to maturity,\n\nthe price is\n\n    PRICEMAT = (100 + (DIM/B) × rate × 100) / (1 + (DSM/B) × yld) − (A/B) × rate × 100\n\nMicrosoft's page prints its equation as an image that could not be read, and defines the four\nterms in words. The expression above is the one the notes below record from Excel's own answers.\n\nRead from left to right, it has three parts:\n\n- `100 + (DIM/B) × rate × 100` is the single payment at maturity: principal plus all interest since\n  issue.\n- Dividing by `1 + (DSM/B) × yld` discounts that payment back to settlement at simple interest, not\n  compound. The yield applies only to the span the buyer actually holds.\n- `(A/B) × rate × 100` removes the interest already accrued, which is paid to the seller separately.\n  What is left is the price quoted without accrued interest.\n\nThe interest is simple throughout. A security with `rate = yld` does not price at exactly 100, even\nthough the two rates agree, because the numerator earns from issue and the denominator discounts\nonly from settlement. Microsoft's example shows this: settlement 15 February 2008, maturity 13\nApril 2008, issue 11 November 2007, rate 6.1%, yield 6.1%, basis 0. Here `A = 94`, `DIM = 152`,\n`DSM = 58`, and\n\n    (100 + 152/360 × 6.1) / (1 + 58/360 × 0.061) − 94/360 × 6.1 = 99.98449…\n\nwhich Microsoft shows as $99.98.\n\n\n\n### Arguments\n\n\n| Argument | Meaning | Default |\n|---|---|---|\n| `settlement` | The date the buyer purchases the security, after its issue date. Required. | — |\n| `maturity` | The date the security expires. Required. | — |\n| `issue` | The security's issue date. Required. | — |\n| `rate` | The security's interest rate at the issue date, as a decimal fraction. Required. | — |\n| `yld` | The security's annual yield, as a decimal fraction. Required. | — |\n| `basis` | The day-count basis. Optional. | 0 |\n\nNote the order: `issue` is the **third** argument, after `maturity`, although it comes first in time.\nA call that passes the dates chronologically puts `issue` in the settlement slot, and the\n`#NUM!` it then produces says nothing about which argument is out of place.\n\nThe documented basis values are the standard five, as on the [DISC](FUNC.DISC.md) page: `0` or\nomitted = US (NASD) 30/360, `1` = Actual/actual, `2` = Actual/360, `3` = Actual/365, `4` = European\n30/360. All three dates and `basis` are documented as truncated to integers.\n\nMicrosoft's example labels `rate` \"Percent semiannual coupon\". Nothing in the function is\nsemiannual: there is one interest payment, at maturity. The label is best ignored.\n\nThere is no redemption argument. The security redeems at 100 plus interest, and the page's result is\nper 100 of face value.\n\nNumeric coercion of the argument slots follows the shared call model; see\n[Coercion and lifting](../model/02-coercion-and-lifting.md).\n\n\n"
  },
  "signature": {
    "display": "PRICEMAT(settlement, maturity, issue, rate, yld, [basis])",
    "parameters": [
      {
        "description": null,
        "name": "settlement",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "maturity",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "issue",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "rate",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "yld",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "basis",
        "optional": true,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 6,
        "min": 5
      },
      "category": "Financial functions",
      "classification": {
        "arg_preparation_profile": "ValuesOnlyPreAdapter",
        "coercion_lift_profile": "Custom",
        "determinism_class": "Deterministic",
        "error_collapse_profile": "None",
        "fec_dependency_profile": "None",
        "host_interaction_class": "None",
        "kernel_signature_class": "Custom",
        "rich_value_usage": "RichBlind",
        "surface_fec_dependency_profile": "RefOnly",
        "thread_safety_class": "SafePure",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "Price, per 100 of face value, of a security whose interest is all paid at maturity",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns the price per $100 face value of a security that pays interest at maturity",
        "microsoft_url": "https://support.microsoft.com/en-us/office/pricemat-function-52c3b4da-bc7e-476a-989f-a95f675cae77"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "PRICEMAT"
        },
        {
          "locale": "bg-BG",
          "name": "PRICEMAT"
        },
        {
          "locale": "cs-CZ",
          "name": "PRICEMAT"
        },
        {
          "locale": "da-DK",
          "name": "KURS.UDLØB"
        },
        {
          "locale": "de-DE",
          "name": "PRICEMAT"
        },
        {
          "locale": "el-GR",
          "name": "PRICEMAT"
        },
        {
          "locale": "en-AU",
          "name": "PRICEMAT"
        },
        {
          "locale": "en-GB",
          "name": "PRICEMAT"
        },
        {
          "locale": "en-US",
          "name": "PRICEMAT"
        },
        {
          "locale": "es-ES",
          "name": "PRECIO.VENCIMIENTO"
        },
        {
          "locale": "et-EE",
          "name": "PRICEMAT"
        },
        {
          "locale": "fi-FI",
          "name": "HINTA.LUNASTUS"
        },
        {
          "locale": "fr-FR",
          "name": "PRIX.TITRE.ECHEANCE*"
        },
        {
          "locale": "he-IL",
          "name": "PRICEMAT"
        },
        {
          "locale": "hr-HR",
          "name": "PRICEMAT"
        },
        {
          "locale": "hu-HU",
          "name": "ÁR.LEJÁRAT"
        },
        {
          "locale": "id-ID",
          "name": "PRICEMAT"
        },
        {
          "locale": "it-IT",
          "name": "PRICEMAT"
        },
        {
          "locale": "ja-JP",
          "name": "PRICEMAT"
        },
        {
          "locale": "ko-KR",
          "name": "PRICEMAT"
        },
        {
          "locale": "lt-LT",
          "name": "PRICEMAT"
        },
        {
          "locale": "lv-LV",
          "name": "PRICEMAT"
        },
        {
          "locale": "nb-NO",
          "name": "PRICEMAT"
        },
        {
          "locale": "nl-NL",
          "name": "PRIJS.VERVALDAG"
        },
        {
          "locale": "pl-PL",
          "name": "CENA.WYKUP"
        },
        {
          "locale": "pt-BR",
          "name": "PRICEMAT"
        },
        {
          "locale": "pt-PT",
          "name": "PREÇOVENC"
        },
        {
          "locale": "ro-RO",
          "name": "PRICEMAT"
        },
        {
          "locale": "ru-RU",
          "name": "ЦЕНАПОГАШ"
        },
        {
          "locale": "sk-SK",
          "name": "PRICEMAT"
        },
        {
          "locale": "sl-SI",
          "name": "PRICEMAT"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "PRICEMAT"
        },
        {
          "locale": "sv-SE",
          "name": "PRISFÖRF"
        },
        {
          "locale": "th-TH",
          "name": "PRICEMAT"
        },
        {
          "locale": "tr-TR",
          "name": "DEĞERVADE işlevi"
        },
        {
          "locale": "uk-UA",
          "name": "PRICEMAT"
        },
        {
          "locale": "vi-VN",
          "name": "PRICEMAT"
        },
        {
          "locale": "zh-CN",
          "name": "PRICEMAT"
        },
        {
          "locale": "zh-HK",
          "name": "PRICEMAT"
        },
        {
          "locale": "zh-TW",
          "name": "PRICEMAT"
        }
      ],
      "signature": {
        "display": "PRICEMAT(settlement, maturity, issue, rate, yld, [basis])",
        "parameters": [
          {
            "description": null,
            "name": "settlement",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "maturity",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "issue",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "rate",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "yld",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "basis",
            "optional": true,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "PRICEMAT",
      "version_marker": null,
      "xlcall": {
        "code": "431",
        "symbol": "xlfPricemat"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/pricemat-function-52c3b4da-bc7e-476a-989f-a95f675cae77"
  },
  "try_it": {
    "formula": "=PRICEMAT(38620, 42889, 38168, 0.12180991686638161, 0.019384437069992936, 2)"
  },
  "url": "https://handbook.dnacalc.com/functions/PRICEMAT.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "PRICEMAT(38620, 42889, 38168, 0.12180991686638161, 0.019384437069992936, 2) returned 195.89977581174702 (0x40687ccaf6a4a5ee). PRICEMAT(46376, 52321, 45716, 0.04392789506562811, 0.03266239139487676, 0) returned 109.22025565957247 (0x405b4e18ab31a7da). Inputs were supplied through cells using Value2. These are controls from this environment, not a same-input comparison with another build.",
      "excel_build": "16.0 build 20430",
      "observations": [
        {
          "call": "PRICEMAT(38620, 42889, 38168, 0.12180991686638161, 0.019384437069992936, 2)",
          "excel": {
            "bits": "0x40687ccaf6a4a5ee",
            "display": "195.89977581174702",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "settlement",
              "value": {
                "bits": "0x40e2db8000000000",
                "display": "38620",
                "kind": "number"
              }
            },
            {
              "name": "maturity",
              "value": {
                "bits": "0x40e4f12000000000",
                "display": "42889",
                "kind": "number"
              }
            },
            {
              "name": "issue",
              "value": {
                "bits": "0x40e2a30000000000",
                "display": "38168",
                "kind": "number"
              }
            },
            {
              "name": "rate",
              "value": {
                "bits": "0x3fbf2eef494503b5",
                "display": "0.12180991686638161",
                "kind": "number"
              }
            },
            {
              "name": "yld",
              "value": {
                "bits": "0x3f93d9838d1165c1",
                "display": "0.019384437069992936",
                "kind": "number"
              }
            },
            {
              "name": "basis",
              "value": {
                "bits": "0x4000000000000000",
                "display": "2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, AMD Ryzen 7 4800H"
        },
        {
          "call": "PRICEMAT(46376, 52321, 45716, 0.04392789506562811, 0.03266239139487676, 0)",
          "excel": {
            "bits": "0x405b4e18ab31a7da",
            "display": "109.22025565957247",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "settlement",
              "value": {
                "bits": "0x40e6a50000000000",
                "display": "46376",
                "kind": "number"
              }
            },
            {
              "name": "maturity",
              "value": {
                "bits": "0x40e98c2000000000",
                "display": "52321",
                "kind": "number"
              }
            },
            {
              "name": "issue",
              "value": {
                "bits": "0x40e6528000000000",
                "display": "45716",
                "kind": "number"
              }
            },
            {
              "name": "rate",
              "value": {
                "bits": "0x3fa67db79160c3a0",
                "display": "0.04392789506562811",
                "kind": "number"
              }
            },
            {
              "name": "yld",
              "value": {
                "bits": "0x3fa0b91ffdb34689",
                "display": "0.03266239139487676",
                "kind": "number"
              }
            },
            {
              "name": "basis",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, AMD Ryzen 7 4800H"
        }
      ],
      "platform": "Windows 64-bit, AMD Ryzen 7 4800H",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-PRICEMAT-001.json",
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-PRICEMAT-002.json"
      ]
    },
    {
      "behaviour": "2,404 captured inputs are indexed for this environment. Capture dates: 2026-09-24 to 2026-09-25. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 20430",
      "platform": "Windows, 64-bit, AMD Ryzen 7 4800H with Radeon Graphics",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.PRICEMAT.json"
      ]
    }
  ]
}