Negative equity roll-in
Trade in a car worth 12,000 while still owing 15,000 and 3,000 of negative equity moves into the new loan: on a 28,000 car you would finance 31,000. Enter the three figures to see your own total. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Trade-in value
- 12,000
- Current loan payoff
- 15,000
- New vehicle price
- 28,000
- Negative equity
- 3,000
- Positive equity
- 0
- Amount to finance
- 31,000
Compute negative equity rolled into a new auto loan. Search intent: negative equity roll in. No network calls, random seeds, or server state are required. Failed jobs are not
What negative equity is and how it rolls in
Negative equity on a car means you owe more on your current loan than the vehicle is worth as a trade-in. The calculator compares the two figures: if the payoff is higher than the trade-in value, the difference is your negative equity; if not, negative equity is zero. That shortfall does not disappear when you hand the car over. It is added to the price of the new vehicle, and the sum is the amount to finance. With a trade-in worth 12,000, a payoff of 15,000 and a new car priced at 28,000, negative equity is 3,000 and you would finance 31,000.
Reading the result before you sign
Compare the amount to finance with the price of the car you are buying: the gap is old debt you carry into the new loan. Enter the trade-in value and the current payoff of your loan, not the amount you originally borrowed. If the trade-in is worth more than you owe, the result shows positive equity on its own line and negative equity stays at zero, so the amount to finance is the new price. The result repeats your three figures, and rounding to the decimals you choose happens only once.
FAQ
Other languages?
EN-only delivery; Nitro hydrates the other seven locales.
What is negative equity on a car?
It is the gap when you owe more on your current loan than the car is worth as a trade-in. If you owe 15,000 and the car is worth 12,000, your negative equity is 3,000.
What if my car is worth more than I owe?
Then negative equity is zero and the result shows your positive equity on its own line. The amount to finance is simply the price of the new car, with no old debt added.
Which loan figure should I enter?
Enter the payoff of your current loan, meaning what is still needed to clear it, not the amount you originally borrowed. That figure is compared with the trade-in value of the car.
Are the amounts rounded?
Only if you ask for it. You can choose the number of decimals, and rounding is applied once to the final figures, never during the calculation. The result also repeats the three figures you entered.
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/finance/negative-equity-rollin \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"car_value":12000,"loan_payoff":15000,"new_price":28000}'const res = await fetch("https://api.kit.forhosting.com/finance/negative-equity-rollin", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"car_value": 12000,
"loan_payoff": 15000,
"new_price": 28000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/finance/negative-equity-rollin",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"car_value": 12000,
"loan_payoff": 15000,
"new_price": 28000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/finance/negative-equity-rollin", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"car_value":12000,"loan_payoff":15000,"new_price":28000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"car_value":12000,"loan_payoff":15000,"new_price":28000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/finance/negative-equity-rollin", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"car_value": 12000,
"loan_payoff": 15000,
"new_price": 28000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.negative_equity_rollin",
"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.
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
The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos.
How it works
No network calls, random seeds, or server state are required. Failed jobs are not billed. Search intent is matched with precise English keywords. Optional fields document defaults. Compute negative equity rolled into a new auto loan. negative_equity = max(0, payoff−value); finance = new_price + negative_equity. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are
Inputs, limits and rounding
Optional decimals use half-up once. Outputs echo key inputs for logging and automation. No network calls, random seeds, or server state are required. Failed jobs are not billed. Search intent is matched with precise English keywords. Optional fields document defaults. Half-up rounding is Provide required JSON fields as documented in params. Invalid types or ranges raise invalid_input. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input.
When to use it
Use when the search intent matches this calculator. Compute negative equity rolled into a new auto loan. No network calls, random seeds, or server state are required. Failed jobs are not billed. Search intent is matched with precise English keywords. Optional fields document defaults. Half-up The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON contract from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input.
Integration use cases
Quick check
Verify a formula in the free browser widget.
Automation
Call the API with the same JSON fields from scripts.
Teaching
Show pinned golden examples without proprietary tools.
Technical questions
Is the browser widget free?
Yes. Tier A runs client-side with the same core as the API.
Does it call the network?
No. Computation is local and deterministic.
What happens on bad input?
The handler throws invalid_input; failed jobs are not billed.
Can I use the API?
Yes. Send the same JSON documented in params.