Contact

DDB Function (Gnumeric)

Financial Intermediate Gnumeric Gnumeric 0.32

Build a double-declining depreciation schedule with DDB in Gnumeric. Understand the optional factor, salvage clipping, period limits and fractional inputs.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: =DDB(10000,1000,5,1) has the reference result 4000 under the Gnumeric 1.12.62 implementation. The calculations here are source-derived checks, not observed native worksheet results.

Availability and version history

  • Introduced: Implemented in Gnumeric 0.32. No exact release date is asserted here.
  • Documented support: Registered in Gnumeric 1.12.62 in the Financial Functions plugin. No retirement is established.
  • Last functioning version: Unverified for this guide. Source registration and independent arithmetic do not certify a running application version.
  • Scope: English function names and comma-separated formulas. The cached source comes from the October 13–14, 2026 audit; the full guide and reference calculations were checked on October 15, 2026.

What DDB calculates

DDB calculates a period charge using a declining balance and a rate equal to factor divided by life. The default factor of 2 is double-declining depreciation. The inspected callback caps the charge so it cannot consume the salvage value. It does not automatically switch to straight-line depreciation for the remaining periods.

Function-specific help and complete worksheet callback establish the operation described here.

Syntax and arguments

=DDB(cost,salvage,life,period[,factor])
  • cost: Nonnegative initial value.
  • salvage: Nonnegative residual value.
  • life: Positive number of periods.
  • period: Positive subject period no greater than life.
  • factor: Optional positive multiplier for the declining rate; defaults to 2. Brackets mark an optional argument and are not typed.

The argument registration and callback were inspected together. A familiar function name in another spreadsheet is not a guarantee of the same input guards.

Reproducible worksheet

Put 10000 in B2, 1000 in B3, 5 in B4 and 2 in B5. Enter periods 1 through 5 in A9:A13. In B9 enter =DDB($B$2,$B$3,$B$4,A9,$B$5) and fill down. The reference charges are 4000, 2400, 1440, 864 and 296. Track the closing balance with =$B$2-SUM($B$9:B9) in C9, filled down. It closes at 6000, 3600, 2160, 1296 and 1000.

In the last period, 40% of the unadjusted opening balance would be 518.4. Only 296 can be charged before reaching salvage, so the callback clips that amount. Check both period charges and final book value when reproducing the schedule.

Formula checks

These are independently calculated expected results from the pinned callback, with repeating or irrational values rounded to twelve decimal places. Error labels follow explicit source guards. They are not screenshots or native execution results.

Formula Expected reference result
=DDB(10000,1000,5,1) 4000
=DDB(10000,1000,5,2) 2400
=DDB(10000,1000,5,3) 1440
=DDB(10000,1000,5,4) 864
=DDB(10000,1000,5,5) 296
=DDB(10000,1000,5,1,1.5) 3000
=DDB(10000,1000,5,0.5) 4000
=DDB(1000,1200,5,1) 0
=DDB(1000,100,5,0) #NUM!
=DDB(1000,100,5,6) #NUM!
=DDB(1000,100,5,1,0) #NUM!

Advanced application and cross-check

The factor changes the schedule rather than the original depreciable base. =DDB(10000,1000,5,1,1.5) has the reference value 3000; the default factor gives 4000. Within the ordinary domain used here, prior theoretical depreciation equals cost*(1-(1-factor/life)^(period-1)). The current charge is the lesser of the ordinary declining charge and the remaining room above salvage.

A double-declining schedule need not reach salvage by the final period. With cost 10000, salvage 100, life 5 and default factor, five charges total 9222.4 and leave 777.6. That is above salvage and consistent with the lack of a straight-line switch. Do not force a final residual adjustment by silently changing the DDB result.

Errors, boundaries and troubleshooting

The source returns #NUM! for negative cost or salvage, nonpositive life, period outside (0,life], or nonpositive factor. After those guards, salvage at or above cost returns zero. A period strictly between zero and one is internally raised to one, except that a sub-one life may trigger the remaining-value branch. These details differ from simply rounding every input.

Noninteger periods above one are used in the power expression. This guide’s full schedule uses integer periods and a factor/life between zero and one. Extremely large factors and non-real power combinations are outside the checked reference examples; do not infer portable error behavior from the ordinary schedule. Keep period and life units consistent and validate assumptions before using the output.

Use actual numeric input cells for this fixture. Native handling of blank cells, numeric text, application-localized formula entry and display formatting was not executed here. Keep missing values distinct from deliberately supplied zero; using ISNUMBER to inspect inputs can prevent a text-formatted amount from being mistaken for a verified numeric fixture. The tables do not claim a particular result for untested coercions.

Evidence and verification limits

This guide uses the official pinned Gnumeric 1.12.62 source and independent reference arithmetic. It does not claim native execution, GUI validation, current-release parity or cross-product equivalence. The cached source date and the editorial checking date above describe separate activities. For an operational workbook, compare a small copy of this fixture with the installed version before relying on an imported schedule.

DB, SLN, SYD.