Remodel/packages/engine
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
..
docs [S1-T01 through T11] Solar, Wind, BESS generation simulation + CLI 2026-05-07 10:04:21 +05:30
src/remodel_engine [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish 2026-05-13 10:42:36 +05:30
tests [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish 2026-05-13 10:42:36 +05:30
pyproject.toml [S1-T12/T13] P&L revenue breakdown + collapsible rows + UI polish 2026-05-13 10:42:36 +05:30
README.md [S0-T02] Set up packages/engine with Poetry, Ruff, mypy strict, pytest 2026-05-07 02:14:45 +05:30

remodel-engine

UI-agnostic Python calculation library for hybrid RE (Solar + Wind + BESS) project finance.

Setup

poetry install

Common commands

poetry run pytest                   # run tests with coverage
poetry run ruff check .             # lint
poetry run mypy src/                # type-check
poetry run remodel --help           # CLI (after implementation)

Package layout

src/remodel_engine/
├── schemas/        Pydantic models (single source of truth)
├── catalog/        Default values, CostItem catalog, profiles
├── generation/     solar.py, wind.py, bess_state.py
├── dispatch/       hybrid_rtc.py, mcp_settlement.py
├── commercial/     ppa.py, dsm.py, charges.py, losses.py
├── capex/          cost_items.py, phasing.py, idc.py
├── financial/      pnl.py, cfs.py, bs.py, depreciation.py, tax.py
├── debt/           sizing.py, sculpting.py, schedule.py, compliance.py
├── irr/            metrics.py
├── solver/         tariff.py
├── scenarios/      runner.py, sweep.py
├── io/             parquet_io.py, excel_export.py
└── cli.py