Free calculators
Mortgage payment and affordability calculator documentation
Inputs, formulas, assumptions and API/MCP examples for the mortgage payment and affordability calculator. Reproduce a calculation and cite its sources.
Content updated . Assumptions reviewed .
Formula and assumptions
Housing cost = mortgage + property tax/12 + insurance/12 + maintenance + service charges.
- Affordability uses entered after-tax household income, living costs and protected savings, without lender eligibility rules.
- The affordable-price estimate holds ownership costs at their entered values and separately caps price by the entered deposit and LTV.
- Stress testing applies the higher rate to the same original principal and term.
- The job-loss scenario assumes all entered household income stops and essential expenses continue.
- Reserve shortfall is reported separately; it does not silently change borrowing.
Assumptions reviewed:
Sources
- KlarFort calculator methodology. KlarFort-authored arithmetic; free to use with credit.; vintage 1.
Parameters
| Name | Description | Type | Default | Minimum | Maximum |
|---|---|---|---|---|---|
| currency | Currency | string | "USD" | ||
| homePrice | Home price | number | 400000 | 0 | 1,000,000,000 |
| downPayment | Deposit | number | 80000 | 0 | 1,000,000,000 |
| annualRate | Annual interest rate (%) | number | 5 | 0 | 100 |
| months | Duration in months | integer | 300 | 1 | 600 |
| afterTaxMonthlyIncome | After-tax monthly household income | number | 7000 | 0 | 1,000,000,000 |
| monthlyLivingCosts | Monthly non-housing living costs | number | 2500 | 0 | 1,000,000,000 |
| monthlySavings | Protected monthly saving | number | 500 | 0 | 1,000,000,000 |
| annualPropertyTax | Annual property tax entered | number | 2400 | 0 | 1,000,000,000 |
| annualInsurance | Annual home insurance | number | 1200 | 0 | 1,000,000,000 |
| maintenancePercent | Annual maintenance (% of price) | number | 1 | 0 | 20 |
| monthlyServiceCharges | Monthly service charges | number | 150 | 0 | 1,000,000,000 |
| cashSavings | Cash before the purchase | number | 120000 | 0 | 1,000,000,000 |
| closingCosts | Upfront closing costs | number | 10000 | 0 | 1,000,000,000 |
| reserveMonths | Required reserve months | integer | 6 | 0 | 60 |
| jobLossMonths | Months with no household income | integer | 3 | 0 | 60 |
| maxLoanToValuePercent | Maximum loan-to-value (%) | number | 80 | 1 | 100 |
| stressRateIncrease | Stress interest-rate increase (percentage points) | number | 2 | 0 | 30 |
JSON API
GET accepts one input parameter containing URL-encoded JSON. POST sends the JSON input object. Prefer POST for personal figures. Inputs are limited to 16 KiB. POST results are not stored; GET results may be cached for up to 24 hours.
curl -X POST https://klarfort.com/tools/api/v1/mortgage-calculator -H "Content-Type: application/json" --data '{"currency":"USD","homePrice":400000,"downPayment":80000,"annualRate":5,"months":300,"afterTaxMonthlyIncome":7000,"monthlyLivingCosts":2500,"monthlySavings":500,"annualPropertyTax":2400,"annualInsurance":1200,"maintenancePercent":1,"monthlyServiceCharges":150,"cashSavings":120000,"closingCosts":10000,"reserveMonths":6,"jobLossMonths":3,"maxLoanToValuePercent":80,"stressRateIncrease":2}'fetch("https://klarfort.com/tools/api/v1/mortgage-calculator", {method:"POST", headers:{"Content-Type":"application/json"}, body:JSON.stringify({"currency":"USD","homePrice":400000,"downPayment":80000,"annualRate":5,"months":300,"afterTaxMonthlyIncome":7000,"monthlyLivingCosts":2500,"monthlySavings":500,"annualPropertyTax":2400,"annualInsurance":1200,"maintenancePercent":1,"monthlyServiceCharges":150,"cashSavings":120000,"closingCosts":10000,"reserveMonths":6,"jobLossMonths":3,"maxLoanToValuePercent":80,"stressRateIncrease":2})})import json, urllib.request
request = urllib.request.Request("https://klarfort.com/tools/api/v1/mortgage-calculator", data=json.dumps({"currency":"USD","homePrice":400000,"downPayment":80000,"annualRate":5,"months":300,"afterTaxMonthlyIncome":7000,"monthlyLivingCosts":2500,"monthlySavings":500,"annualPropertyTax":2400,"annualInsurance":1200,"maintenancePercent":1,"monthlyServiceCharges":150,"cashSavings":120000,"closingCosts":10000,"reserveMonths":6,"jobLossMonths":3,"maxLoanToValuePercent":80,"stressRateIncrease":2}).encode(), headers={"Content-Type":"application/json"})
print(urllib.request.urlopen(request).read().decode())Connected assistants
Connect using https://klarfort.com/tools/mcp. Discover this calculator with tools/list, then call mortgage-calculator. Protocol versions 2026-07-28 and 2025-11-25 are supported. Modern requests carry protocol metadata and matching HTTP headers. Set Mcp-Name to params.name for tools/call and to params.uri for resources/read. Older clients initialize first.
Limits: 120 requests per minute per address and approximately 3,000 per minute per edge location. Simulations are capped at 1,000 paths, 600 months and 150,000 path-months (paths multiplied by months). Shorten the duration or reduce paths when that work limit is exceeded. A limit response returns 429 and Retry-After. No exact remaining-request count is available.
Usage and credit
Free for personal, commercial and any other lawful use with credit to KlarFort at https://klarfort.com/. Third-party data terms still apply.
Place a visible credit near the reused material or in the credits for your work or integration. One clear credit per work or integration is sufficient; no separate credit per API request is required. Links to individual calculators are optional.
Computed with KlarFort Calculators, https://klarfort.com/
The API returns this text in credit and the homepage in credit_url. The optional citation_url identifies the calculator for reference. See usage and credit for the full permission.
KlarFort is not financial, investment, tax, or legal advice. Verify outputs before making material decisions.