 XMLWordPrintable

#### Details

• Type: Sub-task
• Status: Closed
• Priority: Major
• Resolution: Fixed
• Affects Version/s: None
• Fix Version/s:
• Component/s:
• Labels:
None
• Proposal:
Hide

Change Syntax "Integer period" to "Number period".

cost >= 0, salvage >= 0, salvage <= cost, 1 <= period <= lifeTime, declinationFactor > 0

The formula using integer periods according to http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Calc:_DDB_function would be

To calculate depreciation, DDB uses a fixed rate. When declinationFactor = 2 this is the double-declining-balance method (because it is double the straight-line rate that would depreciate the asset to zero). The rate is given by:

The depreciation each year is calculated as

depreciation_of_year = MINIMUM( book_value_at_start_of_year * rate; book_value_at_start_of_year - salvagevalue )

Thus the asset depreciates at rate until the book value is salvagevalue.

book_value_at_start_of_year_i = originalcost - sigma_i(1,year_i-1,depreciation_of_year_i)

The current formula is missing the MINIMUM evaluation and uses only (book_value_at_start_of_year * rate), hence the TODO in the draft.

Alternative algorithm allowing for non-integer periods:

if rate >= 1 then
rate = 1
if period == 1 then
oldValue = cost
else
oldValue = 0
endif
else
oldValue = cost * pow( 1 - rate, period - 1 )
endif
newValue = cost * pow( 1 - rate, period )
if newValue < salvage then
DDB = oldValue - salvage
else
DDB = oldValue - newValue
endif
if DDB < 0 then
DDB = 0
endif

Show
Change Syntax "Integer period" to "Number period". Add Constraints: cost >= 0, salvage >= 0, salvage <= cost, 1 <= period <= lifeTime, declinationFactor > 0 The formula using integer periods according to http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Calc:_DDB_function would be To calculate depreciation, DDB uses a fixed rate. When declinationFactor = 2 this is the double-declining-balance method (because it is double the straight-line rate that would depreciate the asset to zero). The rate is given by: rate = declinationFactor / lifeTime The depreciation each year is calculated as depreciation_of_year = MINIMUM( book_value_at_start_of_year * rate; book_value_at_start_of_year - salvagevalue ) Thus the asset depreciates at rate until the book value is salvagevalue. book_value_at_start_of_year_i = originalcost - sigma_i(1,year_i-1,depreciation_of_year_i) The current formula is missing the MINIMUM evaluation and uses only (book_value_at_start_of_year * rate), hence the TODO in the draft. Alternative algorithm allowing for non-integer periods: rate = declinationFactor / lifeTime if rate >= 1 then rate = 1 if period == 1 then oldValue = cost else oldValue = 0 endif else oldValue = cost * pow( 1 - rate, period - 1 ) endif newValue = cost * pow( 1 - rate, period ) if newValue < salvage then DDB = oldValue - salvage else DDB = oldValue - newValue endif if DDB < 0 then DDB = 0 endif

#### Description

Broken out from OFFICE-916

DDB lacks a mathematical formula.

[ed.]
It does not lack a formula (anymore?), but the current formula is incomplete.
Constraints are not given.
TODO: A different algorithm may be used that allows for non-integer periods. OOoCalc uses it, compare with Excel, Gnumeric and KSpread.

#### People

• Assignee: Eike Rathke (Inactive)
Reporter: Eike Rathke (Inactive)
• Watchers:
0 Start watching this issue

#### Dates

• Created:
Updated:
Resolved: