Financial functions

ODDFPRICE

Matches all 6 recorded answers

Recorded: 6 workbook cells. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicODDFPRICE
BulgarianODDFPRICE
CzechODDFPRICE
DanishULIGE.KURS.PÅLYDENDE
GermanODDFPRICE
GreekODDFPRICE
English (Australia)ODDFPRICE
English (United Kingdom)ODDFPRICE
English (United States)ODDFPRICE
SpanishPRECIO.PER.IRREGULAR.1
EstonianODDFPRICE
FinnishPARITON.ENS.NIMELLISARVO
FrenchPRIX.PCOUPON.IRREG
HebrewODDFPRICE
CroatianODDFPRICE
HungarianELTÉRŐ.EÁR
IndonesianODDFPRICE
ItalianODDFPRICE
JapaneseODDFPRICE
KoreanODDFPRICE
LithuanianODDFPRICE
LatvianODDFPRICE
NorwegianAVVIKFP.PRIS
DutchAFW.ET.PRIJS
PolishCENA.PIERW.OKR
Portuguese (Brazil)ODDFPRICE
Portuguese (Portugal)PREÇOPRIMINC
RomanianODDFPRICE
RussianЦЕНАПЕРВНЕРЕГ
SlovakODDFPRICE
SlovenianODDFPRICE
Serbian (Latin)ODDFPRICE
SwedishUDDAFPRIS
ThaiODDFPRICE
TurkishTEKYDEĞER işlevi
UkrainianODDFPRICE
VietnameseODDFPRICE
Chinese (Simplified)ODDFPRICE
Chinese (Hong Kong)ODDFPRICE
Chinese (Traditional)ODDFPRICE

Names from Microsoft's support site.

What it does

ODDFPRICE(settlement, maturity, issue, first_coupon, rate, yld, redemption, frequency, [basis])

ODDFPRICE computes clean price per 100 face value for a security with an irregular first coupon. Its dates are settlement, maturity, issue and first_coupon. They are followed by coupon rate, yield, redemption, frequency and optional basis.

Try it

Input cells (optional)

Example: {"B2": 3, "B3": 4}. A1 holds the formula. Other cells need values before a formula can read them.

Enter a formula, then calculate.

Runs locally in your browser with OneCalc. Its answer may differ from Excel. Use English function names and commas between arguments.

=ODDFPRICE(DATE(2027,2,1),DATE(2027,10,1),DATE(2027,1,1),DATE(2027,4,1),0.06,0,100,2,0) gives a price near 104. The first coupon spans January to April, a short half-year coupon. Under 30/360 its payment is 1.5; the regular maturity coupon is three; accrued interest at February settlement is 0.5. At zero yield the clean price is 100+1.5+3-0.5=104.

Quirks

Basis defaults to zero: 0 US 30/360, 1 actual/actual, 2 actual/360, 3 actual/365, 4 European 30/360. Dates and selectors are truncated under their documented rules. Use DATE values rather than locale-dependent date text. The required date order is issue < settlement < first_coupon < maturity. Frequency is one, two or four. Negative coupon rate, invalid selectors and invalid amount/domain cases produce errors. These schedules cannot be reduced to PRICE by changing one date.

How to implement

Generate quasi-coupon periods aligned to first_coupon and maturity. Prorate the odd first coupon across those periods, discount it and later coupons/redemption, and subtract accrued interest. Long first periods can contain multiple quasi-coupons. The worked zero-yield example isolates the coupon and accrual arithmetic from discount powers. Calendar seams, long/short-period branches and residual numerical differences remain open where the recorded reports say so. The family combines a credited Apache-licensed ExcelFinancialFunctions translation in its odd-first kernel and calendar helpers with project-owned kernels and changes guided by recorded Excel answers.

Rust code

Show the CalcFunc source of this function

Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.

ODDFPRICE · 4 lines · calc-func/src/catalogue/bonds.rs on GitHub
23 oddfprice_fn "ODDFPRICE" (8, 9) [V "settlement", V "maturity", V "issue", V "first_coupon", V "rate", V "yld", V "redemption", V "frequency", V "basis"] |s, a, sv| {
    let dates = [date_1900(s, a, 0, sv)?, date_1900(s, a, 1, sv)?, date_1900(s, a, 2, sv)?, date_1900(s, a, 3, sv)?];
    odd_out(s, odd::oddfprice_kernel(dates[0], dates[1], dates[2], dates[3], num(s, a, 4)?, num(s, a, 5)?, num(s, a, 6)?, num(s, a, 7)?, basis(s, a, 8)?))
}

Kernels shared with other functions

Argument and result plumbing

  • fail catalogue/kit
  • num catalogue/kit

No implementation has been published with a Handbook test suite for this function.

Version differences

No same-input comparison between named Excel builds is recorded for this function here. The documented behaviour below is not a measurement of every Excel release.

Alternatives

ODDFYIELD solves yield from the same first-coupon schedule. ODDLPRICE handles an irregular final coupon; PRICE handles regular coupons.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents