DB function

DB returns the periodic depreciation amount of an asset using the declining balance method, which reduces depreciation each period.

=DB(cost, salvage, life, period, [month])

Generate a DB formula

Describe what you need. The generator will reach for DB where DB is the right tool, and tell you when it is not.

How to get a better answer
  • Name your columns by letter and by header: "column F (Net Value)" beats "the amount column".
  • State every condition, including the negatives — "not cancelled" changes the formula's shape.
  • Say where the data starts if it is not row 1, and whether it will grow.
  • Check the settings above match your spreadsheet: the wrong argument separator is a syntax error on your machine.

Arguments

How DB reads its arguments
costrequiredsalvagerequiredliferequiredperiodrequiredmonthoptionalDB
ArgumentRequiredDescription
costRequiredThe initial acquisition cost of the asset; must be a positive number.
salvageRequiredThe salvage or residual value after the useful life ends; must be non-negative and typically less than cost.
lifeRequiredThe useful life of the asset in periods; must be a positive number, typically an integer representing years.
periodRequiredThe specific period for which to calculate depreciation; must be an integer between 1 and life.
monthOptionalOptional; the number of months the asset was in use during the first year (default 12); must be an integer between 1 and 12.

Returns

A number representing the depreciation amount for the specified period.

Availability

Excel: All · Google Sheets: Supported

Worked examples

1. Calculate first-year equipment depreciation

Order IDRegionRepUnitsUnit PriceOrder Date
1001EastAlice50252024-01-15
1002WestBob30402024-01-16
1003EastAlice75202024-02-01
1004NorthCarol20602024-02-10
=DB(12000, 2000, 5, 1)

Result: 4800

Equipment costing $12,000 with a 5-year life and $2,000 salvage value depreciates $4,800 in the first year. Under the declining balance method, this accelerated depreciation in early years reflects the asset's steepest loss in value when it is newest.

2. Calculate mid-year purchase depreciation with adjusted first-year period

Order IDRegionRepUnitsUnit PriceOrder Date
1001EastAlice50252024-01-15
1002WestBob30402024-01-16
1003EastAlice75202024-02-01
1004NorthCarol20602024-02-10
=DB(8000, 1000, 4, 1, 9)

Result: 3600

Equipment purchased mid-year (9 months of the first year) reduces first-year depreciation from the full annual amount to $3,600, accounting for only 9 months of ownership. The month parameter pro-rates the first year and shifts the schedule for all subsequent periods accordingly.

3. Calculate third-year depreciation on declining book value

Order IDRegionRepUnitsUnit PriceOrder Date
1001EastAlice50252024-01-15
1002WestBob30402024-01-16
1003EastAlice75202024-02-01
1004NorthCarol20602024-02-10
=DB(15000, 1500, 6, 3)

Result: 2040.71

Year 3 depreciation is $2,040.71, noticeably lower than years 1 and 2 because DB applies the depreciation rate to the remaining book value each year. As the book value shrinks, so does the depreciation amount, producing the characteristic declining curve of this method.

Common errors

Which DB error are you seeing?
DB returned an error#NUM!
Verify all arguments: ensure cost > 0, salvage ≥ 0, life > 0, 1 ≤ period ≤ life, and 1 ≤ month ≤ 12 if provided.
#VALUE!
Ensure all five arguments are numbers or cell references containing numbers; use VALUE() to convert text to numbers if needed.
#REF!
Update the formula to reference existing cells; check that source data has not moved or been removed.
ErrorWhy it happensHow to fix it
#NUM!One of the numeric constraints is violated: cost ≤ 0, salvage < 0, life ≤ 0, period > life, period < 1, or month is outside 1–12.Verify all arguments: ensure cost > 0, salvage ≥ 0, life > 0, 1 ≤ period ≤ life, and 1 ≤ month ≤ 12 if provided.
#VALUE!One or more arguments are non-numeric, such as text strings, incompatible date formats, or empty cells where a number is required.Ensure all five arguments are numbers or cell references containing numbers; use VALUE() to convert text to numbers if needed.
#REF!A cell reference in one of the arguments points to a deleted cell, invalid range, or a sheet that no longer exists.Update the formula to reference existing cells; check that source data has not moved or been removed.

Tips and when to use something else

  • Use DDB() instead of DB() if you need strict double-declining-balance with a fixed rate of 2/life; DB calculates its rate to reach the salvage value gradually.
  • DB always returns positive depreciation; if salvage accidentally exceeds cost, the function still runs but produces minimal depreciation each period.
  • The month parameter shifts the entire depreciation schedule; always use it for mid-year purchases or sales to pro-rate the first and final years correctly.
  • Combine DB with SUM() to total depreciation across multiple years: =SUM(DB($A$1,$A$2,$A$3,ROW(1:5))) sums depreciation for periods 1 through 5.

Frequently asked questions

When should I use DB instead of DDB?
DB uses a calculated rate designed to reach the salvage value by the end of life; DDB applies a fixed double rate (2/life) and ignores salvage for rate calculation. Use DB for most financial reporting and tax depreciation systems; use DDB if your jurisdiction requires strict double-declining-balance without salvage adjustment.
Why is my year-2 depreciation lower than year 1?
The declining-balance method applies the depreciation rate to the remaining book value each year, not the original cost. Since the book value decreases each year, the depreciation amount also decreases, creating an accelerated depreciation pattern that front-loads depreciation expense when the asset is newest.
What happens if salvage is set to zero?
DB will still calculate valid depreciation and the asset will depreciate to zero (or very close to it) by the end of its useful life. The internal rate calculation adjusts to ensure the book value reaches the salvage amount, so using salvage = 0 results in standard declining-balance depreciation to a zero residual value.
How does the month parameter affect year 2 and beyond?
The month parameter shifts the entire depreciation schedule forward or backward. If month = 9, year 1 is only 9 months; year 2 then covers the remaining 3 months of the original first year plus 9 months of the next calendar year, ensuring the asset depreciates over the correct calendar timeline.

Need a different formula?

The full generator is not scoped to one function — describe any spreadsheet problem and it will pick.

Open the formula generator

Reviewed 2026-09-17