Skip to main content
Glama

Senaro Personal Finance

PMI Removal Analysis

analyze_pmi_removal
Read-onlyIdempotent

Calculation, not advice. Verify with a professional before acting. Compute every standard PMI-removal pathway:

  • HPA automatic at 78% LTV

  • HPA borrower-requested at 80% LTV

  • optional re-appraisal at a simplified 75% of current market value; the actual Fannie Mae ceiling is seasoning- and property-type-dependent, 75% for a one-unit home seasoned two to five years, 80% for five-plus, and 70% for investment and two- to four-unit properties

Also returns current monthly PMI cost, total PMI dollars between now and automatic removal, and the effective annual return of paying the gap-to-80% (of the original value) as a lump sum today.

Supplying original_loan_term_months and loan_age_months also applies the 12 U.S.C. 4902(c) statutory final-termination midpoint, which bounds automatic removal at the earlier of the 78% schedule and that midpoint where HPA applies and the borrower is current.

Pairs with calculate_refi_breakeven for a refinance's rate-and-term break-even, and with compare_mortgage_terms when choosing between purchase mortgages. Scope: conventional mortgages only; FHA loans use MIP (Mortgage Insurance Premium) with different rules. This tool does not model MIP.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chart_titleNoOverride for the chart title. Must not contain em-dashes or en-dashes. Max 120 characters. Optional.
annual_rate_pctYesMortgage APR as a percentage. Decimal from 0 to 20. REQUIRED, no default.
current_balanceYesToday's loan balance. Decimal, greater than 0. REQUIRED, no default.
loan_age_monthsNoMonths elapsed since origination. Integer from 0 to 480. Optional. Cannot exceed original_loan_term_months when both are supplied. Supplying either one without the other is rejected; both are required together. See original_loan_term_months.
monthly_paymentYesCurrent P&I monthly payment, excluding tax, insurance, and PMI. Decimal, greater than 0. REQUIRED, no default.
current_home_valueNoCurrent market value of the home. Decimal, greater than 0. Optional. When supplied AND greater than the HPA original value (the lesser of purchase price and any closing appraisal), the response also computes the re-appraisal pathway (some lenders allow PMI removal based on current market value with a fresh appraisal).
annual_pmi_rate_pctNoAnnual PMI as a percentage of the current loan balance. Decimal from 0 to 5. Optional; omitting it uses the cited 0.5 default. Typical conventional-loan PMI ranges from 0.3% to 1.5%.
extra_monthly_paymentNoExtra principal paid each month beyond the regular payment. Decimal, at least 0. Optional; defaults to 0 when omitted.
original_purchase_priceYesWhat you paid for the home (the purchase-price side of the HPA basis; when a closing appraisal is lower, see original_appraised_value). Decimal, greater than 0. REQUIRED, no default.
original_appraised_valueNoThe home's appraised value at closing. Decimal, greater than 0. Optional. HPA sets the PMI trigger basis to the LESSER of purchase price and this appraisal (12 U.S.C. 4901); supply it when your closing appraisal came in below the purchase price.
original_loan_term_monthsNoThe loan's original term in months. Integer from 1 to 480. Optional. Supplied together with loan_age_months, this computes the 12 U.S.C. 4902(c) statutory final-termination midpoint (12 U.S.C. 4901(7)) and bounds automatic_removal at the earlier of it and the 78% schedule date, where HPA applies and the borrower is current. Supplying either one without the other is rejected; both are required together.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / chart_title / maxLength
      Added value: +120
    • addedInput schema / properties / current_balance / minimum
      Added value: +0.01
    • addedInput schema / properties / current_home_value / minimum
      Added value: +0.01
    • addedInput schema / properties / monthly_payment / minimum
      Added value: +0.01
    • addedInput schema / properties / original_appraised_value / minimum
      Added value: +0.01
    • addedInput schema / properties / original_purchase_price / minimum
      Added value: +0.01
  2. Changed13 schema fields changed
    • addedInput schema / properties / annual_pmi_rate_pct
      Added value: +{
      +  "default": null,
      +  "description": "Annual PMI as a percentage of the current loan balance. Decimal from 0 to 5. Optional; omitting it uses the cited 0.5 default. Typical conventional-loan PMI ranges from 0.3% to 1.5%.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / annual_rate_pct
      Added value: +{
      +  "description": "Mortgage APR as a percentage. Decimal from 0 to 20. REQUIRED, no default.",
      +  "type": "number"
      +}
    • addedInput schema / properties / chart_title
      Added value: +{
      +  "default": null,
      +  "description": "Override for the chart title. Must not contain em-dashes or en-dashes. Max 120 characters. Optional.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / current_balance
      Added value: +{
      +  "description": "Today's loan balance. Decimal, greater than 0. REQUIRED, no default.",
      +  "type": "number"
      +}
    • addedInput schema / properties / current_home_value
      Added value: +{
      +  "default": null,
      +  "description": "Current market value of the home. Decimal, greater than 0. Optional. When supplied AND greater than the HPA original value (the lesser of purchase price and any closing appraisal), the response also computes the re-appraisal pathway (some lenders allow PMI removal based on current market value with a fresh appraisal).",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / extra_monthly_payment
      Added value: +{
      +  "default": null,
      +  "description": "Extra principal paid each month beyond the regular payment. Decimal, at least 0. Optional; defaults to 0 when omitted.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / loan_age_months
      Added value: +{
      +  "default": null,
      +  "description": "Months elapsed since origination. Integer from 0 to 480. Optional. Cannot exceed original_loan_term_months when both are supplied. Supplying either one without the other is rejected; both are required together. See original_loan_term_months.",
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / monthly_payment
      Added value: +{
      +  "description": "Current P&I monthly payment, excluding tax, insurance, and PMI. Decimal, greater than 0. REQUIRED, no default.",
      +  "type": "number"
      +}
    • addedInput schema / properties / original_appraised_value
      Added value: +{
      +  "default": null,
      +  "description": "The home's appraised value at closing. Decimal, greater than 0. Optional. HPA sets the PMI trigger basis to the LESSER of purchase price and this appraisal (12 U.S.C. 4901); supply it when your closing appraisal came in below the purchase price.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / original_loan_term_months
      Added value: +{
      +  "default": null,
      +  "description": "The loan's original term in months. Integer from 1 to 480. Optional. Supplied together with loan_age_months, this computes the 12 U.S.C. 4902(c) statutory final-termination midpoint (12 U.S.C. 4901(7)) and bounds automatic_removal at the earlier of it and the 78% schedule date, where HPA applies and the borrower is current. Supplying either one without the other is rejected; both are required together.",
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / original_purchase_price
      Added value: +{
      +  "description": "What you paid for the home (the purchase-price side of the HPA basis; when a closing appraisal is lower, see original_appraised_value). Decimal, greater than 0. REQUIRED, no default.",
      +  "type": "number"
      +}
    • removedInput schema / properties / toolArguments
      Removed value: -{
      -  "description": "JSON object with these parameters:\n\ncurrent_balance: decimal > 0 (REQUIRED). Today's loan balance.\noriginal_purchase_price: decimal > 0 (REQUIRED). What you paid for the home (the purchase-price side of the HPA basis; when a closing appraisal is lower, see original_appraised_value).\ncurrent_home_value: decimal > 0 (optional). When provided AND greater than the HPA original value (the lesser of purchase price and any closing appraisal), the response also computes the re-appraisal pathway (some lenders allow PMI removal based on current market value with a fresh appraisal).\noriginal_appraised_value: decimal > 0 (optional). The home's appraised value at closing. HPA sets the PMI trigger basis to the LESSER of purchase price and this appraisal (12 U.S.C. 4901); provide it when your closing appraisal came in below the purchase price.\nannual_pmi_rate_pct: decimal 0-5 (optional, default 0.5). Annual PMI as a percentage of the current loan balance. Typical conventional-loan PMI ranges from 0.3% to 1.5%.\nannual_rate_pct: decimal 0-20 (REQUIRED). Mortgage APR.\nmonthly_payment: decimal > 0 (REQUIRED). Current P&I monthly payment (excluding tax/insurance/PMI).\nextra_monthly_payment: decimal >= 0 (optional, default 0). Extra principal each month beyond the regular payment.\noriginal_loan_term_months: integer 1-480 (optional). The loan's original term in months. Supplied together with loan_age_months, this computes the 12 U.S.C. 4902(c) statutory final-termination midpoint (12 U.S.C. 4901(7)) and bounds automatic_removal at the earlier of it and the 78% schedule date, where HPA applies and the borrower is current. Supplying either one without the other is rejected; both are required together.\nloan_age_months: integer 0-480 (optional). Months elapsed since origination. Cannot exceed original_loan_term_months when both are supplied. Supplying either one without the other is rejected; both are required together. See original_loan_term_months.\n\nScope: conventional mortgages only. FHA loans use MIP (Mortgage Insurance Premium) with different rules. Typically MIP runs for the life of the loan when down payment < 10%. This tool does NOT model MIP.\nchart_title: string (optional) override for the chart title. Must not contain em-dashes or en-dashes. Max 120 characters."
      -}
    • changedInput schema / required
      Previous value: -[
      -  "toolArguments"
      -]New value: +[
      +  "current_balance",
      +  "original_purchase_price",
      +  "annual_rate_pct",
      +  "monthly_payment"
      +]
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds substantial context: it is a calculation, not advice; it computes statutory midpoint behavior; the re-appraisal pathway depends on supplying current_home_value; and it does not model MIP. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the caveat 'Calculation, not advice,' then uses a bulleted list for pathways, followed by outputs, boundary conditions, statutory notes, and sibling routing. Every sentence adds distinct information, and there is no filler despite the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no output schema, the description covers core outputs, exclusions, related tools, conditional parameters, and statutory boundaries. The only gap is that it does not specify the exact response object shape, but the schema's parameter descriptions and the listed outputs are sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds real domain meaning beyond the schema: the HPA basis uses the lesser of purchase price and appraisal, current_home_value triggers the re-appraisal pathway, and original_loan_term_months plus loan_age_months activates the 12 U.S.C. 4902(c) midpoint. This earns an above-baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Compute') and resource ('every standard PMI-removal pathway'), then enumerates HPA automatic, borrower-requested, and re-appraisal pathways. It also lists concrete outputs and distinguishes itself from sibling mortgage tools via its conventional-only scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names related tools—calculate_refi_breakeven and compare_mortgage_terms—and states when they pair with this tool. It also draws a clear boundary: conventional mortgages only, FHA/MIP excluded. This gives an agent enough information to select the correct tool without opening schemas.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources