Page actions
instrument mechanism / verified-clean
PMI / LTV Estimator mechanism
The inspectable method record for PMI / LTV Estimator, kept separate from implementation and qualification.
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.jsonevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json