diff --git a/PortfolioJournal/Views/Dashboard/MonthlyCheckInView.swift b/PortfolioJournal/Views/Dashboard/MonthlyCheckInView.swift index 9b715f1..d362c59 100644 --- a/PortfolioJournal/Views/Dashboard/MonthlyCheckInView.swift +++ b/PortfolioJournal/Views/Dashboard/MonthlyCheckInView.swift @@ -31,12 +31,10 @@ struct MonthlyCheckInView: View { } private var checkInProgress: Double { - guard let nextDate = nextCheckInDate, - let periodStart = Calendar.current.date( - byAdding: .month, - value: -checkInIntervalMonths, - to: nextDate - ) else { return 1 } + guard let nextDate = nextCheckInDate else { return 1 } + // Period starts at the first day of the month that opens the interval. + // e.g. monthly → Feb 1; quarterly → Jan 1 (3 months ending Mar 31) + let periodStart = nextDate.adding(months: -(checkInIntervalMonths - 1)).startOfMonth let totalDays = Double(max(1, periodStart.startOfDay.daysBetween(nextDate.startOfDay))) let elapsedDays = Double(max(0, periodStart.startOfDay.daysBetween(Date().startOfDay))) return min(elapsedDays / totalDays, 1)