DEPRECIATION

DEPRECIATION('ValueNode', 'DepreciationTime' [, "TimeLevel"])

In Finance functions

The DEPRECIATION function calculates linear depreciation values per period from an investment node and a depreciation time node. The result is the depreciation amount for each time period, not the remaining book value. Depreciation from multiple investment periods stacks automatically.

Use this function when you need to calculate straight-line depreciation values per period from initial investments and their depreciation times: DEPRECIATION('Investments', 'DepreciationTime').

Parameters

ValueNodeNode referenceRequired
Input node with the values to depreciate over time. Must have a time level.
DepreciationTimeNode referenceRequired
Node containing the depreciation periods for each asset. Must not have a time level. Values must be positive whole numbers.
TimeLevelLevel nameOptional
The time level to which depreciation times correspond. Default: "Year".

Output shape

Dimensionality
Same as ValueNode.
Time range
Extends beyond the input data. Depreciation continues for the specified number of periods after each investment.
Values
Linear depreciation amount per period: investment / depreciation_periods. Values from investments in different periods are added together where they overlap.
Row count
Expanded. Periods beyond the last investment are included as long as depreciation is still active.

Watch out

  • The ValueNode must have a time level. The DepreciationTime node must not have a time level.
  • Depreciation times must be positive whole numbers. Zero, negative, or non-integer values produce errors.
  • When TimeLevel is omitted, depreciation times are assumed to be in years. If the ValueNode is at Quarter or Month granularity, the depreciation times are automatically converted (e.g. 4 years becomes 16 quarters or 48 months).
  • The result is the depreciation amount per period, not the remaining book value. To get the remaining book value, subtract the cumulative depreciation (using RUNNINGSUM) from the original investment.
  • The DepreciationTime node must not be more fine-grained than the ValueNode.

Examples

Overlapping depreciation from yearly investments

Two investments made in consecutive years are each depreciated over 4 periods. The result shows how depreciation amounts from different investments stack up.

Input node: 'Investments'

YearValue
20251000
2026400

Input node: 'DepreciationTime'

Periods
4

Formula: DEPRECIATION('Investments', 'DepreciationTime')

YearCalculationResult
2025250
2026250 + 100350
2027250 + 100350
2028250 + 100350
2029100
20300

Each investment is divided by 4 periods: 1000/4 = 250, 400/4 = 100. From 2026 to 2028 both depreciation streams overlap.

Per-category depreciation times

Two asset categories with different depreciation times show that each category is depreciated independently based on its own period count.

Input node: 'Investments'

YearCategoryValue
2026A2000
2026B1000

Input node: 'DepreciationTime'

CategoryPeriods
A2
B4

Formula: DEPRECIATION('Investments', 'DepreciationTime')

YearCategoryDEPRECIATION Result
2026A1000
2026B250
2027A1000
2027B250
2028A0
2028B250
2029A0
2029B250
2030A0
2030B0

Category A is fully depreciated after 2 periods, while Category B continues for 4 periods.

See also

RUNNINGSUM
Combine with DEPRECIATION to calculate remaining book value: 'Investment' - RUNNINGSUM(DEPRECIATION(...)).
Was this page helpful?