From 0392fc46906d5e8342c789bdcce9045f9d352479 Mon Sep 17 00:00:00 2001 From: Catherine Renelle <32781029+catrenelle@users.noreply.github.com> Date: Sat, 14 Feb 2026 22:32:01 -0500 Subject: [PATCH] Use daily per-diem for payoff calculation and rename dashboard bills section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Payoff quotes always use daily per-diem interest (rate/365 × days) regardless of loan type. Rename "Upcoming Bills" to "Upcoming Transactions" on dashboard. Co-Authored-By: Claude Opus 4.6 --- frontend/src/views/dashboard/DashboardView.vue | 4 ++-- frontend/src/views/loans/LoansView.vue | 9 ++------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/frontend/src/views/dashboard/DashboardView.vue b/frontend/src/views/dashboard/DashboardView.vue index 7ae19cc..1923747 100644 --- a/frontend/src/views/dashboard/DashboardView.vue +++ b/frontend/src/views/dashboard/DashboardView.vue @@ -86,7 +86,7 @@ - mdi-calendar-clockUpcoming Bills + mdi-calendar-clockUpcoming Transactions {{ bill.payeeName }} @@ -96,7 +96,7 @@ - No upcoming bills + No upcoming transactions diff --git a/frontend/src/views/loans/LoansView.vue b/frontend/src/views/loans/LoansView.vue index 4adc79b..e21ce33 100644 --- a/frontend/src/views/loans/LoansView.vue +++ b/frontend/src/views/loans/LoansView.vue @@ -291,13 +291,10 @@ const filteredSchedule = computed(() => { return loanDetail.value.amortizationSchedule.filter(e => e.paymentDate.split('T')[0] >= today) }) -const dailyAccrualTypes = ['AutoLoan', 'LineOfCredit'] const payoffAmount = computed(() => { if (!loanDetail.value || !props.id) return null const balance = Math.abs(loanDetail.value.currentBalance) if (balance === 0) return 0 - const account = accountsStore.accounts.find(a => a.id === props.id) - if (!account) return balance const rate = loanDetail.value.interestRate / 100 const today = new Date() const todayStr = today.toISOString().split('T')[0] @@ -308,10 +305,8 @@ const payoffAmount = computed(() => { const todayMidnight = new Date(todayStr + 'T00:00:00') const days = Math.round((todayMidnight.getTime() - lastDate.getTime()) / 86400000) if (days <= 0) return balance - const isDailyAccrual = dailyAccrualTypes.includes(account.type) - const accruedInterest = isDailyAccrual - ? balance * rate / 365 * days - : balance * rate / 12 * (days / 30) + // Payoff quotes always use daily per-diem interest regardless of loan type + const accruedInterest = balance * rate / 365 * days return balance + accruedInterest })