# DDB

Returns the depreciation of an asset for a specified period using the double-declining balance method or some other method you specify.

## Syntax

```
DDB(<cost>, <salvage>, <life>, <period>[, <factor>])
```

### Parameters

Term | Definition |
---|---|

cost | The initial cost of the asset. |

salvage | The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0. |

life | The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset). |

period | The period for which you want to calculate the depreciation. Period must use the same units as life. Must be between 1 and life (inclusive). |

factor | (Optional) The rate at which the balance declines. If factor is omitted, it is assumed to be 2 (the double-declining balance method). |

## Return Value

The depreciation over the specified period.

## Remarks

The double-declining balance method computes depreciation at an accelerated rate. Depreciation is highest in the first period and decreases in successive periods. DDB uses the following formula to calculate depreciation for a period:

$$\text{Min}((\text{cost} - \text{total depreciation from prior periods}) \times (\frac{\text{factor}}{\text{life}}),(\text{cost} - \text{salvage} - \text{total depreciation from prior periods}))$$

Change factor if you do not want to use the double-declining balance method.

Use the VDB function if you want to switch to the straight-line depreciation method when depreciation is greater than the declining balance calculation.

period is rounded to the nearest integer.

An error is returned if:

- cost < 0.
- salvage < 0.
- life < 1.
- period < 1 or period > life.
- factor ≤ 0.

This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

## Examples

### Example 1

The following DAX query:

```
EVALUATE
{
DDB(1000000, 0, 10, 5, 1.5)
}
```

Returns an asset's depreciation in the 5$^{th}$ year, assuming it will be worth \$0 after 10 years. This calculation uses a factor of 1.5.

[Value] |
---|

78300.9375 |

### Example 2

The following calculates the total depreciation of all assets in different years over their lifetimes. This calculation uses the default factor of 2 (the double-declining balance method).

```
DEFINE
VAR NumDepreciationPeriods = MAX(Asset[LifeTimeYears])
VAR DepreciationPeriods = GENERATESERIES(1, NumDepreciationPeriods)
EVALUATE
ADDCOLUMNS (
DepreciationPeriods,
"Current Period Total Depreciation",
SUMX (
FILTER (
Asset,
[Value] <= [LifetimeYears]
),
DDB([InitialCost], [SalvageValue], [LifetimeYears], [Value])
)
)
```

## Feedback

https://aka.ms/ContentUserFeedback.

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for