Skip to content

Commit cee9d7e

Browse files
committed
Mark current recommendation reviews as pending
1 parent da7b0d9 commit cee9d7e

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

src/quant_advisor_research/recommendation_review.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ def return_between(start: PriceBar, end: PriceBar) -> float:
6262

6363

6464
def outcome_label(relative_return: float | None, *, elapsed_days: int, has_price_data: bool) -> str:
65-
if not has_price_data:
66-
return "insufficient_price_data"
6765
if elapsed_days <= 0:
6866
return "pending"
67+
if not has_price_data:
68+
return "insufficient_price_data"
6969
if relative_return is None:
7070
return "insufficient_price_data"
7171
if relative_return >= 0.02:

tests/test_recommendation_review.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,21 @@ def test_recommendation_review_calculates_forward_relative_return_from_cache(tmp
6868
assert review["summary"]["evaluated_count"] == 1
6969
assert review["summary"]["top_outperformers"] == ["MU"]
7070
assert "MU" in render_recommendation_review_markdown(review)
71+
72+
73+
def test_recommendation_review_marks_same_day_report_as_pending(tmp_path: Path) -> None:
74+
report_path = tmp_path / "advisory_report_2026-01-05.json"
75+
write_report(report_path)
76+
77+
review = build_recommendation_review(
78+
report_paths=[report_path],
79+
as_of=dt.date(2026, 1, 5),
80+
benchmark="SPY",
81+
cache_dir=tmp_path / "missing-cache",
82+
cache_max_age_days=14,
83+
use_network=False,
84+
)
85+
86+
assert review["review_items"][0]["outcome"] == "pending"
87+
assert review["summary"]["pending_count"] == 1
88+
assert review["summary"]["insufficient_price_data_count"] == 0

0 commit comments

Comments
 (0)