Source: https://guthlabs.ai/docs/instruments/refinance-break-even/mechanism/

instrument mechanism / verified-clean

# Refinance Break-Even mechanism

The inspectable method record for Refinance Break-Even, kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

The core simple-payback formula is valid conditionally, but the specification needs explicit monthly payment inputs, same-period unit validation, denominator handling, and a defined remaining horizon and lifetime-savings formula before release.

- breakeven_months=closing_costs/(old_PMT-new_PMT) is the standard simple-payback formula only when both PMTs are positive, expressed over the same period, and the refinance produces a strictly positive payment reduction.

- The spec claims an output of lifetime savings but provides no formula or required time horizon. It is ambiguous whether lifetime savings means gross payment savings or net savings after closing costs.

- The input description 'old loan terms, new loan terms' is insufficiently specific: the calculator must receive comparable monthly payment amounts, and a defined remaining-payment horizon is required for lifetime savings.

## Units and conventions

- old_PMT and new_PMT are total monthly payments in USD, measured on the same schedule; they include the same categories of principal, interest, and any recurring escrow or fees being compared.

- closing_costs are one-time USD costs, converted to USD before division; they are not annual, monthly, or percentage values.

- For the test vectors, lifetime savings is defined as net savings over the stated remaining horizon: monthly savings multiplied by horizon months, minus closing costs.

- No tax effects, investment returns on cash, prepayment penalties, refinancing points, changes in insurance or escrow, or differences in loan balance or remaining term are included.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "old_monthly_payment_usd": 2400,
    "new_monthly_payment_usd": 2100,
    "closing_costs_usd": 6000,
    "remaining_horizon_months": 120
  },
  "expected_outputs": {
    "monthly_savings_usd": 300,
    "breakeven_months": 20,
    "lifetime_net_savings_usd": 30000
  },
  "working": "Monthly savings = 2,400 - 2,100 = 300 USD/month. Breakeven = 6,000 / 300 = 20 months. Gross payment savings over 120 months = 300 × 120 = 36,000 USD. Net lifetime savings = 36,000 - 6,000 = 30,000 USD."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The instrument produces an undefined breakeven when old and new payments are equal because the formula divides by zero. It also needs explicit handling of the zero-interest payment branch and an explicit savings sign convention.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/refinance-break-even/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/refinance-break-even/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/refinance-break-even/qualification/>)

## Sources and evidence

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

- `VERIFIED_LEDGER.json`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
