From a7e5c866b9daa7be2e9be33827e01654a7d26ccd Mon Sep 17 00:00:00 2001 From: Cole French <16979554+ColeFrench@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:39:54 -0400 Subject: [PATCH] Fix first day of year edge case --- metrics_layer/core/model/filter.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/metrics_layer/core/model/filter.py b/metrics_layer/core/model/filter.py index 0531b91..d5ecb53 100644 --- a/metrics_layer/core/model/filter.py +++ b/metrics_layer/core/model/filter.py @@ -306,7 +306,12 @@ def _parse_n_interval_modifier(date_condition: str, interval_condition: str, tz: # We need to figure out how many days are between now and the start of the period start_of_period = Filter._start_date(lag=0, date_part=date_part, tz=tz, return_date=True) time_change = Filter._today(tz=tz) - start_of_period - lag = time_change.days - 1 if time_change.days > 0 else 0 + if date_part == "year" and time_change.days == 0: + lag = -1 + elif time_change.days > 0: + lag = time_change.days - 1 + else: + lag = 0 end_date = Filter._add_to_end_date(start_date, lag=lag, date_part="day") result.append((end_expression, Filter._date_to_string(end_date)))