DDB Function in ONLYOFFICE Spreadsheet Editor: Syntax, Worked Examples and Limitations
Step-by-step ONLYOFFICE DDB function tutorial with verified vendor syntax, financial worksheet examples, independent numerical expectations and troubleshooting.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
DDB calculates one period’s declining-balance depreciation with an adjustable factor. With an 8,000 cost, 1,000 residual value and five-year life, the default factor of two gives =DDB(8000,1000,5,1) an independently expected first-year expense of 3,200.
Availability and version history
- Introduced: The original release and date are not established by the checked official sources.
- Availability: Documented in the current ONLYOFFICE Spreadsheet Editor help; no final supported-version endpoint is established.
- Scope: Docs and Desktop Editors have separate release histories. The rolling help and a May 19, 2026 source snapshot do not certify every older build or mobile client.
- Checked: October 14, 2026, using official DDB help, public source inspection and independent arithmetic. No native editor test.
Syntax and defaults
=DDB(cost, salvage, life, period, [factor])
| Argument | Meaning | Required or default |
|---|---|---|
cost |
Original asset cost | Required |
salvage |
Estimated residual value | Required |
life |
Total life in periods | Required |
period |
Period for which to calculate the expense; same units as life | Required |
factor |
Declining-balance multiplier | Optional; 2 |
The official reference says the values must be positive. All inputs below follow that instruction. The factor is a multiplier: 2 gives double-declining depreciation; 1 applies one divided by life to the declining book value. Factor 1 is not straight-line depreciation.
Do not type the optional-argument brackets. These examples use English function names and commas; follow the syntax accepted by your installed editor if its locale differs.
Practice worksheet
Enter the following numbers in B2:B6. Put the result formulas in D2:D9 without overwriting the inputs.
| Cell | Value | Meaning |
|---|---|---|
| B2 | 8000 | Original cost |
| B3 | 1000 | Estimated residual value |
| B4 | 5 | Life in years |
| B5 | 2 | Double-declining factor |
| B6 | 1 | Slower factor for comparison |
| Output | Formula | Expected amount | What it shows |
|---|---|---|---|
| D2 | =DDB(B2,B3,B4,1) |
3200 | Default factor, year one |
| D3 | =DDB(B2,B3,B4,2) |
1920 | Year two |
| D4 | =DDB(B2,B3,B4,3) |
1152 | Year three |
| D5 | =DDB(B2,B3,B4,4) |
691.20 | Year four |
| D6 | =DDB(B2,B3,B4,5) |
36.80 | Final charge limited by salvage |
| D7 | =DDB(B2,B3,B4,1,B5) |
3200 | Explicit factor two matches the default |
| D8 | =DDB(B2,B3,B4,1,B6) |
1600 | Factor one reduces the first charge |
| D9 | =DDB(3500,500,5,1,2) |
1400 | Inputs and output pictured in the official reference |
The final row agrees with the vendor’s screenshot. The schedule values are independently calculated expectations; keep the formulas unrounded even if the cells display currency to two decimal places.
Understand the rate and salvage limit
For the main example, factor/life = 2/5 = 40%. The first charge is 8000*40% = 3200, leaving 4,800. The second charge is 4800*40% = 1920, leaving 2,880. Applying the same rate produces 1,152 and 691.20 in the next two years.
Before year five, only 1,036.80 remains. A full 40% charge would be 414.72, which would reduce the balance below 1,000. The expected charge is instead 36.80. The pinned official source explicitly limits depreciation at salvage and prevents a negative charge. Its declining rate is also capped at one when factor divided by life would exceed one.
The source inspection resolves the salvage-limit question left open by the short help page. It describes the checked May 19, 2026 snapshot, not an execution test of every ONLYOFFICE version.
Build a schedule that reconciles
In G2:G6 enter 1, 2, 3, 4, 5. In H2 enter =DDB($B$2,$B$3,$B$4,G2,$B$5) and copy it down to H6. Put =$B$2-H2 in I2, then =I2-H3 in I3 and fill I3 down to I6.
| Year | Expected expense | Expected closing book value |
|---|---|---|
| 1 | 3200 | 4800 |
| 2 | 1920 | 2880 |
| 3 | 1152 | 1728 |
| 4 | 691.20 | 1036.80 |
| 5 | 36.80 | 1000 |
In H7, =SUM(H2:H6) should have the independent expectation 7,000. In I7, =$B$2-H7-I6 should be 0, checking that cost minus accumulated depreciation equals the final balance. A period expense and accumulated depreciation are different quantities.
Compare factors without assuming a straight-line switch
Keep the period list and add =DDB($B$2,$B$3,$B$4,G2,$B$6) in K2; fill down to K6. With factor 1, the expected expenses are 1,600; 1,280; 1,024; 819.20; 655.36. Their sum is 5,378.56, leaving 2,621.44 after five periods, above the estimated salvage.
This is an important limitation: reducing the factor does not make DDB choose a final balancing charge or automatically switch to straight line. The checked source applies declining balances and the salvage limit. By comparison, SLN for these inputs gives 1,400 every year, totalling 7,000. The separately documented VDB function has its own straight-line-switch control and interval arguments.
For a practical policy comparison, put both schedules beside the same period list and compare each year’s expense and closing value. Do not compare only the first year and assume the totals will match.
Common mistakes and troubleshooting
- Factor confused with an interest rate: Factor 2 divided by a five-period life gives a 40% declining rate. It is not a 2% rate and not a financing cost.
- Life and period use different units: Use year one with a life in years, or consistently defined periods. DDB has no first-year month parameter; DB’s official reference documents that separate option.
- Late expense looks unexpectedly small: Inspect beginning book value relative to salvage before treating a small charge as an error.
- Same expense repeated in every row: Fix cost, salvage, life and factor references, while letting the period reference change.
- Input is zero or negative: It falls outside the help page’s stated positive-input rule. Exact native coercion and error messages are not established here.
- Results change after importing: Confirm the formula and factor survived the transfer, then reconcile the complete schedule in the target application.
Use whole periods for these examples. Fractional periods, values outside a normal useful life and malformed inputs require separate validation; do not infer an error token from a different spreadsheet’s behavior. Choosing an accounting or tax depreciation policy also requires more than checking a formula’s arithmetic.