calc: Depreciation Functions

 
 8.6.5 Depreciation Functions
 ----------------------------
 
 The functions in this section calculate “depreciation”, which is the
 amount of value that a possession loses over time.  These functions are
 characterized by three parameters: COST, the original cost of the asset;
 SALVAGE, the value the asset will have at the end of its expected
 “useful life”; and LIFE, the number of years (or other periods) of the
 expected useful life.
 
    There are several methods for calculating depreciation that differ in
 the way they spread the depreciation over the lifetime of the asset.
 
    The ‘b S’ (‘calc-fin-sln’) [‘sln’] command computes the
 “straight-line” depreciation.  In this method, the asset depreciates by
 the same amount every year (or period).  For example, ‘sln(12000, 2000,
 5)’ returns 2000.  The asset costs $12000 initially and will be worth
 $2000 after five years; it loses $2000 per year.
 
    The ‘b Y’ (‘calc-fin-syd’) [‘syd’] command computes the accelerated
 “sum-of-years’-digits” depreciation.  Here the depreciation is higher
 during the early years of the asset’s life.  Since the depreciation is
 different each year, ‘b Y’ takes a fourth PERIOD parameter which
 specifies which year is requested, from 1 to LIFE.  If PERIOD is outside
 this range, the ‘syd’ function will return zero.
 
    The ‘b D’ (‘calc-fin-ddb’) [‘ddb’] command computes an accelerated
 depreciation using the double-declining balance method.  It also takes a
 fourth PERIOD parameter.
 
    For symmetry, the ‘sln’ function will accept a PERIOD parameter as
 well, although it will ignore its value except that the return value
 will as usual be zero if PERIOD is out of range.
 
    For example, pushing the vector ‘[1,2,3,4,5]’ (perhaps with ‘v x 5’)
 and then mapping ‘V M ' [sln(12000,2000,5,$), syd(12000,2000,5,$),
 ddb(12000,2000,5,$)] <RET>’ produces a matrix that allows us to compare
 the three depreciation methods:
 
      [ [ 2000, 3333, 4800 ]
        [ 2000, 2667, 2880 ]
        [ 2000, 2000, 1728 ]
        [ 2000, 1333,  592 ]
        [ 2000,  667,   0  ] ]
 
 (Values have been rounded to nearest integers in this figure.)  We see
 that ‘sln’ depreciates by the same amount each year, ‘syd’ depreciates
 more at the beginning and less at the end, and ‘ddb’ weights the
 depreciation even more toward the beginning.
 
    Summing columns with ‘V R : +’ yields ‘[10000, 10000, 10000]’; the
 total depreciation in any method is (by definition) the difference
 between the cost and the salvage value.