From 4ff469ace5f979d2faa425c860343fc4c35260b7 Mon Sep 17 00:00:00 2001 From: Dmitry Astapov Date: Wed, 18 Nov 2020 00:51:55 +0000 Subject: [PATCH] cli: improve error for roi IRR rootfinding problems (closes #1398) --- hledger/Hledger/Cli/Commands/Roi.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hledger/Hledger/Cli/Commands/Roi.hs b/hledger/Hledger/Cli/Commands/Roi.hs index 32a423ea8..97a20b3a3 100644 --- a/hledger/Hledger/Cli/Commands/Roi.hs +++ b/hledger/Hledger/Cli/Commands/Roi.hs @@ -216,8 +216,10 @@ internalRateOfReturn showCashFlow prettyTables (OneSpan spanBegin spanEnd valueB (0.000000000001,10000) (interestSum spanEnd totalCF) of Root rate -> return ((rate-1)*100) - NotBracketed -> error' "Error: No solution -- not bracketed." -- PARTIAL: - SearchFailed -> error' "Error: Failed to find solution." + NotBracketed -> error' "Error (NotBracketed): No solution for Internal Rate of Return (IRR).\n" + ++ " Possible causes: IRR is huge (>1000000%), balance of investment becomes negative at some point in time." + SearchFailed -> error' "Error (SearchFailed): Failed to find solution for Internal Rate of Return (IRR).\n" + ++ " Either search does not converge to a solution, or converges too slowly." type CashFlow = [(Day, Quantity)]