Source: https://guthlabs.ai/docs/instruments/lease-vs-buy-comparator/

instrument / verified-clean

# Lease vs Buy Comparator

The current ledger marks this instrument verified clean within the source-bound verification corpus.

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

## Inspectable records

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

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

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

**Tranche**: tranche-5

**Evidence ID**: t5-146

**Ledger rows**: 1

No ledger note is attached.

## Review findings

Educational estimate only; not individualized investment, tax, accounting, or legal advice. The specification needs an explicit cash-flow convention, treatment of purchase price and financing, timing convention, complete lease-cost fields, rate-period conversion rules, and a precise breakeven definition before implementation can be verified as production-ready.

### Formula and scope findings

- The buy formula is not standard as written: resale_PV must be subtracted once at the terminal period, not inside every summation term. Standard form is buy_NPV = upfront purchase cash flow + Σ(payment_t + maintenance_t)/(1+r)^t - resale_value/(1+r)^T.

- The purchase price is listed as an input but is absent from the buy_NPV formula. It is unclear whether payments already include the purchase price or only represent loan installments.

- The lease formula omits common lease cash flows such as an upfront payment, acquisition fee, deposit, end-of-term charges, purchase option, mileage charges, and lease-specific maintenance or insurance.

- The formula does not define whether payments occur at the beginning or end of each period.

- The output breakeven point is not defined or computable from the supplied formulas. It could mean equal cumulative undiscounted cost, equal discounted cost, or the lease payment that makes both NPVs equal.

- The input says maintenance deltas, while the formula uses maintenance amounts. The comparator must define whether maintenance is an incremental lease-versus-buy difference or an absolute cash flow for each option.

### Unit assumptions

- For the test vectors, r is an effective discount rate per cash-flow period and t starts at 1 for end-of-period cash flows.

- Resale value is received once at the end of the final period and is discounted from that terminal period.

- The test vectors interpret buy payments as total scheduled acquisition-related cash outflows; purchase_price is shown as an input but is not added because the supplied formula does not specify how to combine it with payments.

- For the monthly vector, r=0.01 is an effective monthly rate, not an annual 12% rate. An annual rate must be converted before applying the formula.

- All monetary values use the same currency and nominal/real-price basis; no taxes, inflation, financing fees, or tax-treatment differences are included unless explicitly entered.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The valid-looking discount-rate input r=-1 creates zero discount denominators and undefined NPVs unless explicitly rejected. A separate resale-value sign ambiguity can also reverse the recommendation if the interface does not specify whether resale is entered as positive proceeds or as a signed cash flow.

## 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": {
    "purchase_price": 30000,
    "buy_payments": [
      10000,
      10000,
      10000
    ],
    "buy_maintenance": [
      1000,
      2100,
      3200
    ],
    "resale_value": 13310,
    "lease_payments": [
      8000,
      8000,
      8000
    ],
    "discount_rate_per_period": 0.1,
    "periods": 3,
    "period_unit": "year"
  },
  "expected_outputs": {
    "buy_NPV": 19917.3554,
    "lease_NPV": 19894.8159,
    "lower_NPV": "lease"
  },
  "working": "Buy: t1=(10000+1000)/1.10=11000/1.10=10000.0000; t2=(10000+2100)/1.10^2=12100/1.21=10000.0000; t3 operating cash flow=(10000+3200)/1.10^3=13200/1.331=9917.3554; resale PV=13310/1.331=10000.0000; buy_NPV=10000.0000+10000.0000+9917.3554-10000.0000=19917.3554. Lease: 8000/1.10=7272.7273; 8000/1.21=6611.5702; 8000/1.331=6010.5184; lease_NPV=7272.7273+6611.5702+6010.5184=19894.8159."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

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

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche5/tranche5-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
