Remodel/sprints/SPRINT_05.md
Mannu e6dc39aa33 [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish
- Engine: Add ppa_revenue_cr, mcp_revenue_cr, tariff, units to PnLRow
- Engine: Split PPA vs MCP revenue in P&L computation
- Web: Collapsible rows for PPA/MCP Revenue and Opex
- Web: Highlighted rows (Total Revenue, EBITDA, EBIT, PBT, PAT)
- Web: Units above Tariff in breakdown, bg-blue-50 highlight
- Fix sticky column z-index for horizontal scroll
- CLAUDE.md: Add project documentation

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:42:36 +05:30

951 B

Goal: Engine wired into FastAPI with Arq. Real persistence. SSE progress. Tasks:

S5-T01 Replace dummy worker with real engine call. run_scenario task. S5-T02 Progress reporting from engine via callback. Worker publishes to Redis pub/sub. S5-T03 Persist ScenarioResult to SQLite (KPIs as JSON column). S5-T04 Persist timeseries to Parquet at data/scenarios/{id}/timeseries.parquet. S5-T05 Endpoint: GET /api/scenarios/{id}/timeseries?cols=...&from=...&to=... streams parquet (use pyarrow + Polars for filtered reads). S5-T06 Endpoint: GET /api/scenarios/{id}/statements returns P&L/CFS/BS as JSON (yearly rows). S5-T07 Endpoint: GET /api/templates for default CostItem catalog. POST /api/templates to save custom. S5-T08 Endpoint: GET /api/dashboard/config and PUT for KPI config. S5-T09 Update OpenAPI export → TS types regenerate. S5-T10 Tests: API integration tests with TestClient. Worker tests with fake Redis. S5-T11 Documentation.