Returns the depreciation of an asset for a specified period using the fixed-declining balance method. Calculates depreciation based on a fixed rate applied to the declining book value, providing accelerated depreciation with a constant rate. Essential for fixed asset accounting, tax calculations, and financial reporting when accelerated depreciation with a fixed rate is required.
Master the fundamentals of Excel DB function
The DB (Fixed Declining Balance) function calculates depreciation using a fixed declining balance method, where a constant rate is applied to the declining book value of the asset each period. The depreciation rate is calculated as 1 - (salvage/cost)^(1/life), ensuring the asset reaches its salvage value at the end of its useful life. Unlike DDB which uses double the straight-line rate, DB uses a calculated fixed rate that depends on the salvage value. This method provides accelerated depreciation (higher in early years, lower in later years) while guaranteeing the book value reaches exactly the salvage value at end of life. DB is useful for assets where accelerated depreciation is beneficial and a fixed rate on declining balance is appropriate.
DB calculates fixed rate as: Rate = 1 - (salvage/cost)^(1/life). This rate ensures book value reaches salvage at end of life. Rate stays constant, applied to declining balance.
Depreciation = Rate × Beginning Book Value. Each period uses remaining book value, not original cost. Book value decreases each period, so depreciation decreases.
DB provides higher early-year depreciation, declining over time. Early years see larger expense as fixed rate applied to higher book value.
Fixed rate calculation ensures book value reaches exactly salvage value at end of useful life. No overshooting or undershooting salvage value.
Month parameter allows depreciation for assets acquired partway through first year. Pro-rates first year depreciation based on months owned.
Accelerated depreciation provides larger early-year tax deductions, improving cash flow timing while matching expense to asset utility.
Function-specific parameters
Function-specific return type
Maximize early-year tax deductions with accelerated depreciation
Prepare accelerated depreciation schedules
Calculate depreciation for company assets
Plan tax savings from accelerated depreciation
Analyze depreciation expense patterns
Track declining balance asset depreciation
Exact matching required
Returns numeric position
Handles missing text gracefully
=DB(cost, salvage, life, period, month)The initial cost of the asset. Must be positive. This is the original purchase price or acquisition cost of the asset.
The value of the asset at the end of its useful life (salvage value, scrap value, or residual value). Must be >= 0. Typically lower than cost.
The number of periods over which the asset is depreciated (useful life). Must be positive. Expressed in same units as period.
The period for which depreciation is calculated. Must be between 1 and life. Period numbering starts at 1 for the first period.
The number of months in the first year. Default is 12. Use when asset is acquired partway through first year. Must be between 1 and 12.
The depreciation expense for the specified period (positive value)
Description: Calculates fixed declining balance depreciation for a period
Calculate depreciation for first year of asset
Returns $7,333.33 for year 1. Fixed declining balance method provides accelerated depreciation with consistent rate.
Using DB function in VBA through WorksheetFunction
Sub DBExample()
Dim result As Double
Dim cost As Double, salvage As Double, life As Integer
Dim period As Integer
cost = 50000
salvage = 5000
life = 10
period = 1
result = Application.WorksheetFunction.Db(cost, salvage, life, period)
Range("A1").Value = result
Range("A1").NumberFormat = "$#,##0.00"
MsgBox "First year depreciation: quot; & Format(result, "#,##0.00")
End Sub
' Calculate depreciation for multiple periods
Sub CalculateDepreciationSchedule()
Dim cost As Double, salvage As Double, life As Integer
Dim i As Integer
Dim depreciation As Double
cost = 50000
salvage = 5000
life = 10
For i = 1 To life
depreciation = Application.WorksheetFunction.Db(cost, salvage, life, i)
Range("A" & i).Value = "Year " & i
Range("B" & i).Value = depreciation
Range("B" & i).NumberFormat = "$#,##0.00"
Next i
End Sub
' Build complete depreciation schedule
Sub BuildDepreciationSchedule()
Dim cost As Double, salvage As Double, life As Integer
Dim i As Integer
Dim depreciation As Double
Dim accumulated As Double
Dim bookValue As Double
cost = 50000
salvage = 5000
life = 10
accumulated = 0
bookValue = cost
For i = 1 To life
depreciation = Application.WorksheetFunction.Db(cost, salvage, life, i)
accumulated = accumulated + depreciation
bookValue = bookValue - depreciation
Range("A" & i + 1).Value = i
Range("B" & i + 1).Value = depreciation
Range("C" & i + 1).Value = accumulated
Range("D" & i + 1).Value = bookValue
Range("B" & i + 1).NumberFormat = "$#,##0.00"
Range("C" & i + 1).NumberFormat = "$#,##0.00"
Range("D" & i + 1).NumberFormat = "$#,##0.00"
Next i
End Sub
' Calculate partial first year depreciation
Sub CalculatePartialYear()
Dim cost As Double, salvage As Double, life As Integer
Dim months As Integer
Dim depreciation As Double
cost = 50000
salvage = 5000
life = 10
months = 6 ' Asset acquired mid-year
depreciation = Application.WorksheetFunction.Db(cost, salvage, life, 1, months)
Range("A1").Value = depreciation
Range("A1").NumberFormat = "$#,##0.00"
MsgBox "Partial first year depreciation: quot; & Format(depreciation, "#,##0.00")
End SubMaximize early-year tax deductions
Build accelerated depreciation schedule
Calculate accelerated depreciation for reports
Plan tax savings from early depreciation
Track declining balance asset depreciation
Analyze depreciation expense patterns
DB returns #NUM! error
=DB(50000, 5000, 10, 1)Solution: Check: 1) period >= 1 and period <= life, 2) life > 0 (cannot be zero or negative), 3) month between 1 and 12 (if provided), 4) Salvage >= 0. Verify all numeric values are valid.
DB returns constant or increasing values across periods
=DB(50000, 5000, 10, period)Solution: Ensure period parameter increments correctly. DB should decrease as period increases. Verify period is correctly referencing period number (1, 2, 3...) not constant value.
DB returns values that seem incorrect
=DB(50000, 5000, 10, 1)Solution: Verify: 1) Cost and salvage are correct, 2) Life is in correct units, 3) Period is correct period number. Check that fixed rate calculation matches expected pattern.
DB returns #VALUE! error
=DB(A1, B1, C1, D1, E1)Solution: Non-numeric values in parameters. Check: 1) All parameters are numbers, 2) Cell references contain numeric values, 3) No text in cost, salvage, life, period, or month. Verify inputs are valid numbers.
Final book value doesn't match salvage value
=DB(50000, 5000, 10, 10)Solution: DB should reach salvage exactly. Verify: 1) All periods calculated correctly, 2) No rounding errors accumulated, 3) Salvage value is correct. Excel DB ensures exact salvage value at end of life.