Actual cash value
Find what an insurer pays on damaged property: an item that costs 2,500 to replace today, with 1,000 of accumulated depreciation, has an actual cash value of 1,500. The gap is what you cover yourself unless your policy adds replacement cost cover. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Replacement cost
- 2,500
- Accumulated depreciation
- 1,000
- Actual cash value
- 1,500
- Depreciation rate
- 0.4
Actual cash value is the amount an insurer pays when property is damaged or lost: what it would cost to replace the item today, minus the value it has lost to age, wear and obsolescence.
What actual cash value means in a claim
When a covered item is destroyed, the policy decides how the loss is measured. Under an actual cash value policy the insurer does not pay what a new replacement would cost; it pays what the old item was worth at the moment of the loss. A five-year-old roof, a three-year-old laptop and a ten-year-old machine all cost real money to replace, but each has already consumed part of its useful life.
The actual cash value calculator formalizes that idea: start from today's replacement cost, subtract the depreciation accumulated over the item's life, and the remainder is the settlement amount. The result matters because it is almost always lower than the price of buying new, and the difference — the depreciation holdback — is exactly what the policyholder must fund out of pocket unless the policy also includes a replacement cost endorsement.
How the computation works
Both must be finite, non-negative numbers; anything else is rejected as invalid input. The core rule is a single subtraction — actual cash value equals replacement cost minus accumulated depreciation — but the guard around it is what makes the result trustworthy. If the depreciation is larger than the replacement cost, the property would have a negative value, which is impossible in this model: that condition almost always means the two figures were swapped, a percentage was entered where an amount was expected, or depreciation from several periods was double-counted.
Where it fits in real workflows
Adjusters use actual cash value as the first-pass figure on a property claim: it is the amount payable immediately, before any recoverable depreciation is released against receipts. Accounting teams use the same arithmetic when testing assets for impairment or when valuing used equipment for resale, donation or tax purposes. Fleet managers, landlords and IT departments use it to keep a current book value per asset without opening a spreadsheet.
Because the capability is deterministic — no dates, no randomness, no external data — it slots into batch jobs that revalue thousands of assets with identical results on every run. It also composes naturally with the accumulated depreciation capability, which computes the depreciation figure itself from cost, salvage value and useful life: one produces the depreciation, this one subtracts it.
What you can do with it
Settle a property insurance claim
Compute the payable amount on a damaged asset from its replacement cost and the depreciation recorded for it, with a reproducible number for the claim file.
Revalue used equipment in bulk
Run thousands of assets through the same deterministic formula to keep book values current without spreadsheet drift between versions.
FAQ
What happens if depreciation is larger than replacement cost?
A negative actual cash value is impossible in this model, so that condition is treated as bad input.
Which currency does it use?
Any. Both inputs are plain numbers in the same currency units, and the result is expressed in those same units.
How is the depreciation rate computed?
As accumulated depreciation divided by replacement cost, rounded to six decimals. It is zero when the replacement cost is zero.
Does it compute the depreciation itself?
No. It takes the accumulated depreciation as an input. To derive that figure from cost, salvage value and useful life, use the accumulated depreciation capability first and pass its result here.
Is any data stored?
No. The two numbers are processed in memory and discarded; only the computed result is returned.
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/actual-cash-value \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"replacement_cost":2500,"accumulated_depreciation":1000}'const res = await fetch("https://api.kit.forhosting.com/fin/actual-cash-value", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"replacement_cost": 2500,
"accumulated_depreciation": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/actual-cash-value",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"replacement_cost": 2500,
"accumulated_depreciation": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/actual-cash-value", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"replacement_cost":2500,"accumulated_depreciation":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"replacement_cost":2500,"accumulated_depreciation":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/actual-cash-value", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"replacement_cost": 2500,
"accumulated_depreciation": 1000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.actual_cash_value",
"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
This API takes a replacement cost and an accumulated depreciation figure and returns the depreciated value of the property, together with the depreciation rate. It is the arithmetic behind replacement-cost-minus-depreciation claim settlements, asset valuations and accounting write-downs, done deterministically in one call. When the depreciation exceeds the replacement cost — an impossible state that usually signals a data entry error — the request is rejected instead of returning a negative value.
What actual cash value means in a claim
Feeding the same two figures into this endpoint gives the same number every time, which makes it safe to embed in claims pipelines, audit trails and dispute documentation where a reproducible figure is required.
How the computation works
The endpoint accepts two numbers in the same currency units: the replacement cost and the accumulated depreciation. Rather than returning a nonsensical negative figure, the API returns an invalid_input error and no charge is made. When both inputs are coherent, the response returns the actual cash value rounded to two decimals, echoes both inputs, and adds the depreciation rate — the accumulated depreciation divided by the replacement cost — rounded to six decimals so downstream systems can reuse it without recomputing.
Where it fits in real workflows
The same code that runs on the API runs free in the browser on this page, so a figure can be checked manually before it is automated, at $0.002 per request when the calls are made programmatically.
Integration use cases
Catch data entry errors before payment
Let the invalid_input error flag records where depreciation exceeds replacement cost instead of paying out a negative or nonsense value.
Technical questions
What does it cost?
$0.002 per request. It is also free to run in your browser on this page.