Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

Rent vs Buy (Home) Comparator mechanism

The inspectable method record for Rent vs Buy (Home) Comparator, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The honest educational-estimate label is appropriate, but implementation should not ship until the model defines mortgage amortization, cash-flow timing, discounting for both paths, appreciation and sale proceeds, transaction costs, percentage bases, and a precise breakeven rule. Under the current specification, the test vectors use explicit annual dollar schedules solely to demonstrate the literal arithmetic; they do not validate the economic model.

  • The mortgage rate alone cannot determine mortgage payments or principal_paid; loan term, compounding frequency, payment frequency, and amortization method are missing.
  • buy_cost does not discount its annual cash flows, while rent_cost is discounted; this makes the comparison internally inconsistent unless all buy terms are explicitly defined as present values.
  • Subtracting principal_paid from mortgage produces an interest-like cost only when mortgage is the total payment; this is not stated and can double-count or omit cash flows.
  • appreciation_PV is undefined. Home appreciation is normally modeled as a future sale value or equity offset, including sale timing and transaction costs, not as an unexplained annual subtraction.
  • Property tax, insurance, and maintenance percentages lack a defined base, such as original price, current home value, or remaining balance.
  • The rent formula does not specify whether t starts at 0 or 1 and whether rent is paid at the beginning or end of each period.

Units and conventions

  • For the test calculations, all periods are annual and t runs from 1 through the stated horizon.
  • down is a dollar amount equal to home price multiplied by down percentage.
  • mortgage is an annual total mortgage payment; principal_paid is an annual dollar amount included within that payment.
  • tax, insurance, and maintenance are annual dollar amounts, not percentages, because the specification does not define their percentage bases.
  • appreciation_PV is treated literally as an already-present-valued annual dollar offset supplied for each year; this is only a test convention, not a validated real-estate model.
  • Rent is paid at the end of each year, with year-1 rent equal to rent multiplied by (1+growth).

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "home_price": 300000,
    "down": 60000,
    "horizon_years": 3,
    "annual_mortgage_payment": 16000,
    "annual_tax": 3600,
    "annual_insurance": 1200,
    "annual_maintenance": 3000,
    "principal_paid_by_year": [
      6000,
      6200,
      6400
    ],
    "appreciation_PV_by_year": [
      3000,
      2890,
      2780
    ],
    "annual_rent": 24000,
    "rent_growth": 0.02,
    "discount_rate": 0.04
  },
  "expected_outputs": {
    "buy_cost": 104130,
    "rent_cost": 69266.1,
    "breakeven_year": null
  },
  "working": "Buy year 1 = 16000 + 3600 + 1200 + 3000 - 6000 - 3000 = 14800. Buy year 2 = 16000 + 3600 + 1200 + 3000 - 6200 - 2890 = 14710. Buy year 3 = 16000 + 3600 + 1200 + 3000 - 6400 - 2780 = 14620. Buy total = 60000 + 14800 + 14710 + 14620 = 104130. Rent year 1 PV = 24000 x 1.02 / 1.04 = 23538.46. Rent year 2 PV = 24000 x 1.02^2 / 1.04^2 = 23085.80. Rent year 3 PV = 24000 x 1.02^3 / 1.04^3 = 22641.84. Rent total = 23538.46 + 23085.80 + 22641.84 = 69266.10. Breakeven is null because the specification does not define its comparison rule or sale treatment."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The zero mortgage-rate case produces 0/0 under the ordinary mortgage-payment formula, and the zero-ratio rent case requires a separate geometric-series branch. The specification also leaves mortgage term, time indexing, and appreciation sign conventions insufficiently defined.

Other records

Sources and evidence

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

  • VERIFIED_LEDGER.json
  • evidence-tranche5/tranche5-results.json
  • BOUNDARY_HAZARD_CATALOG.json