Contact

TBILLYIELD Function (LibreOffice Calc)

Financial Intermediate LibreOffice Calc

Learn the TBILLYIELD function in LibreOffice Calc: Returns the yield for a treasury bill.

Verification status: Consult the documentation and examples below. Native application testing has not been documented for this guide. How formula examples are checked

Testing scope (13 October 2026): Results identified as native observations come from a historical LibreOffice Calc 25.2.3.2 Linux run. The saved ODS corroborates all 102 numerical and diagnostic records. Independent actual-day arithmetic reproduces the reported 29 agreements and 43 differences/errors; a separate check of the 25.2.3.2 source and its date helpers explains all 72 numerical cases, including six errors. No new Calc run was performed, and Calc 26.8 was documentation-checked only.

What TBILLYIELD does

TBILLYIELD calculates the annualized investment yield of a Treasury bill from its purchase price per 100 face value. The bill is a short-term, non-coupon instrument normally bought for less than its eventual redemption value. Because the investor pays the discounted purchase price, the yield is based on the difference between redemption and purchase, divided by purchase cost, not by face value.

A bill bought at 98.45 per 100 and redeemed at 100 yields a profit of 1.55 per 100 before fees. TBILLYIELD annualizes this gain using a 360-day financial convention and the bill’s settlement/maturity. The result is a rate, not a currency price. Formatting as a percentage helps prevent mistaking 0.091417 for 0.091417%.

Official syntax, required arguments and data types

TBILLYIELD(Settlement; Maturity; Price)
Argument Required Meaning Example
Settlement Yes Date the T-bill is purchased/settles DATE(1999;3;31)
Maturity Yes Date the T-bill redeems its face value DATE(1999;6;1)
Price Yes Purchase price per 100 face-value units, not the total cost or discount percentage 98.45

There is no optional Basis argument or default. All three arguments are mandatory. In the OpenFormula 1.4 specification, Price must be positive, and maturity must be less than one year beyond settlement. In the tested release, some invalid inputs produce Err:502; use input validation rather than relying on the calculation to catch all data errors.

Reproduce the official example — native result

LibreOffice 26.8 Help gives settlement 1999-03-31, maturity 1999-06-01 and price 98.45 per 100 face value.

=TBILLYIELD(DATE(1999;3;31);DATE(1999;6;1);98.45)

Observed native Calc 25.2.3.2 output: 0.09141696292534233. Displayed as a percentage, this is approximately 9.14169629%, or 9.1417% to four decimal percentage places. The official example with ISO date text gives the same output in the tested locale. The 62 actual calendar days in the quoted term produce the independent conventional calculation:

((100 - 98.45) / 98.45) × (360 / 62)
≈ 0.0914169629253428

The small displayed numerical difference is floating-point rounding. Agreement for this input is not evidence that all settlement/month-end cases agree.

Set up a small worksheet

Cell Enter Purpose
A2 =DATE(1999;3;31) Real settlement date
B2 =DATE(1999;6;1) Real maturity date
C2 98.45 Purchase price per 100, not 98.45%
D2 =TBILLYIELD(A2;B2;C2) Native yield: 0.0914169629
E2 =DAYS(B2;A2) Calendar days: 62
F2 =(100-C2)/C2*360/E2 Independent Actual/360 yield: 0.0914169629

Select a percentage display for D2/F2. If you replace the dates, the financial-function output and explicit DAYS calculation might differ on Calc 25.2.3.2; do not assume the same interval convention silently.

Why yields differ from a T-bill’s discount percentage

If A2/B2 contain the official March-to-June dates and the quoted bank discount is 9%, the function:

=TBILLPRICE(A2;B2;9%)

returns 98.45 in the tested Calc version. Passing this price to =TBILLYIELD(A2;B2;98.45) returns about 9.1417%. Although both are annualized rates, 9% uses face value as the base for the discount, while 9.1417% uses the investor’s purchase price as the denominator for the return. These two rates are mathematically different; equality is not a valid round-trip test.

The original discount and the resulting investment yield measure different denominators, so equality is not a valid test.

Worked date checks: Native Calc vs explicit Actual/360

The table compares Calc 25.2.3.2’s financial-function output with independent decimal calculations using real calendar days. For some intervals, the two agree; for others they diverge. This is test evidence, not a claim about LibreOffice 26.8 execution.

