LTV calculator
A 320,000 loan on a property appraised at 400,000 has a loan-to-value of 80%, the usual line before private mortgage insurance. Check a purchase, refinance or cash-out file as one clear percentage. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Loan amount
- 320,000
- Property value
- 400,000
- Ltv percent
- 80
Loan-to-value, almost always abbreviated LTV in mortgage origination and home-equity underwriting, is the percentage a lender uses to measure how much of an appraised property is financed. An LTV of 80 means the note is eighty percent of value, the conventional cutoff many programs still print before private mortgage insurance. One hundred means the loan equals the appraisal. Anything above one hundred means the advance exceeds the property.
What LTV measures and how the percent is formed
The loan-to-value ratio answers a single underwriting question: what share of the appraised property does the proposed or outstanding loan represent? Searchers who type ltv calculator or loan to value calculator want that percentage, not a monthly payment, not a debt-service coverage ratio, and not a customer-lifetime-value figure that marketing tools also abbreviate LTV. The appraised property value is the denominator: the independent appraisal, or the market value the program treats as the appraisal, in the same currency.
A ratio of 80 means the loan is eighty percent of value, the conventional purchase cutoff many programs still print before private mortgage insurance. A ratio of 100 means the loan equals the appraisal. A ratio above 100 means the advance exceeds the property, which some hard-money and renovation programs still fund.
A negative property value is likewise rejected, because a percentage of a negative appraisal is not the LTV a credit policy describes. A zero loan is allowed and yields an LTV of zero, which is the honest picture of an unfinanced purchase. The calculator does not convert currencies, does not apply PMI or MIP thresholds, and does not decide whether a borrower qualifies: those belong on the program sheet.
What you can do with it
Purchase-file LTV check
Turn a proposed mortgage principal and the independent appraisal into the loan-to-value percent a conventional, FHA, or VA desk will quote on the file.
Refinance and cash-out stress
Re-run the ratio after raising the loan or cutting the appraisal so a refinance package shows how close the property sits to an eighty or ninety-five percent cap.
FAQ
What happens if the property value is zero or negative?
LTV is a quotient, so a zero or negative denominator is undefined and is not billed.
What does an LTV of 80% mean?
The loan is eighty percent of the appraised value, so the borrower's equity covers the other twenty. Many conventional programs still use 80% as the cutoff before private mortgage insurance applies.
Can the loan-to-value be above 100%?
Yes. Above 100% the loan is larger than the property is worth. Some hard-money and renovation programs still lend at that level, and the calculator reports the figure instead of capping it.
Which property value should I enter?
Use the independent appraisal, or the market value your loan program treats as the appraisal, in the same currency as the loan. For an existing loan, enter the unpaid balance as the loan amount.
Does it tell me whether I need mortgage insurance or qualify?
No. It returns the percentage only: it does not apply mortgage insurance thresholds or decide whether a borrower qualifies. Compare the result with your lender's program sheet.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/fin/ltv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"loan_amount":320000,"property_value":400000}'const res = await fetch("https://api.kit.forhosting.com/fin/ltv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"loan_amount": 320000,
"property_value": 400000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/ltv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"loan_amount": 320000,
"property_value": 400000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/ltv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"loan_amount":320000,"property_value":400000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"loan_amount":320000,"property_value":400000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/ltv", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"loan_amount": 320000,
"property_value": 400000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.ltv",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs_value | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
This calculator accepts a loan amount and an appraised property value as finite numbers, divides the first by the second, multiplies by one hundred, and returns the ratio as a percent in a deterministic JSON contract. Zero or negative property value is rejected with invalid_input because the quotient is undefined.
What LTV measures and how the percent is formed
The loan amount is the numerator: the principal a lender would advance, or the unpaid principal balance already on the note, in a single currency unit, before prepaid interest or escrow that some programs add later. This tool divides those two finite amounts, multiplies by one hundred, and returns ltv_percent. Because division by zero is undefined, a property_value of zero fails with invalid_input instead of Infinity, NaN, or a hollow ratio a form might treat as a pass.
Input contract, response shape, and error behaviour
Negative property value is likewise rejected, because LTV is undefined when the appraisal is zero or negative. Negative loan amounts fail for the same family of reasons. POST a JSON body that supplies loan_amount and property_value. loan_amount is the principal in a single currency unit, a finite number greater than or equal to zero, with aliases loan, amount, principal, and loan_principal. property_value is the appraised value in the same currency, a finite number that must be strictly greater than zero, with aliases value, appraised_value, home_value, appraisal, and appraised_property_value. Each numeric field may arrive as a JSON number or as a numeric string. Missing loan_amount, missing property_value, empty strings, non-finite values, or a magnitude above the declared limit fail with invalid_input naming the field and are not billed. Zero property value is the error this landing exists to catch: the message contains property_value and must not be zero so a form can highlight that control instead of showing a global alert. On success the body echoes both inputs, returns ltv_percent as the rounded percent, and includes a formula string restating the identity. Example: loan_amount of three hundred twenty thousand against property_value of four hundred thousand yields ltv_percent of 80. Example: a four hundred fifty thousand loan against a four hundred thousand appraisal yields a ratio above one hundred, which is a clear high-LTV case rather than a silent empty payload. Pair the percent with your own program cap if the term sheet needs a pass or fail flag; this endpoint computes the simple loan-to-value ratio only and does not invent a combined-LTV, second-lien, or insurance result.
Where a loan-to-value calculator earns its keep
Purchase desks and borrower portals rank for loan to value calculator because a credit committee thinks in the LTV percent, not in a raw principal. Servicers and special servicers live on unpaid principal and the latest appraisal; dividing the balance by value gives the same monitoring figure without forcing an analyst to remember whether a cell already multiplied by one hundred. Educators teaching mortgage math can seed classroom examples that fail loudly on a zero appraisal instead of printing Infinity a student might treat as infinite leverage. Failed validation does not consume balance. Home-equity and cash-out desks use the same identity on a new combined principal; this endpoint still returns simple LTV, so a HELOC worksheet should add the first-lien balance into loan_amount before calling if combined LTV is what the guideline asks. Keep property_value strictly positive, pin the rounded ltv_percent field in tests, and you get a reproducible loan-to-value percent for widgets, course modules, and edge workers without standing up a credit-policy engine of your own. Portfolio scripts can call the same module in a loop over many notes; each item is one request, the unit is item, and the free browser path remains byte-for-byte identical to the API so a landing-page preview never lies about the figure that will be stored after a save.
Integration use cases
Servicing and mark-to-market LTV
Score many notes from the API by sending each unpaid principal and the latest appraised value, then store the returned ltv_percent next to the loan.
Technical questions
How is LTV calculated from loan amount and property value?
Send finite numbers loan_amount and property_value. The API returns ltv_percent as one hundred times loan_amount divided by property_value, rounded to six decimal places.
Can the loan amount be larger than the property value?
Yes. A high-LTV or underwater note is allowed and yields ltv_percent above 100, which honestly describes an advance that exceeds the appraisal.
Does this calculator apply PMI, MIP, or a lender LTV cap?
No. It returns the simple ratio only. Compare ltv_percent to your own program cap in the calling application if you need a pass or fail flag.
What does the loan-to-value calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.