Source: https://guthlabs.ai/docs/instruments/amortization-schedule/

instrument / verified-with-binding-errata

# Amortization Schedule

The current ledger marks this instrument verified with errata that must be applied at binding time.

Status: **VERIFIED_WITH_ERRATA**Lifecycle: **verified-with-binding-errata**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/amortization-schedule/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/amortization-schedule/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/amortization-schedule/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/amortization-schedule/qualification/>)

## Ledger state

The current ledger marks this instrument verified with errata that must be applied at binding time.

**Area**: Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)

**Tranche**: tranche-3

**Evidence ID**: t3-008

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The core balance iteration is standard under clearly defined periodic-rate and payment conventions, but the specification omits the PMT formula, rate and term frequencies, extra-payment behavior, final-payment handling, rounding policy, and the data needed for a payoff date. One test vector exposed an arithmetic inconsistency in the initial extra-payment working; the corrected period balances are 659.98, 316.56, and 0.00.

### Formula and scope findings

- The iterative formulas are standard only when r is the interest rate per payment period and PMT is the total payment applied in that period.

- PMT is referenced but no formula or input definition is provided. For a fully amortizing fixed-rate loan, the standard formula is PMT=P*r/(1-(1+r)^(-n)) when r is nonzero, and PMT=P/n when r=0.

- The treatment of the optional extra payment is undefined: it must specify whether extra-payment is added to PMT every period, applied only to principal, and whether the scheduled term is shortened.

- The final payment must be capped at the remaining balance plus that period's interest; otherwise the iterative formula can produce a negative balance or overpayment.

- The payoff date cannot be computed from principal, rate, term, and extra-payment alone; an origination date and payment-calendar convention are required.

### Unit assumptions

- The test vectors use monthly payments and a monthly periodic rate unless explicitly noted.

- For annual nominal rates, the monthly rate is annual_rate/12; this assumes a nominal rate compounded monthly, not an effective annual rate.

- Term is measured in payment periods.

- Amounts are currency units rounded to the nearest cent after each period.

- PMT is computed using the fixed-payment annuity formula, and the final payment is adjusted downward to exactly clear the balance.

- No payoff date is expected in these vectors because no origination date or calendar convention is supplied.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

A term of zero makes the payment calculation divide by zero and must be rejected. The specification also omits payment frequency and rate convention, so identical-looking rate and term inputs can produce materially different schedules.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "inputs": {
    "principal": 1200,
    "annual_rate": 0,
    "payment_frequency": "monthly",
    "term_periods": 3,
    "extra_payment": 0,
    "rounding": "nearest cent"
  },
  "expected_outputs": {
    "table": [
      {
        "period": 1,
        "interest": 0,
        "principal": 400,
        "balance": 800
      },
      {
        "period": 2,
        "interest": 0,
        "principal": 400,
        "balance": 400
      },
      {
        "period": 3,
        "interest": 0,
        "principal": 400,
        "balance": 0
      }
    ],
    "payoff_period": 3,
    "payoff_date": null
  },
  "working": "Monthly rate r=0.00/12=0.00. PMT=P/n=1200.00/3=400.00. Period 1: interest=1200.00*0.00=0.00; principal=400.00-0.00=400.00; balance=1200.00-400.00=800.00. Period 2: interest=800.00*0.00=0.00; principal=400.00; balance=800.00-400.00=400.00. Period 3: interest=400.00*0.00=0.00; principal=400.00; balance=400.00-400.00=0.00."
}
````

## Related workflows

[Mortgage Suiteschedule](<https://guthlabs.ai/docs/instrument-workflows/mortgage-suite/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json · VERIFIED_WITH_ERRATA`

- `evidence-tranche3/tranche3-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