Settlement → maturity Price Actual days Calc 25.2.3.2 yield Independent Actual/360 yield Finding
1999-03-31 → 1999-06-01 98.45 62 9.141696% 9.141696% Official example agrees
2026-01-01 → 2026-04-01 95 90 20.821284% 21.052632% Different effective date count
2026-01-01 → 2026-07-01 97.5 181 5.099873% 5.099873% Agreement for this term
2026-03-01 → 2026-03-31 98.45 30 18.283393% 18.892839% Month-end discrepancy
2024-02-28 → 2024-03-01 99.5 2 45.226131% 90.452261% Large annualization difference over a very short term
2026-04-15 → 2026-10-15 95 183 10.468159% 10.353753% Different effective date count

The LibreOffice 25.2.3.2 source resolves the recorded discrepancy: getTbillyield calls its US-mode 360-day difference helper, then adds one day. Its result is (100/Price-1)*360/adjustedDays. The helper has specific month-end and February rules; this is not an ordinary actual-calendar-day interval. A separate Python interpretation of that source reproduces all 36 saved TBILLYIELD numerical cases. This is a release-specific source finding, not a new native run or a promise about later builds. Financial migrations still need representative end-of-month and leap-year tests.

Independent benchmark and difference check

If settlement is A2, maturity B2 and price per 100 is C2:

=(100-C2)/C2*360/DAYS(B2;A2)
=TBILLYIELD(A2;B2;C2)
=TBILLYIELD(A2;B2;C2)-(100-C2)/C2*360/DAYS(B2;A2)

The first is a separate, explicit actual-day benchmark; the second asks Calc’s financial function; the last returns a discrepancy, positive or negative. For the 2026-01-01 to 2026-04-01 sample at a price of 95, Calc’s TBILLYIELD returned approximately 0.2082128398, while the explicit actual-day calculation was approximately 0.2105263158. They are not equal in the installed tested build.

The manual formula may be useful for verification; it is not a substitute for checking the security’s prescribed market quote convention and settlement details.

Advanced worked scenario: total profit and yield

A T-bill with face value 20,000 and price 98.45 per 100 face value would require a gross purchase amount:

=20000*98.45/100

This independently calculates to 19,690 currency units. Redemption at par returns 20,000. Gross dollar profit is 310, excluding transaction expenses; proportional scaling does not change the annualized yield of 9.14169629% for the official 62-day dates. If a broker charges a commission, the real net investment return is lower. TBILLYIELD has no argument for fees, taxes or investor-specific cash flows.

To calculate the annualized return on total principal paid with a specified actual-day assumption and a fee amount in D2, use the separate model:

=(20000/(19690+D2)-1)*360/DAYS(B2;A2)

This is a general illustrative independent calculation rather than another observed TBILLYIELD formula. It assumes redemption at face value and treats all fees as paid up front; actual broker arrangements can differ.

Errors, input limits and diagnostic observations

Situation Native Calc 25.2.3.2 result Implication
Price = 0 or < 0 Err:502 Requires strictly positive purchase price
Settlement after maturity Err:502 Verify date order and actual date-cell typing
Settlement equals maturity Err:502 No positive duration for annualization
Maturity 2027-01-01 from 2026-01-01 Err:502 Exactly-one-calendar-year boundary rejected in this test
Maturity 2027-01-02 from 2026-01-01 Err:502 More-than-one-year interval rejected in this test
A price of exactly 100 0 No gain or loss to annualize
A price of 110 Negative yield Buying above par loses money upon redemption (before other cash flows)
Missing price or an added fourth argument Err:504 Exactly three parameters required
Text price "bad" #VALUE! (error 519) Use a numeric value; validate imports
Numeric-looking text price "98.45" Accepted in a native test Coercion is not a portable substitute for typed data

Do not rename LibreOffice’s observed errors to Excel’s #NUM! in a LibreOffice-specific native result table. In some exported formats the display may differ, and spreadsheet programs have different error labels and date parsing.

Practical input guard

For a conservative, clearly documented policy (valid numeric dates, positive price, maturity later than settlement and less than twelve calendar months from settlement):

=IF(NOT(AND(ISNUMBER(A2);ISNUMBER(B2);ISNUMBER(C2)));"Check bill inputs";IF(AND(A2<B2;B2<EDATE(A2;12);C2>0);TBILLYIELD(A2;B2;C2);"Check bill inputs"))

This is a proposed auditable guard, not one of the native test assertions. ODF’s less-than-one-year language is strict; treasury-market product definitions and whether exactly one year is admissible should be checked with the issuer. A guard cannot independently verify that Calc uses the date-count method required by the instrument.

