support simple daily interest
This commit is contained in:
@@ -185,7 +185,9 @@ interest transaction on the 28th of the month, set the account note to
|
|||||||
By default, interest is calculated using the 30/360 method where interest is
|
By default, interest is calculated using the 30/360 method where interest is
|
||||||
computed monthly using 30/360 (or 1/12) of the interest rate. If you need to
|
computed monthly using 30/360 (or 1/12) of the interest rate. If you need to
|
||||||
compute interest using the ACTUAL/ACTUAL method, set `interest:actual` in the
|
compute interest using the ACTUAL/ACTUAL method, set `interest:actual` in the
|
||||||
note. If you need to compute interest daily, set `interest:daily`.
|
note. If you need to compute interest daily, set `interest:daily`. For most
|
||||||
|
student loans, you probably want simple dailiy interest
|
||||||
|
`interest:daily-simple`.
|
||||||
|
|
||||||
You can optionally change the payee used for the interest transactions by
|
You can optionally change the payee used for the interest transactions by
|
||||||
setting `INTEREST_PAYEE_NAME` in the `.env` file.
|
setting `INTEREST_PAYEE_NAME` in the `.env` file.
|
||||||
|
|||||||
+7
-1
@@ -49,6 +49,7 @@ function daysInYear(year) {
|
|||||||
let numPeriods = 1
|
let numPeriods = 1
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case 'daily':
|
case 'daily':
|
||||||
|
case 'daily-simple':
|
||||||
period = daysInYear(interestTransactionDate.getFullYear());
|
period = daysInYear(interestTransactionDate.getFullYear());
|
||||||
numPeriods = daysPassed;
|
numPeriods = daysPassed;
|
||||||
break;
|
break;
|
||||||
@@ -60,7 +61,12 @@ function daysInYear(year) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const balance = await getAccountBalance(account, interestTransactionDate);
|
const balance = await getAccountBalance(account, interestTransactionDate);
|
||||||
const compoundedInterest = Math.round(balance * (Math.pow(1 + interestRate / period, numPeriods) - 1));
|
|
||||||
|
let compoundedInterest;
|
||||||
|
if (kind == 'daily-simple')
|
||||||
|
compoundedInterest = Math.round(balance * (interestRate / 365) * numPeriods);
|
||||||
|
else
|
||||||
|
compoundedInterest = Math.round(balance * (Math.pow(1 + interestRate / period, numPeriods) - 1));
|
||||||
|
|
||||||
interestRate = showPercent(interestRate);
|
interestRate = showPercent(interestRate);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user