DISC Function (LibreOffice Calc)
The DISC function returns the discount rate of a security given its price, settlement date, maturity date, and redemption value. It is essential for valuing Treasury bills, commercial paper, and other discount securities.
Compatibility
▾| Excel | ✔ |
| Gnumeric | ✔ |
| Google_sheets | ✔ |
| Libreoffice | ✔ |
| Numbers | ✔ |
| Onlyoffice | ✔ |
| Openoffice | ✔ |
| Wps | ✔ |
| Zoho | ✔ |
What the DISC Function Does â–¾
- Computes the discount rate of a discount (zero‑coupon) security
- Uses settlement date, maturity date, price, and redemption value
- Supports multiple day‑count basis systems
- Works with real dates, serial numbers, and DATEVALUE
- Fully compatible with Excel’s DISC function
It is designed to be precise, finance‑grade, and ideal for money‑market analytics.
Syntax â–¾
DISC(settlement; maturity; price; redemption; [basis])
Arguments
-
settlement:
The date the security is traded to the buyer. -
maturity:
The date the security matures. -
price:
Price per 100 face value. -
redemption:
Redemption value per 100 face value (usually 100). -
basis (optional):
Day-count convention:
| basis | Day-count convention |
|---|---|
| 0 | US 30/360 |
| 1 | Actual/Actual |
| 2 | Actual/360 |
| 3 | Actual/365 |
| 4 | European 30/360 |
Basic Examples â–¾
Discount rate of a Treasury bill
=DISC("2024-03-15"; "2024-09-15"; 97.8; 100; 2)
Using Actual/Actual
=DISC(A1; A2; Price; 100; 1)
Using text dates
=DISC(DATEVALUE(A1); DATEVALUE(A2); Price; Redemption)
Advanced Examples â–¾
Commercial paper discount rate
=DISC("2024-01-10"; "2024-04-10"; 98.6; 100; 2)
From imported CSV timestamps
=DISC(DATEVALUE(LEFT(A1;10)); DATEVALUE(LEFT(A2;10)); Price; Redemption)
From Excel serial dates stored as text
=DISC(DATE(1899;12;30)+VALUE(A1); DATE(1899;12;30)+VALUE(A2); Price; Redemption)
Compute price from discount rate (inverse)
=PRICEDISC(Settlement; Maturity; Discount; Redemption; Basis)
Compute money‑market yield
=Discount * (360 / Days)
Compute effective annual yield
=(Redemption / Price) - 1
Edge Cases and Behavior Details â–¾
DISC returns a numeric value (annual discount rate)
Accepts:
- Real dates
- Serial numbers
- DATEVALUE outputs
Invalid text → Err:502
Behavior details
- Settlement < Maturity must hold
- Basis must be 0–4
- Price must be > 0
- Time components ignored
- Uses clean price (no accrued interest)
DISC of an error → error propagates
Common Errors and Fixes â–¾
Err:502 — Invalid argument
Cause:
- Dates not recognized
- Basis outside 0–4
- Price not numeric
Fix:
- Wrap dates with DATEVALUE
- Validate basis
- Ensure price is numeric
Err:504 — Invalid date sequence
Cause:
- Settlement after maturity
Fix:
- Correct date order
Unexpected discount rate
Cause:
- Wrong basis
- Incorrect price
- Incorrect redemption value
Fix:
- Verify inputs carefully
- Confirm day-count convention
Best Practices â–¾
- Use Actual/360 (basis 2) for money‑market instruments
- Use Actual/365 (basis 3) for UK T‑bills
- Normalize text dates with DATEVALUE
- Validate price carefully
- Use DISC with PRICEDISC and YIELDDISC for full discount‑security modeling
Related Patterns and Alternatives â–¾
- Use PRICEDISC to compute price from discount rate
- Use YIELDDISC to compute yield from price
- Use PRICEMAT for interest‑at‑maturity securities
- Use ACCRINTM for zero‑coupon bonds
- Use YEARFRAC for fractional year calculations
By mastering DISC and its companion functions, you can build powerful, accurate, and fully professional money‑market valuation models in LibreOffice Calc.