Return the depreciation for a specified period using the fixed-declining balance method. <span align="right" style="background-color:99FF99"><strong>Excel: DDB</strong></span>

View versions (1)

Interface

#include <codecogs/finance/accounting/depreciation.h>

using namespace Finance::Accounting;

This function calculates the depreciation of an asset for a specified period. The method used is a fixed-declining method. This function is equivalent to the Microsoft Excel function DDB. It works on the following set of equations:

rate = 1.0 - (\frac{salv}{cost})^{(\frac{1}{life})}
(1)
deprec = (cost-prevTot)*rate
(2)

With two special cases, when period=1:

deprec = cost*rate*\frac{month}{12}
(3)

When period=life:

deprec = (cost-prevTot)*rate*\frac{12-month}{12}
(4)

Where:

  • salv is the salvage value of the asset,
  • cost is the initial cost of the asset,
  • life is the number of periods over which the asset is being depreciated.
  • prevTot is the total depreciation from previous periods.

Example 1

#include <stdio.h>
#include <codecogs/finance/accounting/deprecfixeddec.h>

int main(void)
{
  double costVal=1000000;
  double salvVal=100000;
  
  printf("Consider an asset with the following terms:\n");
  printf("Cost\t\tSalvage\t\tLife\tPeriod\tMonth\tDepreciation\n");
 
  for (int per=1; per<=7; ++per) 
  { 
    printf("%f\t%f\t6\t%i\t7\t%f\n",
           costVal,
           salvVal,
           per,
           Finance::Accounting::deprecFixedDec(costVal, salvVal, 6, per, 7));
  }
   
  printf("\n");
  costVal=2500;
  salvVal=500;
  for (int per=1; per<=4; ++per) 
  { 
    printf("%f\t%f\t3\t%i\t6\t%f\n",
           costVal,
           salvVal,
           per,
           Finance::Accounting::deprecFixedDec(costVal, salvVal, 3, per, 6));
  }
  
  return 0;
}

Output:

Consider an asset with the following terms:
Cost            Salvage         Life    Period  Month   Depreciation
1000000.000000  100000.000000   6       1       7       186083.333333
1000000.000000  100000.000000   6       2       7       259639.416667
1000000.000000  100000.000000   6       3       7       176814.442750
1000000.000000  100000.000000   6       4       7       120410.635513
1000000.000000  100000.000000   6       5       7       81999.642784
1000000.000000  100000.000000   6       6       7       55841.756736
1000000.000000  100000.000000   6       7       7       15845.098474

2500.000000     500.000000      3       1       6       518.750000
2500.000000     500.000000      3       2       6       822.218750
2500.000000     500.000000      3       3       6       480.997969
2500.000000     500.000000      3       4       6       140.691906

Parameters

valCost
The initial cost of the asset.
valSalv
The salvage value of the asset at the end of its life.
life
The is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).
per
The period for which you want to calculate the depreciation. per must have the same units as life.
fact
Default Value = 2.0

Returns

The depreciation for each accounting period.

References

http://www.vni.com/products/imsl/jmsl/v30/api/

GPL Licence — free for non commercial use. See Licence details.

Interactive Calculator

valCost
valSalv
life
per
fact
Result