Page actions
instrument mechanism / verified-with-binding-errata
Mortgage vs Rent Comparator mechanism
The inspectable method record for Mortgage vs Rent Comparator, kept separate from implementation and qualification.
Model scope
The mortgage formula is conditionally standard, but the overall comparator is not financially well-defined enough to pass. The rent opportunity-cost term and treatment of the down payment are materially incorrect or at least dangerously ambiguous. The instrument should specify cash-flow timing, periodic units, equity and appreciation definitions, sale assumptions, discounting or ending-wealth methodology, and a deterministic break-even algorithm. The existing illustrative-only and not-financial-advice label is appropriate but should remain prominent, with sensitivity analysis for appreciation, rent growth, and investment returns.
- The mortgage-payment formula is standard only when r is the periodic interest rate and n is the total number of payment periods; with an annual quoted rate and monthly payments, the formula must use r=annual_rate/12 and n=12×term_years.
- At r=0 the stated mortgage formula divides by zero; the required limiting case is monthly_mortgage=P/n.
- The rent formula is ambiguous about whether t runs from 0 through horizon_months−1 or from 1 through horizon_months, and whether rent_growth_rate is monthly or annual.
- Adding invested_downpayment_growth as DP×(1+i)^T treats the entire future value as a cost and also omits the initial down payment from total_buy_cost. For a cost comparison, the opportunity cost is normally DP×[(1+i)^T−1], or the model must explicitly compare ending wealth instead of costs.
- The bases and timing for property taxes and maintenance are unspecified: they could use original price, current appreciated value, or remaining balance, and could be paid monthly or annually.
- Equity_built must be defined as principal repaid, not total payments or total home equity. Appreciation should be based on an explicit home-price appreciation model and should account for selling costs if the horizon assumes liquidation.
Units and conventions
- Home price, down payment, mortgage principal, taxes, maintenance, closing costs, rent, and outputs are in currency units.
- Mortgage rates in these vectors are nominal annual rates compounded monthly; monthly mortgage rate equals annual_rate/12.
- Mortgage n is the total number of monthly payments: 12×term_years.
- Property tax and maintenance percentages are annual percentages of the original home price and are charged once per year.
- Rent is paid monthly; rent_growth_rate is annual, so monthly rent in month t is rent×(1+annual_growth)^t/12 only if annual growth is converted consistently. For the vectors below, the stated convention is simpler: the supplied rent-growth rate is applied once per year while the monthly rent remains constant within each year.
- Investment return is annual and the stated formula uses DP×(1+return)^horizon_years as invested_downpayment_growth, exactly as written, even though that is not a conventional net-cost opportunity-cost treatment.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"home_price": 300000,
"down_payment": 60000,
"mortgage_principal": 240000,
"annual_mortgage_rate": 0,
"term_years": 30,
"horizon_years": 1,
"annual_property_tax_rate": 0.012,
"annual_maintenance_rate": 0.01,
"closing_costs": 6000,
"annual_appreciation_rate": 0,
"monthly_rent": 1800,
"annual_rent_growth_rate": 0.03,
"annual_investment_return": 0.05,
"convention": "taxes and maintenance charged annually; rent growth applied to each successive monthly payment; t=0,...,11"
},
"expected_outputs": {
"monthly_mortgage": 666.666667,
"payments_over_horizon": 8000,
"equity_built": 8000,
"total_buy_cost": 14600,
"total_rent_cost": 88545.6532,
"buy_minus_rent": -73945.6532,
"break_even_year_under_stated_rule": 1
},
"working": "Zero-rate edge case: monthly_mortgage=P/n=240000/(30×12)=240000/360=666.666667. Mortgage payments=666.666667×12=8000. Property taxes=300000×0.012×1=3600. Maintenance=300000×0.01×1=3000. Equity built=8000; appreciation=300000×0×1=0. Buy cost=8000+3600+3000+6000−8000−0=14600. Rent geometric sum=1800×[(1.03^12−1)/0.03]=1800×[(1.425760887−1)/0.03]=1800×14.19202956=25545.6532. Invested downpayment growth=60000×1.05^1=63000. Rent cost=25545.6532+63000=88545.6532. Difference=14600−88545.6532=−73945.6532."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The literal mortgage-payment formula produces 0/0 when the mortgage rate is exactly zero, so the instrument must reject the input or implement the explicit zero-interest limit P/n. The tests also expose an unresolved monthly-versus-annual rent-term convention and a sign ambiguity for negative appreciation.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json