diff --git a/conservancy_beancount/reports/core.py b/conservancy_beancount/reports/core.py index dbf602da6b177c590b209fc3d759b00e90168bb7..d2cc8645de53be47f166c4303b9cad6b5a665e3c 100644 --- a/conservancy_beancount/reports/core.py +++ b/conservancy_beancount/reports/core.py @@ -368,6 +368,14 @@ class RelatedPostings(Sequence[data.Posting]): def balance_at_cost(self) -> Balance: return Balance(post.at_cost() for post in self) + def balance_at_cost_by_date(self, date: datetime.date) -> Balance: + for index, post in enumerate(self): + if post.meta.date >= date: + break + else: + index += 1 + return Balance(post.at_cost() for post in self._postings[:index]) + def meta_values(self, key: MetaKey, default: Optional[MetaValue]=None,