FN-PPMT-001: PPMT is not PMT minus IPMT, and sits further from the exact value than PMT
Excel differs from the mathematical answer · measured · recorded 2026-11-04
On the 30-year loan PPMT(0.05/12,k,360,200000), for k from 1 to 12 every PPMT answer is 3 to 5 units above the correctly rounded principal payment, while PMT is 1 unit away. Excel's own answers do not satisfy the identity: in binary64, PMT - IPMT equals PPMT in 2 of the 12 periods and PMT - PPMT equals IPMT in 7. So reproducing PPMT from PMT and IPMT misses the last bits. FN-IPMT-001 gives the route Excel takes instead.
| Call and input route | Inputs | Excel | Correct value | Recorded in |
|---|---|---|---|---|
=PPMT(0.05/12,1,360,200000)formula-literal | As typed | -240.309912690944740xc06e09eace050723 | -240.309912690944630xc06e09eace05071f | Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA |
Correct value: mpmath at 800 bits with rate the binary64 0x3f71111111111111 that 0.05/12 evaluates to; correctly rounded.
Basis: Twelve recorded periods of one loan, read from the catalogue capture, compared with exact values and with Excel's own PMT and IPMT by binary64 subtraction, recomputed for this note.
Evidence and capture sources
- ExcelFunctionsHandbook · content/notes/evidence/2026-11-04/annuity-EVIDENCE.txt b5d84a80a5a4640eca9ce04f232c0bc115503f34 · research write-up; finding F4 gives 4 and 8 of 12 periods, and the capture gives the 2 and 7 stated here
- DnaCalc · crates/calc-func/tests/captures/catalogue/sections/dcj9k_annuity.capture.json c9f9d354165d2c20b9455c32582ea50baac7ba73 · recorded answers of the 30-year loan block
- DnaCalc · crates/calc-func/tests/captures/catalogue/sections/dcj9k_annuity.capture.json c9f9d354165d2c20b9455c32582ea50baac7ba73 · sheet dcj9k_annuity, row 727, column 4