Troubleshooting and worksheet portability

Treat A2 and B2 as typed dates, rather than US-style ambiguous text strings. Keep the purchase price measured per 100 and use 98.45 rather than 0.9845. Display D2 as a percentage for users. Check =DAYS(B2;A2) in a separate cell, especially when copying formulas between spreadsheet programs. If Calc gives a different yield than an independent Actual/360 calculation, inspect the native version, end-of-month dates and issuer’s quote convention before concluding one figure is right for the trade.

Entering dates and handling locales

Use DATE(year;month;day) or genuine spreadsheet date cells. DATE avoids the ambiguity of 04/01/2026, which means different dates in different locales. ISO-8601 quoted strings were accepted in the reproduced official 1999 example, but text date parsing is locale-sensitive and should not be the foundation of a reusable model. The examples on this page use Calc’s common English-function-name setting, a . decimal mark and semicolon argument separators. In some locales or customized settings, function names, decimal marks and separators appear differently. The function has no Basis argument, so do not append a fourth day-count parameter.

For reproducibility with cell references, place A2 = 2026-01-01 and B2 = 2026-04-01 as genuine dates (or compute them with =DATE(2026;1;1) and =DATE(2026;4;1)). Check =DAYS(B2;A2) = 90 in the native tested version. Date serial systems and importing a CSV can affect older workbook values; verify any imported dates.

Calculation conventions and practical limitations

Treasury-bill quotes often use a bank-discount convention, whose discount rate is quoted relative to face value, not investment cost. A money-market investment yield uses the purchase price as its denominator. That is why a discount of 9% and the yield on the resulting $98.45 price are not the same percentage.

There is also a separate, material date-count portability risk. The independent Actual/360 reference formulas in this article intentionally calculate elapsed calendar days with DAYS; they are not claimed to be the exact formula engine implementation on every LibreOffice build. A 72-case native Calc 25.2.3.2 comparison found 29 matches and 43 differences between the tested TBILLPRICE/TBILLYIELD outputs and independent Actual/360 benchmarks (36 cases per function). Errors near month ends and year boundaries can be financially significant. The observed differences are retained rather than edited out. For settlement or valuation decisions, compare against the bill’s official quote and the precise convention used by your institution.

The current LibreOffice 26.8 Help gives these functions’ syntax and examples but does not document every observed Calc 25.2.3.2 date-count edge case. Version 26.8 was documentation-checked, not executed. The ODF 1.4 OpenFormula specification defines the names, argument types and one-year/positive-input constraints, but these checks cannot prove that every Calc release follows the same constraints. Do not assume identical outputs merely because another spreadsheet advertises a function with the same name.

Validation and reproducibility disclosure

Historical numerical records, saved formulas and ODS outputs were compared directly. The 72 actual-day benchmark comparisons and 30 additional diagnostics are corroborated by the saved workbook. An independent source-based calculation now explains all 72 numerical outputs and errors for the checked release. The original 25 attempts to equate investment yield with discount quote used an invalid financial assumption and are not scored as function failures. The actual-day benchmark remains useful as a separate convention check, not a description of this implementation.

Migration compatibility: what was—and was not—verified

Target Evidence Coverage
LibreOffice Calc 25.2.3.2 on Linux Historical UNO results corroborated by saved formulas/workbook and release-specific source Function recognized; results and error observations documented here, including mismatches
LibreOffice Calc 26.8 Official Help page checked October 13, 2026 Syntax and official examples supported; no native run of 26.8
Other spreadsheet applications No product-specific native or official-source test in this review Not verified; do not infer compatibility from Excel alone

Source-by-claim record (checked 2026-10-13)

Claim covered Official primary source What was verified
Calc-specific function definition, exact argument order and official March 1999 example LibreOffice 26.8 Help — Financial Functions Part Two, TBILLPRICE/TBILLYIELD sections Page text checked October 13, 2026
ODF function name, argument types, positive-value and less-than-one-year constraints OASIS ODF 1.4 OpenFormula, sections 6.12.48–6.12.49 Published standard HTML; checked October 13, 2026
Precise return values, error codes, date-edge behavior on this page Historical Calc 25.2.3.2 formula results and saved workbook Native execution; independent Python Decimal/datetime comparison separately labeled

Implementation evidence: Financial functions at tag libreoffice-25.2.3.2 and date helpers at the same tag, retrieved 13 October 2026. The source interpretation explains the recorded version; the executable was not rerun.