ForHosting KIT · Finance & money

Depreciation calculator

A 10,000 machine with a 1,000 salvage value and a 5-year life loses 1,800 a year on a straight line and ends at a book value of 1,000. Switch to double-declining balance or sum-of-years digits to front-load the expense. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Cost
10,000
Salvage
1,000
Useful life
5
You get
Depreciable base
9,000
Periodic depreciation
1,800
Total depreciation
9,000
Book value end
1,000

Depreciation turns the cost of a long-lived asset into a sequence of expenses so the books show wear over useful life instead of a one-time hit at purchase. Spreadsheets bury the formula, and hand calculators often disagree on residual rounding in the last period when you switch methods. This depreciation calculator accepts original cost, estimated salvage value, useful life in whole periods, and a chosen method—straight-line, double-declining-balance, or sum-of-years-digits—then returns the depreciable base, the first-period depreciation amount, total depreciation over the life, ending book value, and a full schedule of depreciation, accumulated depreciation, and book value for each period. Useful life must be a positive integer: zero or negative life is rejected as invalid input rather than dividing by zero.

How the three methods allocate cost across useful life

Every method starts from the same depreciable base: original cost minus salvage. That base is the total amount that will be expensed over useful life; after the last period, book value equals salvage and accumulated depreciation equals the base. Example: cost ten thousand, salvage one thousand, useful life five.

Straight-line charges one thousand eight hundred each year. Double-declining-balance charges four thousand in year one, then two thousand four hundred, then one thousand four hundred forty, then eight hundred sixty-four, then two hundred ninety-six. Sum-of-years-digits charges three thousand, two thousand four hundred, one thousand eight hundred, one thousand two hundred, and six hundred.

Currency is unitless: you supply amounts in whatever currency you already use and interpret the outputs in the same units. Negative cost, salvage above cost, or a method outside the three enumerated names is rejected as invalid input rather than inventing a negative expense or an inflated residual.

Pick a method and get the first-period charge

Enter cost, salvage, useful life, and method to get the periodic depreciation amount for period one, plus total depreciation over the life.

Period-by-period book value schedule

Use the returned schedule to list depreciation, accumulated depreciation, and book value for each period under SL, DDB, or SYD.

What happens if useful life is zero or negative?

A non-positive useful life would divide by zero or reverse time, so it is rejected and not billed.

How does double-declining-balance treat salvage?

The last period takes any leftover residual so ending book value equals salvage.

How do I calculate straight-line depreciation?

Subtract the salvage value from the cost to get the depreciable base, then divide it by the useful life. Every full period carries the same charge, and the last one absorbs any rounding so the schedule ends exactly at salvage.

What is the difference between double-declining balance and sum-of-years digits?

Both put more expense in the early years. Double-declining balance applies a fixed rate of two divided by the useful life to each period's opening book value, while sum-of-years digits spreads the base by remaining life over the sum of the years' digits.

Does it handle MACRS, section 179 or bonus depreciation?

No. It covers the three classic periodic methods with a full schedule. Partial-year conventions, MACRS tables, section 179, bonus depreciation and units-of-production depreciation are outside what it calculates.

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.

POSThttps://api.kit.forhosting.com/fin/depreciation

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.

curl -X POST https://api.kit.forhosting.com/fin/depreciation \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cost":10000,"salvage":1000,"useful_life":5,"method":"straight_line"}'
{
  "cost": 10000,
  "salvage": 1000,
  "useful_life": 5,
  "method": "straight_line"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.depreciation",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

How the three methods allocate cost across useful life

Straight-line (straight_line) spreads the base evenly, so each full period carries the same charge until the last period absorbs residual rounding. Double-declining-balance (double_declining_balance) applies a constant rate of two divided by useful life to the opening book value of each period, which front-loads expense; the engine never books more than remaining book minus salvage, and the final period takes whatever residual is left so the schedule still ends at salvage. Sum-of-years-digits (sum_of_years_digits) weights early periods more heavily without using a declining book-value rate: the digits one through n sum to n times n plus one over two, and period t expenses remaining life over that sum times the depreciable base, again with a last-period residual so totals match the base. Partial-year conventions, MACRS tables, section 179, bonus depreciation, and units-of-production are out of scope—this endpoint answers the three closed-form periodic methods with an explicit schedule.

Input contract, rounding, and error behaviour

Optionally send decimals as an integer from zero through eight controlling half-up rounding of money-style outputs (default two). Zero or negative useful life is the contracted hard error: dividing a depreciable base by a non-positive life is undefined, so the task fails instead of returning Infinity or a fabricated schedule. Half-up rounding is applied to each money field from the raw floating computation so goldens stay stable across runtimes. The final period of the schedule absorbs any residual so that accumulated depreciation equals the depreciable base and ending book value equals salvage even when division does not land on a clean decimal. POST a JSON object with four required fields: cost as a finite number greater than zero, salvage as a finite number greater than or equal to zero and less than or equal to cost, useful_life as an integer from one through one hundred (whole periods, typically years), and method as one of straight_line, double_declining_balance, or sum_of_years_digits. Numeric strings that parse to finite values are accepted the same way as JSON numbers. Missing fields, non-finite values, non-positive cost, negative salvage, salvage greater than cost, an unknown method, and a useful_life that is zero, negative, non-integer, or above one hundred fail with invalid_input and are not billed. On success the body echoes rounded cost and salvage, useful_life, method, depreciable_base, periodic_depreciation (the first-period charge; under straight-line this is the constant annual amount), total_depreciation, book_value_end, a schedule array with one object per period containing period, depreciation, accumulated_depreciation, and book_value, and a short formula string you can show next to the numbers. Pair this API with your own tax module if you need MACRS percentages or jurisdiction-specific first-year conventions; the calculator does not estimate tax savings or deferred tax assets.

Where a multi-method depreciation calculator earns its keep

Accounting education pages and personal-finance blogs rank for depreciation calculator when they offer a live tool that lets the reader pick a method instead of locking the page to a single convention. Bookkeeping coaches let students enter cost, salvage, and life, switch among straight-line, double-declining-balance, and sum-of-years-digits, and check both the first-period expense and the full book-value ladder against textbook tables. SaaS onboarding flows can show first-asset depreciation without standing up a full general-ledger module. Internal ops scripts need a deterministic parse endpoint instead of a fragile spreadsheet paste step when building fixed-asset registers for demos or sandboxes. Sweep useful_life or method in a loop from your own code to build what-if tables; pin periodic_depreciation and schedule book values in tests; keep requests small. The free browser path uses the same pure module as the API, so demo landings and production automation never drift. This tool does not fetch asset catalogs, apply tax bonus percentages, prorate mid-year acquisitions, or read MACRS tables—only closed-form periodic depreciation and book value for a single asset given cost, salvage, whole-period life, and one of the three textbook methods. If you need the straight-line-only landing that already ranks for that narrower query, keep that page; this endpoint is the method picker with a schedule.

Classroom and content widgets

Embed the free browser calculator on education pages so learners switch methods and verify textbook tables against a deterministic API.

How do I calculate depreciation with this tool?

Send cost (greater than zero), salvage (zero or more, not above cost), useful_life as a positive integer, and method as straight_line, double_declining_balance, or sum_of_years_digits. The response includes periodic_depreciation and a full schedule.

What is periodic_depreciation in the response?

It is the first-period depreciation amount. Under straight-line it is the constant charge; under accelerated methods it is the larger opening-period expense, with later periods in the schedule.

What does the depreciation calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →