Contact

VDB Function (OpenOffice Calc)

Financial Intermediate OpenOffice Calc

Calculate variable declining-balance depreciation in Apache OpenOffice VDB. Compare straight-line switching, fractional periods and no-switch examples.

Verification status: Eight ordinary reference formulas were recalculated in Apache OpenOffice 4.1.16 on Linux x86-64, Build 9816, through generated native ODF and GUI hard recalculation. Saved identities, inputs and results were checked. How formula examples are checked

Quick answer: =VDB(1000;0;5;0;1) returned 400 in the tested Apache OpenOffice 4.1.16 build.

Availability and version history

  • Introduced: First release not established; documented by OpenOffice.org 3.3.
  • Supported in: Apache OpenOffice 4.1.16; this is a verified release, not a final supported version.
  • Scope: Desktop Calc, English function names and semicolon-separated formulas.
  • Checked: October 14, 2026. Eight ordinary reference formulas were recalculated from generated ODF in 4.1.16 on Linux x86-64, Build 9816. Source and independent arithmetic were checked.

What VDB returns

VDB returns depreciation over a time interval measured from the start of an asset’s life. By default it compares declining-balance charges with a straight-line amount and switches when straight-line is larger. The optional NoSwitch flag disables that switch. Release implementation.

Syntax and arguments

=VDB(Cost;Salvage;Life;Start;End[;Factor[;NoSwitch]])
  • Cost, Salvage: original cost and intended residual value; use 0≤Salvage≤Cost.
  • Life: useful life in consistent period units.
  • Start, End: interval positions measured from 0, with 0≤Start≤End≤Life.
  • Factor: optional declining-balance factor, default 2.
  • NoSwitch: optional FALSE; TRUE retains declining-balance depreciation without the straight-line switch.

Eight reproducible examples

The native column contains saved 4.1.16 results; independent references use high-precision arithmetic and the stated source rules. Values are shown to twelve decimal places where needed.

Formula Native 4.1.16 result Independent reference
=VDB(1000;0;5;0;1) 400 400
=VDB(1000;0;5;1;2) 240 240
=VDB(1000;0;5;2;3) 144 144
=VDB(1000;0;5;3;4) 108 108
=VDB(1000;0;5;4;5) 108 108
=VDB(1000;0;5;0;5) 1000 1000
=VDB(1000;0;5;3;4;2;1) 86.4 86.4
=VDB(1000;0;5;.5;1.5) 320 320

Practical worksheet

For cost 1000, salvage 0 and life 5, the default successive full-period charges are 400, 240, 144, 108 and 108. Their sum is 1000. At the start of the fourth year, book value is 216; spreading that over two remaining years gives 108, larger than the declining-balance amount 86.4.

That is why VDB(1000;0;5;3;4) gives 108 while VDB(1000;0;5;3;4;2;1) gives 86.4. Start and End are elapsed positions: 3 to 4 means the fourth year, not the third payment of a loan.

Advanced interpretation and checks

The complete interval from 0 through 5 gives 1000, matching the sum of the five default charges. Fractional positions are allowed: the tested interval 0.5 through 1.5 gives 320 for this asset. Its first half-year charge is 200, followed by the stated continuing declining-balance calculation.

The retained implementation has a special adjustment when a fractional start lies at or beyond half the useful life and Factor>1. Do not generalize the early fractional example into a universal rule that any VDB interval is simply a weighted sum of displayed annual rows. Later fractional-start cases were not executed here.

Boundaries and troubleshooting

The source checks negative Start, End<Start, End>Life, negative Cost, Salvage>Cost and nonpositive Factor. Use a positive Life and nonnegative Salvage even where the wrapper’s checks are less explicit. The tested cases use an ordinary five-period asset and no invalid inputs.

Factor and Life must use the same period convention. VDB does not decide which depreciation method is permitted for a tax return or financial report. Keep the method choice, residual value and useful life documented separately from the arithmetic result. Rounding each yearly entry prematurely can also prevent a displayed schedule from reconciling exactly.

DDB, DB, SLN.

Official evidence and checking scope

The generated ODF produced the informational load warning “Not all attributes could be read.” The sheet was hard-recalculated and saved separately. All eight ordinary function identities, inputs and results were reconciled; a stale SUM cache changed from 999999 to 3 and an uncached SUM returned 7. This establishes the stated examples, not every workbook style or invalid input. Other explanatory identities are independent calculations. The authoring-tool XLSX was not executed in OpenOffice, and its preview values are not the native results reported here.