20 lines
1.1 KiB
YAML
20 lines
1.1 KiB
YAML
id: PORT-003
|
|
title: Historical LTV Chart
|
|
status: done
|
|
priority: P2
|
|
effort: M
|
|
depends_on:
|
|
- PORT-001
|
|
tags:
|
|
- portfolio
|
|
- history
|
|
- charts
|
|
summary: Workspace-scoped LTV snapshots are now recorded over time and rendered on the overview page with CSV export.
|
|
completed_notes:
|
|
- Added structured workspace-scoped LTV snapshot persistence in `app/models/ltv_history.py`.
|
|
- Added chart-range and CSV export support in `app/services/ltv_history.py`.
|
|
- Updated `app/pages/overview.py` to record snapshots, display 7/30/90 day LTV charts with the margin threshold line, and expose `Export CSV`.
|
|
- Added focused regression coverage in `tests/test_ltv_history.py` for persistence, same-day replacement, range filtering, and CSV export.
|
|
- Added a Playwright regression test in `tests/test_overview_ltv_history_playwright.py` covering the exact changed route, live rendered chart series on the overview page, and CSV download path on `/{workspace_id}`.
|
|
- Manual local Docker validation confirmed the stack starts cleanly, `/health` returns OK, and the Docker-served overview route renders the LTV history UI without visible runtime errors.
|