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

instrument mechanism / verified-clean

PMI / LTV Estimator mechanism

The inspectable method record for PMI / LTV Estimator, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The supplied honest label is directionally appropriate but should explicitly state that the 80% result is only a simplified eligibility estimate, not a guaranteed cancellation date or legal entitlement. The specification must define the PMI cost formula, PMI-rate units, and amortization/principal-reduction inputs before implementation can receive PASS.

  • LTV=loan/appraised_value is correct when both values use the same currency and loan means the current loan balance.
  • No formula is specified for estimated annual PMI cost. A common rough assumption is current loan balance × PMI rate, but PMI may instead be based on the original loan amount and may be recalculated periodically.
  • No formula or required inputs are specified for estimated payments to 80% LTV. This requires at least a principal-reduction amount per payment or a complete amortization schedule; dividing the balance gap by the total payment would be incorrect because total payments include interest.
  • The statement 'PMI removal at LTV≤80%' is an oversimplification. Borrower-requested cancellation, automatic termination, lender rules, loan type, payment history, and applicable law can differ; automatic termination is commonly associated with 78% original LTV rather than 80%.

Units and conventions

  • loan_balance and appraised_value are positive monetary amounts in the same currency.
  • For the test vectors, PMI rate is supplied as a percentage number such as 0.5 and converted to a decimal by dividing by 100.
  • For test-vector purposes, estimated annual PMI cost is defined as loan_balance × PMI_rate_decimal and represents a pre-removal annualized estimate.
  • For test-vector purposes, estimated payments to 80% LTV is ceil(max(0, loan_balance − 0.80 × appraised_value) ÷ principal_reduction_per_payment), where principal_reduction_per_payment is the principal retired each payment, not the total payment.
  • LTV output is expressed as a percentage: loan_balance ÷ appraised_value × 100.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "loan_balance": 360000,
    "appraised_value": 450000,
    "pmi_rate_percent": 0.5,
    "principal_reduction_per_payment": 1500
  },
  "expected_outputs": {
    "ltv_percent": 80,
    "estimated_pmi_cost_per_year": 1800,
    "estimated_payments_to_80_ltv": 0
  },
  "working": "LTV = 360000 ÷ 450000 × 100 = 0.8 × 100 = 80%. PMI rate = 0.5 ÷ 100 = 0.005. Annual PMI = 360000 × 0.005 = 1800. 80% target balance = 450000 × 0.80 = 360000. Balance gap = 360000 − 360000 = 0. Payments = max(0, 0 ÷ 1500) = 0."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The specification has a division-by-zero failure when home_value is zero and cannot compute a payment count for any ordinary case because it provides no payment amount, principal-per-payment value, interest rate, or amortization schedule. The PMI-rate input also has a potentially severe percent-versus-decimal convention ambiguity.

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-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json