Bond duration: excel versus calculator

I am trying to reconcile the modified duration calculation from Excel with the output from my new TI BA II Plus Professional calculator. Here is the input: Settlement date 6/28/2007 Maturity date 1/1/2023 Coupon 7.875% YTM: 7.543 Price: 103 365 day year, semi-annual payments My calculator says the modified duration is 8.9725, however Excel reports 8.6476. In Excel, I am using the MDURATION function with the inputs as (6/28/2007,1/1/2023,7.875%,7.543%,2,1). It seems like my calculator is giving me the Macauly duration rather than the modified duration. However the manual is quite clear that it should be generating the modified duration. Has anyone else run into this before? Thanks!

the excel function MDURATION assumes par value of 100. your calculator input price is 103. that could be the difference.

I tried change the bond price in the calculator but it has no effect - the duration is calculated independently of the current price. However, it seems that if I take the Macaulay duration output from the calculator and adjust it to D*=MD/(1+r/n) where D* is the modified duration, then I get the Excel answer. So I guess my TI is reporting Macaulay duration even though the manual very clearly calls it modified duration. In fact, the manual makes reference to the modified duration formula in the appendix, but doesn’t seem to be using it.