DISC Function in ONLYOFFICE Spreadsheet Editor: Syntax and Examples
Calculate an annualized discount rate with redemption as the denominator, and distinguish it from return on invested capital.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer
=DISC(DATE(2026,1,15),DATE(2026,7,15),95,100,0) is expected to return 0.10, displayed as 10% with percentage formatting. The security costs 95 per 100 face value and redeems at 100 after a half-year under 30/360. DISC annualizes the discount relative to redemption, not the purchase price.
Syntax and inputs
=DISC(settlement, maturity, pr, redemption, [basis])
pr is the purchase price per 100 face value; redemption is the redemption amount on the same scale. Both must be positive. The first two arguments are dates, not numbers of days. There is no coupon-rate or payment-frequency argument: this is not a general coupon-bond yield solver.
Basis defaults to 0 when omitted. The documented codes are 0 US (NASD) 30/360, 1 actual/actual, 2 actual/360, 3 actual/365 and 4 European 30/360. Use DATE for unambiguous numeric dates, settlement strictly before maturity, and consistent monetary units. Brackets mark optional syntax and are not typed.
The implementation evaluates (1 − pr/redemption) / year_fraction. The day-count basis controls that year fraction. It does not turn the result into an effective compounded annual return.
Step-by-step: a discounted redemption
- Enter
=DATE(2026,1,15)in A2 and=DATE(2026,7,15)in B2. - Enter purchase price
95in C2 and redemption100in D2. - Enter basis
0in E2. - Put
=DISC(A2,B2,C2,D2,E2)in F2. - Format F2 as a percentage. Its expected stored value is 0.10, not 10.
Independent arithmetic gives a discount fraction of (100−95)/100 = 0.05. Under 30/360, six months is 180/360 = 0.5 years, so 0.05/0.5 = 0.10.
| Formula | Expected annual rate |
|---|---|
=DISC(A2,B2,95,100,0) |
0.10 |
=DISC(A2,B2,95,100) |
0.10, using default basis 0 |
=DISC(A2,B2,95,100,1) |
approximately 0.100828729282 |
=DISC(A2,B2,95,100,2) |
approximately 0.099447513812 |
=DISC(A2,B2,95,100,3) |
approximately 0.100828729282 |
=DISC(A2,B2,95,100,4) |
0.10 |
There are 181 actual days between the dates. For this same-year, non-leap example, bases 1 and 3 use 181/365, while basis 2 uses 181/360. These equalities do not establish every multi-year actual/actual convention: the inspected year-fraction helper averages relevant year lengths for that branch.
Advanced comparison: discount rate versus investment return
The cash gain is 5 on an investment of 95. Dividing by investment and then by 0.5 gives (100/95−1)/0.5 ≈ 0.105263157895, or 10.5263157895%. That is the simple annualized investment-rate calculation used by INTRATE, not DISC’s 10% discount rate.
Label the two measures explicitly rather than comparing percentages as though they shared a denominator. Scaling both monetary inputs by the same positive factor leaves the ratio unchanged, but entering a total purchase cost alongside redemption per 100 mixes units and yields an invalid economic interpretation. Fees or intermediate cash flows are not inferred; any such inputs need a deliberately specified model.
Errors and edge cases
- The source rejects
pr <= 0,redemption <= 0, settlement at/after maturity, or a basis outside 0–4 with#NUM!after its conversions. - Positive price above redemption is allowed:
=DISC(A2,B2,105,100,0)is expected to return −0.10. A negative output here describes a premium relative to redemption, not a parser failure. - Equal price and redemption gives zero.
- Date serials and basis are floored in the inspected wrapper, discarding a time fraction. Use intended whole-day dates and integer basis values.
- Empty required scalar inputs follow a
#N/Abranch and Boolean scalar inputs a#VALUE!branch in DISC. Text conversion and references have additional paths; do not substitute blanks or Boolean flags for the worked numeric inputs.
Use percentage formatting for readability, and retain enough precision before comparing close rates. Display rounding should not alter the underlying calculation.
Availability and verification scope
Checked October 18, 2026 against the official DISC help and official SDKJS source tagged v10.0.0.169. Desktop Editors 10.0 was released October 13, 2026. The original introduction version for this individual function is not established; current help does not mark it retired or deprecated.
All results in this guide are expected values from documentation, source inspection and independent arithmetic, not application observations. Neither the application nor its calculation engine was used to test these examples. The tag matches the installed version/build designation but does not establish identical behavior in every older release, mobile client, server deployment or imported workbook. Examples use English names and comma argument separators; adapt separators to editor settings. These fictional calculations explain a function, not an investment or borrowing recommendation.