{
  "category": "Financial functions",
  "display_name": "SYD",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.SYD",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20430"
      ],
      "larger_numeric": 0,
      "last_bit": 0,
      "matched": 1207,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 1207,
      "unread": 0,
      "worst_ulp": 0
    },
    "detail": "Recorded: 1,207 in the answer bank and 6 workbook cells.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "matches",
    "state_label": "Matches every recorded Excel answer",
    "summary": "Matches all 1,213 recorded answers",
    "workbook_corpus": {
      "cells": 6,
      "matched": 6
    }
  },
  "implementations": [
    {
      "commit": "9e1884369a678158dd82d3d74188daf986995e87",
      "flavour": "excel-compatibility-candidate",
      "language": "Rust",
      "name": "CalcFunc",
      "own_code": [
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/financial.rs#L286-L288",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/depreciation_family.rs#L46-L72"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "ported/depreciation_family::validate_finite",
        "ported/depreciation_family::publish_depreciation",
        "ported/excel_numeric::binary_with",
        "ported/excel_numeric::excel_x87_add",
        "ported/excel_numeric::excel_x87_sub",
        "ported/excel_numeric::excel_x87_mul",
        "ported/excel_numeric::excel_x87_div",
        "ported/excel_numeric/x87::mul",
        "ported/excel_numeric/x87::add",
        "ported/excel_numeric/x87::sub",
        "ported/excel_numeric/x87::div"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/financial.rs#L286-L288",
      "state": "matches",
      "suite": null,
      "summary": "Matches all 1,213 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.SYD.json",
  "name": "SYD",
  "notes": [],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n[SLN](FUNC.SLN.md) uses equal allowances; [DB](FUNC.DB.md) and [DDB](FUNC.DDB.md) use a declining balance.\n\n\n",
    "how-to-implement": "\nLet `R` be the [stored 64-bit-significand operation](../model/09-staged-arithmetic.md), and let `D` mean ordinary binary64 arithmetic. First validate finite inputs and the guards above.\n\n1. Store `L=R(life+1)`. Compute `den=D(R(life*L)/2)`. If den is nonfinite or has magnitude below the minimum normal value, replace it with zero; reject a zero denominator with `#DIV/0!`.\n2. Compute `basis=R(cost-salvage)`. Reject a nonfinite basis and flush a subnormal basis to positive zero.\n3. Compute `remaining=R(L-per)`, then `numerator=R(basis*remaining)`. Keep `(life+1)-per` in that order: `life-per+1` can lose different low bits.\n4. Compute `result=R(numerator/den)`. Reject nonfinite output with `#NUM!` and publish a subnormal result as positive zero.\n\nWorked at `cost=1200,salvage=200,life=4,per=1`: `L=5`, `den=4*5/2=10`, `basis=1000`, `remaining=4`, `numerator=4000`, result `400`. At periods two, three and four the remaining weights are three, two and one, giving `300,200,100`. These four exact small examples total the depreciable 1000.\n\nA ratio-first implementation of the same mathematical equation has different rounded intermediates. The current source's selected store discriminants support this operation order; they do not settle every data-admission or workbook route.\n\n\n",
    "quirks": "\nLife and period use the same time unit and are not automatically truncated to whole years. The current kernel admits negative cost, but rejects negative salvage, nonpositive life or period, and a period above life when their positive difference is at least the minimum normal binary64 value. The very-small-difference condition is an explicit compatibility guard.\n\nThe output is one period's depreciation. It is not the total through that period. The denominator's overflow/subnormal handling differs from the numerator's: the current denominator becomes zero and gives `#DIV/0!`, while a nonfinite basis or final result gives `#NUM!`. Microsoft's opened page describes the method without spelling out these numerical branches.\n\n\n",
    "sources": "\n- [Microsoft: SYD function](https://support.microsoft.com/en-us/excel/functions/syd-function), opened 6 November 2026; syntax, documented argument rules and errors.\n- [DnaCalc implementation](https://github.com/DnaCalc/DnaCalc/blob/da3ecc4fb19a3a5529708c311d0e8f05688ac165/crates/calc-func/src/ported/depreciation_family.rs); implementation steps and the limits identified in the text.\n\n",
    "try-it": "\n`=SYD(1200,200,4,1)` returns `400`. The four weights are four, three, two and one; the first period gets `4/10` of the depreciable 1000. The last period gets 100.\n\n\n",
    "version-differences": "The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.\n\n| Excel 16.0 build | Platform and CPU | Captured inputs |\n|---|---|---:|\n| 20430 | Windows, 64-bit, CPU not recorded | 50,859 |\n\nThe record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.\n\n[Recorded environments and comparison details](https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.SYD.json).",
    "what-it-does": "\n`SYD(cost,salvage,life,per)` returns depreciation for a specified period by the sum-of-years’ digits method. Earlier periods receive larger weights.\n\n\n"
  },
  "signature": {
    "display": "SYD(cost, salvage, life, per)",
    "parameters": [
      {
        "description": null,
        "name": "cost",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "salvage",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "life",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "per",
        "optional": false,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 4,
        "min": 4
      },
      "category": "Financial functions",
      "classification": {
        "arg_preparation_profile": "ValuesOnlyPreAdapter",
        "coercion_lift_profile": "Custom",
        "determinism_class": "Deterministic",
        "error_collapse_profile": "None",
        "fec_dependency_profile": "None",
        "host_interaction_class": "None",
        "kernel_signature_class": "Custom",
        "rich_value_usage": "RichBlind",
        "surface_fec_dependency_profile": "RefOnly",
        "thread_safety_class": "SafePure",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "Sum-of-years'-digits depreciation for one period",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns the sum-of-years' digits depreciation of an asset for a specified period",
        "microsoft_url": "https://support.microsoft.com/en-us/office/syd-function-069f8106-b60b-4ca2-98e0-2a0f206bdb27"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "SYD"
        },
        {
          "locale": "bg-BG",
          "name": "SYD"
        },
        {
          "locale": "cs-CZ",
          "name": "ODPIS.NELIN"
        },
        {
          "locale": "da-DK",
          "name": "ÅRSAFSKRIVNING"
        },
        {
          "locale": "de-DE",
          "name": "SYD"
        },
        {
          "locale": "el-GR",
          "name": "SYD"
        },
        {
          "locale": "en-AU",
          "name": "SYD"
        },
        {
          "locale": "en-GB",
          "name": "SYD"
        },
        {
          "locale": "en-US",
          "name": "SYD"
        },
        {
          "locale": "es-ES",
          "name": "SYD"
        },
        {
          "locale": "et-EE",
          "name": "SYD"
        },
        {
          "locale": "fi-FI",
          "name": "VUOSIPOISTO"
        },
        {
          "locale": "fr-FR",
          "name": "SYD"
        },
        {
          "locale": "he-IL",
          "name": "SYD"
        },
        {
          "locale": "hr-HR",
          "name": "SYD"
        },
        {
          "locale": "hu-HU",
          "name": "ÉSZÖ"
        },
        {
          "locale": "id-ID",
          "name": "SYD"
        },
        {
          "locale": "it-IT",
          "name": "SYD"
        },
        {
          "locale": "ja-JP",
          "name": "SYD"
        },
        {
          "locale": "ko-KR",
          "name": "SYD"
        },
        {
          "locale": "lt-LT",
          "name": "SYD"
        },
        {
          "locale": "lv-LV",
          "name": "SYD"
        },
        {
          "locale": "nb-NO",
          "name": "SYD"
        },
        {
          "locale": "nl-NL",
          "name": "SYD"
        },
        {
          "locale": "pl-PL",
          "name": "SYD"
        },
        {
          "locale": "pt-BR",
          "name": "SYD"
        },
        {
          "locale": "pt-PT",
          "name": "AMORTD"
        },
        {
          "locale": "ro-RO",
          "name": "SYD"
        },
        {
          "locale": "ru-RU",
          "name": "АСЧ"
        },
        {
          "locale": "sk-SK",
          "name": "SYD"
        },
        {
          "locale": "sl-SI",
          "name": "SYD"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "SYD"
        },
        {
          "locale": "sv-SE",
          "name": "ÅRSAVSKR"
        },
        {
          "locale": "th-TH",
          "name": "SYD"
        },
        {
          "locale": "tr-TR",
          "name": "YAT işlevi"
        },
        {
          "locale": "uk-UA",
          "name": "SYD"
        },
        {
          "locale": "vi-VN",
          "name": "SYD"
        },
        {
          "locale": "zh-CN",
          "name": "SYD"
        },
        {
          "locale": "zh-HK",
          "name": "SYD"
        },
        {
          "locale": "zh-TW",
          "name": "SYD"
        }
      ],
      "signature": {
        "display": "SYD(cost, salvage, life, per)",
        "parameters": [
          {
            "description": null,
            "name": "cost",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "salvage",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "life",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "per",
            "optional": false,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "SYD",
      "version_marker": null,
      "xlcall": {
        "code": "143",
        "symbol": "xlfSyd"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/syd-function-069f8106-b60b-4ca2-98e0-2a0f206bdb27"
  },
  "try_it": {
    "formula": "=SYD(1200,200,4,1)"
  },
  "url": "https://handbook.dnacalc.com/functions/SYD.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "50,859 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 20430",
      "platform": "Windows, 64-bit, CPU not recorded",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.SYD.json"
      ]
    }
  ]
}