Version: 4.5 (using KDE 4.5.5) OS: Linux The balance forecast reports, and the forecast report on the home page, both incorrectly predict the balance for loans with an interest rate. This doesn't only happen with 100% interest loans, but that seems to be the most obvious way to demonstrate it. This is quite a major bug, since it creates a drastically incorrect net worth forecast, rendering using KMM unusable to do predictions or financial planning with. Reproducible: Always Steps to Reproduce: To reproduce, create a loan with an final balloon amount equal to the initial amount. This should mean that the scheduled transaction is split as 100% interest, 0% principal. Now go to the 'All accounts forecast by month' report, or look at the 90-day forecast on the home page to view the forecast. Actual Results: Both reports show the balance as decreasing. Expected Results: Since the interest is equal to the scheduled payment, you would expect the balance to remain the same on a monthly basis. OS: Linux (x86_64) release 2.6.35-24-generic Compiler: cc Running Gnome under Ubuntu 10.10.
Addition - I just realised that the 'All accounts forecast by month' report is a custom one that I have created. You can recreate this report by making a new report as follows: Columns - Monthly Rows - Assets & Liabilities Detail - Top level Date Range - Next 12 months
Created attachment 56335 [details] Screenshots Interestingly, if I go to the 'Loan Information' report, I see these loans report as having 0% interest, which is not true. I've attached 3 screenshots. One shows the interest rates as set in the account editor, another shows the loan information report, and the other shows the incorrect forecast for the loan balance. I have edited the images to blank out any private details, but otherwise they are as shown in KMM.
Bump. Can anyone confirm this, or confirm when a fix is due please?
This is probably still relevant in 4.6.0
If it's still relevant I'm marking it as confirmed.
Created attachment 107264 [details] kmymoney test file
Git commit 9ab64ddd0f700699454cc5cfb7b79df8c97304c1 by Ralf Habacker. Committed on 16/08/2017 at 19:44. Pushed by habacker into branch '4.8'. Add qDebug operators for several kmymoney related classes This makes it easier to find complex bugs by outputting the internal state instead of inspecting the variables one by one in the debugger. To use for example on a transaction it could be called as qDebug() << transaction; where transaction is an instance of class MyMoneyTransaction. M +12 -0 kmymoney/mymoney/mymoneykeyvaluecontainer.cpp M +1 -0 kmymoney/mymoney/mymoneykeyvaluecontainer.h M +12 -0 kmymoney/mymoney/mymoneymoney.cpp M +5 -0 kmymoney/mymoney/mymoneymoney.h M +8 -0 kmymoney/mymoney/mymoneyobject.cpp M +1 -0 kmymoney/mymoney/mymoneyobject.h M +4 -4 kmymoney/mymoney/mymoneyreport.cpp M +28 -0 kmymoney/mymoney/mymoneysplit.cpp M +1 -0 kmymoney/mymoney/mymoneysplit.h M +24 -0 kmymoney/mymoney/mymoneytransaction.cpp M +1 -1 kmymoney/mymoney/mymoneytransaction.h https://commits.kde.org/kmymoney/9ab64ddd0f700699454cc5cfb7b79df8c97304c1
The case corresponds to an interim lending without amortization, which occurs after a time of e.g. 10 years by an approved building loan or similar. It looks that the recent algorithm does not support this kind of loan calculation. I see two solutions for this issue: 1. display a message box that interim lending without amortization not support yet or 2. extend the algorithm to support interim lending without amortization
Created attachment 108131 [details] Sequence diagram If someone want to look into the implementation I appended a related sequence diagram. With the current knowledge the issue seems to be located in 16: calculateForecast() or below.
Although this is a rather old bug, and I think your second solution is preferable in the long term, it should wait until after release of 5.0, in which case your first option could be included in 5.0 (and 4.6.2 if it is a simple patch.)
Just for the record: With 4.8.1 the error displayed in 'LoanInfoReport' seems to be gone, remaining is the forecast view in the overview tab and the forecast report.