Documentation/Calc Functions/VDB

Function name:
VDB

Category:
Financial Analysis

Summary:
Calculates the depreciation of an asset over an arbitrary period of time, using a variable declining balance method. This is an accelerated method that gives higher depreciation in the earlier periods of the asset’s useful life.

Syntax:
VDB(Cost; Salvage; Life; S; End[; Factor[; NoSwitch]])

Returns:
Returns a real number (in currency units) which is the depreciation allowance of an asset for the given arguments, calculated using a variable declining balance method. The currency units are the same as those used for the Cost and Salvage values.

Arguments:
Cost is a non-negative real number or a reference to the cell containing that number which is the initial cost of the asset.

Salvage is a real number or a reference to the cell containing that number which is the value of the asset after depreciation. Salvage and Cost should be in the same currency units.

Life is a non-negative real number or a reference to the cell containing that number which is the number of periods over which the asset is being depreciated.

S is a non-negative real number or a reference to the cell containing that number which is the start period number for which the depreciation is calculated. It can be any value greater than or equal to 0, where 0 denotes the start of the asset’s life, but it cannot be greater than Life nor End.

End is a non-negative real number or a reference to the cell containing that number which is the end period number for which the depreciation is calculated. It can be any value greater than or equal to S, and less than or equal to Life.

Factor is a positive real number or a reference to the cell containing that number which is the depreciation factor. If a value is not specified, the default is 2. If factor=2, then the double declining balance method is used.

NoSwitch is a real number, or a logical value TRUE or FALSE, or a reference to the cell containing that number which you include if you do not want VDB to switch to straight-line depreciation for the remaining useful life. If NoSwitch is FALSE or 0 or omitted, VDB automatically switches to straight-line depreciation when that is greater than declining-balance depreciation. If NoSwitch is TRUE or 1, or any other real number, VDB never switches to straight-line depreciation.

The function reports an invalid argument error (Err:502) if:
 * Cost is less than 0;
 * Salvage is greater than Cost;
 * Factor is less than or equal to 0;
 * S is less than 0;
 * End is greater than Life;
 * End is less than S.

The function reports a #NAME? error if:
 * any argument excluding NoSwitch is non-numeric;
 * NoSwitch is neither numeric nor a logical value TRUE or FALSE.

Additional details:
To calculate the depreciation, VDB uses a fixed rate, which is given by $$ rate = \frac{Factor}{Life}. $$

The depreciation in each period is calculated at the end of the period as $$ min(value\_at\_start\_of\_period * rate; value\_at\_start\_of\_period - Salvage). $$

However, if the straight-line depreciation would be greater than this, and if the NoSwitch flag is not set, then VDB uses the straight-line depreciation instead. This is calculated for each period as $$ \frac{value\_at\_start\_of\_period - Salvage}{number\_of\_periods\_left}. $$ If the NoSwitch flag is set, then VDB never switches to straight-line depreciation.

VDB calculates the depreciation for the periods from S to End, which can be also a fractional period.

Related LibreOffice functions:
[[Special:MyLanguage/Documentation/Calc_Functions/DDB DDB]

[[Special:MyLanguage/Documentation/Calc_Functions/SLN SLN]

ODF standard:
Section 6.12.50, part 2

Equivalent Excel functions:
VDB