DISC Function (OpenOffice Calc)
Calculate DISC in Apache OpenOffice Calc with verified day-count examples. Distinguish redemption-based discount from investment return and helper differences.
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: =DISC(DATE(2024;1;1);DATE(2024;7;1);95;100;0) returned 0.1 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 DISC returns
DISC returns an annualized discount rate based on the redemption amount. Its formula is (1-Price/Redemption)/t, where t is the release’s YEARFRAC helper for the selected basis. This is different from annualizing the gain relative to the amount invested. Release implementation.
Syntax and arguments
DISC(Settlement;Maturity;Price;Redemption[;Basis])
- Settlement, Maturity: valid dates with Settlement<Maturity.
- Price, Redemption: positive amounts on the same scale, commonly per 100 of face value.
- Basis is optional and defaults to 0: 0 US 30/360, 1 actual/actual, 2 actual/360, 3 actual/365, or 4 European 30/360. These labels do not guarantee identical endpoint adjustments across every function in this release; the helper used here is identified below.
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. Enter DATE expressions directly rather than locale-dependent date text.
| Formula | Native 4.1.16 result | Independent reference |
|---|---|---|
=DISC(DATE(2024;1;1);DATE(2024;7;1);95;100;0) |
0.1 |
0.1 |
=DISC(DATE(2024;1;1);DATE(2024;7;1);95;100;1) |
0.100549450549 |
0.100549450549 |
=DISC(DATE(2024;1;1);DATE(2024;7;1);95;100;2) |
0.098901098901 |
0.098901098901 |
=DISC(DATE(2024;1;1);DATE(2024;7;1);95;100;3) |
0.100274725275 |
0.100274725275 |
=DISC(DATE(2024;1;1);DATE(2024;7;1);95;100;4) |
0.1 |
0.1 |
=DISC(DATE(2024;2;29);DATE(2024;3;31);95;100;0) |
0.6 |
0.6 |
=DISC(DATE(2024;2;29);DATE(2024;3;31);95;100;4) |
0.58064516129 |
0.58064516129 |
=DISC(DATE(2023;1;1);DATE(2024;1;1);95;100) |
0.05 |
0.05 |
Practical worksheet
From January 1 to July 1, 2024, with Price=95 and Redemption=100, Basis 0 uses t=0.5 and gives 0.10, or 10%. The discount is 5 relative to redemption 100, annualized over half a year.
Basis 2 instead uses 182/360 and gives approximately 0.098901098901. Basis 1 uses 182/366 and gives approximately 0.100549450549. Changing the day-count basis changes the annualized number even though the cash amounts and dates are unchanged.
Advanced interpretation and checks
For the same t, investment-based simple return is (Redemption/Price-1)/t, which exceeds the redemption-based discount when 0<Price<Redemption. In the half-year example that investment-based return is approximately 0.105263157895.
Do not assume DISC is a universal inverse of PRICEDISC in this release. DISC uses GetYearFrac; PRICEDISC uses GetYearDiff, whose month-end adjustments differ. For February 29 to March 31, 2024, Basis 0, DISC uses 30/360 and returns 0.6 for 95 and 100, while the other helper uses 31/360. The native examples retain that distinction.
Boundaries and troubleshooting
The source requires positive Price and Redemption and increasing dates. The ordinary fixture uses five documented bases, valid month-end dates and an omitted-basis example. Invalid dates, invalid bases, text parsing and extreme amounts were not executed.
Treat Basis 1 as the pinned implementation’s rule, not an assumed universal market convention: its YEARFRAC helper uses a start-year denominator and anniversary remainder. Confirm the applicable convention before using the result in a valuation workflow. A discount rate is not automatically a yield-to-maturity model for a coupon-paying instrument.
Related functions
Official evidence and checking scope
- Function-specific release implementation
- GetYearFrac date helper
- GetDiffParam date helper
- GetDiffDate360 date helper
- Optional basis conversion and validation
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.