Manohar Gupta
39d01299e7
fix: include Common attribution items in EPC margin calculation
...
CI / Engine — lint / typecheck / test (push) Has been cancelled
CI / API — lint / typecheck / test (push) Has been cancelled
CI / Web — typecheck / lint / build (push) Has been cancelled
- EPC Margin WTG now includes items with attribution 'WindOnly' OR 'Common' when windEnabled
- EPC Margin Solar now includes items with attribution 'SolarOnly' OR 'Common'
2026-05-29 18:27:37 +05:30
Manohar Gupta
3c98aa3c80
fix: show all cost line items in Project Cost Breakdown
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Show all items even when value is 0 (DSRA, EPC overheads, etc.)
- Always show Solar Module, Solar BoS, Solar Land Cost
- Wind items only show if windEnabled
- BESS items only show if bessEnabled
2026-05-29 18:25:32 +05:30
Manohar Gupta
17dc873d9b
fix: land cost calculation - filter by both id and attribution
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Solar land cost: only items with id containing 'land' AND attribution 'SolarOnly'
- Wind land cost: only items with id containing 'land' AND attribution 'WindOnly'
- Prevents wind land cost from appearing in pure solar projects
2026-05-29 18:24:02 +05:30
Manohar Gupta
e920fa6f71
fix: Correct Total Hard Cost calculation - use baseHardCost for financing costs
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Remove DSRA from Total Hard Cost (it's a financing reserve, not capital cost)
- Use baseHardCost instead of inflated totalCostCr for financing calculations
- DSRA shown separately after Total Hard Cost
2026-05-29 17:52:19 +05:30
Manohar Gupta
dfa5ae36d8
feat: Expand Project Cost Breakdown to show all cost items
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Split Solar Land and Wind Land into separate lines
- Add DSRA (Debt Service Reserve Account)
- Split EPC overheads into Solar and Wind
- Add EPC Margin categories (WTG Tower+BOP, Solar BOS)
- Split Contingency into Solar and Wind
- Add Total Hard Cost subtotal
- Add financing costs (upfront fee, IDC, bank guarantee)
2026-05-29 17:37:51 +05:30
Manohar Gupta
581eafbf36
feat(web): display Wind 8760 profile in generation sheet
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Added windProfileAvg to Year level display (similar to solarProfileAvg)
- Added windProfileMo to Month level display
- Added windProfileDay to Day level display
- Added hourProfileW (raw wind profile) to Hour level display
- This makes Wind profile display consistent with Solar profile display
2026-05-28 15:28:29 +05:30
Manohar Gupta
4450eeb24f
Fix: Remove duplicate financing cost in Project Cost Breakdown table
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
The financing cost (IDC + upfront fees) was being displayed both as a separate
line item AND included in the total calculation, causing the Total Project Cost
to be inflated by the financing amount. This fix removes the separate financing
row from the breakdown table while keeping the correct total calculation.
2026-05-28 15:17:27 +05:30
Manohar Gupta
fecc90c7a0
Show CUF % on each file card for quick glance
CI / Engine — lint / typecheck / test (push) Has been cancelled
CI / API — lint / typecheck / test (push) Has been cancelled
CI / Web — typecheck / lint / build (push) Has been cancelled
2026-05-24 08:08:49 +05:30
Manohar Gupta
5252d471ba
Use empty string for API_BASE in production (relative paths)
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-24 01:19:15 +05:30
Manohar Gupta
4630ea3999
Fix API_BASE to use relative path for production
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-24 00:32:41 +05:30
Manohar Gupta
0f8a50caf2
Add as_csv=true to fetch URL to get CSV format
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-24 00:03:04 +05:30
Manohar Gupta
d2c2e2fe63
Add loading spinner and debug logs for file fetch
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 23:47:46 +05:30
Manohar Gupta
a850822e0a
Remove backup file causing build error
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 19:07:47 +05:30
Manohar Gupta
351229b0a9
Rewrite ProfileViewer to fix syntax error
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 19:03:30 +05:30
Manohar Gupta
0286bdefae
Fix syntax error in ProfileViewer component
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 18:57:03 +05:30
Manohar Gupta
261f5c4184
Fix file preview and button interaction
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 18:13:08 +05:30
Manohar Gupta
fd0aa5060a
Show all 8760 rows in file preview (no limit)
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 18:00:57 +05:30
Manohar Gupta
b00d0fa76f
Add file preview to display CSV contents when clicking on profiles
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 17:53:17 +05:30
Manohar Gupta
874877f5ba
Add bundled reference files download links
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 17:39:39 +05:30
Manohar Gupta
0ba21e8936
Rename to View Files and File Reference Library
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 17:39:04 +05:30
Manohar Gupta
112c25c26b
Add CUF profile viewer with upload capability
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-23 17:22:31 +05:30
Manohar Gupta
680df1a597
Make KPI summary cards clickable - navigate to relevant sheets
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Added onClick prop to KpiCard component
- SummarySheet now accepts onNavigate callback
- KPI cards now link to appropriate sheets:
- Solved Tariff, Solar Y1 CUF, Wind Y1 PLF -> Generation
- Equity IRR, Project IRR, LCOE, Payback -> IRR / Returns
- Min DSCR, Avg DSCR, Total Capex, Debt -> Debt
- IDC -> IDC / Phasing
- WorkbookView accepts optional onNavigate prop
- Scenario page passes onNavigate to switch active sheet
2026-05-22 17:57:32 +05:30
Manohar Gupta
5098bf86f4
Fix Total Project Cost calculation: include upfront lease cost
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Added upfrontLeaseCostCr to totalCostCr calculation
- IDC and upfront fee now calculated on full project cost including lease
- Updated Land & Common card to show lease cost is included in total
2026-05-22 16:57:29 +05:30
Manohar Gupta
f224e98e0a
Fix solver values to display as percentage not decimal
...
- Added pct() helper function
- Target Equity IRR now shows 18% instead of 0.18
- Input accepts percentage and converts back to decimal internally
2026-05-22 16:53:51 +05:30
Manohar Gupta
35cfc409e2
Fix input sheet defaults: Lease Rate 0.40, Upfront Fee 0.75%*1.18
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Changed Lease Rate default from 30 to 0.4 Lakh/acre/year
- Changed Upfront Fee default from 1% to 0.75%*1.18 (=0.885%)
- Updated upfront lease cost calculation to use new default
2026-05-22 15:16:02 +05:30
Manohar Gupta
206b9a0f99
Fix: DC capacity now updates when AC capacity changes
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-22 13:39:09 +05:30
Manohar Gupta
941843e441
Fix solar wizard: reorder AC/DC fields, add DC:AC ratio, auto-calc DC capacity
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Moved AC Capacity above DC Capacity
- Added DC:AC Ratio input field (editable, default 1.4)
- Made DC Capacity auto-calculated (read-only) based on AC * ratio
- Updated buildInputs() to include dc_ac_ratio
- Maintains same data flow as InputsTab.tsx
2026-05-22 13:22:18 +05:30
e286f930f1
fix: add all columns to month/day/hour views for consistent display
...
CI / Engine — lint / typecheck / test (push) Has been cancelled
CI / API — lint / typecheck / test (push) Has been cancelled
CI / Web — typecheck / lint / build (push) Has been cancelled
- Hour: raw profile %, DC MW, output MW
- Day: average profile %, DC MW, sum MWh
- Month: average profile %, DC MW, sum MWh
All levels now show: Solar 8760, DC MW, Solar MW, Wind, Total RE, Client End, Load
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 15:59:43 +05:30
fdb387e74c
feat: pass solar DC MW and wind capacity from inputs to generation sheet
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Add solarDCMW and windMW props
- Pull from inputs_json in scenario page
- DC MW column now shows actual capacity from input
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 15:02:43 +05:30
2705f4bb11
feat: compute Solar 8760 averages at year/month/day levels
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Add helper functions for raw profile averages
- Solar 8760 shows average profile % at each level
- Month/day levels use daily/hourly averages
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 14:37:34 +05:30
dba1e6990f
feat: add profile data columns to generation sheet for detailed breakdown
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Add hourly_solar_profile and hourly_wind_profile to store per-hour output values
- Add solar_dc_mwp, solar_ac_mw, wind_mw to PipelineResult for capacity display
- Add columns: Solar 8760, DC MW, Solar MW / Wind 8760, MW, Wind MW
- Updated UI to show detailed breakdown at each level (Year/Month/Day/Hour)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 13:31:20 +05:30
5e49926289
feat: add hourly timeseries infrastructure with Total RE, Client End, Load columns
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Add client_load_mw to CommercialConfig (defaults to ppa_capacity_mw)
- Add hourly_timestamps, hourly_fy, hourly_proj_year, hourly_total_re,
hourly_client_end, hourly_load to ScenarioResult
- Generate 25-year hourly data in runner.py with proper timestamps
- Update API worker to return new hourly fields
- Update WorkbookView HourlyGenerationSheet to show all 5 columns
at each expandable level (Year > Month > Day > Hour)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 12:52:44 +05:30
27866e86f0
fix: month order - Apr first at top, then subsequent months
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-16 12:07:19 +05:30
96ddb2fa60
feat: fix month labels and reverse order, vertical hourly display
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Show Apr 27 instead of Apr - include FY suffix
- Reverse month order: Apr first, then May... Mar
- Change hourly from horizontal wrap to vertical stack
2026-05-16 12:00:59 +05:30
7062688397
feat: use FY labels in generation sheet based on COD date
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Show FY 2026-27 instead of Y1 based on cod_year
- Show month names (Apr, May, etc.) instead of M1, M2
- Show actual dates (Apr 1, etc.) instead of D1, D2
- Pass codYear from scenario inputs to WorkbookView
2026-05-16 11:51:56 +05:30
093e62b011
feat: add 25-year hourly generation data with expandable drill-down
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- Engine: generate all 25 years × 8760 hours of hourly generation
- Schema: add solar_hourly and wind_hourly fields to ScenarioResult
- API: expose hourly data in statements endpoint
- UI: new HourlyGenerationSheet with Year → Month → Day → Hour drill-down
- Add TYPEOF for hourly generation in web API types
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 10:41:25 +05:30
ef3f2ace25
fix: pass NEXT_PUBLIC_API_URL as Docker build ARG so Next.js bakes it into bundle
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-15 05:15:25 +00:00
cdcefa389d
Add renewable energy favicon with sun and leaf
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-15 08:50:22 +05:30
71d834e992
Fix web: use absolute path /app/node_modules/.bin/next
CI / Engine — lint / typecheck / test (push) Has been cancelled
CI / API — lint / typecheck / test (push) Has been cancelled
CI / Web — typecheck / lint / build (push) Has been cancelled
2026-05-13 22:24:26 +05:30
e7bb1007e2
Fix web: use pnpm node_modules path for next binary
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 22:02:09 +05:30
01c1a9682f
Fix web: add node_modules/.bin to PATH
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 22:00:50 +05:30
66b76fc947
Fix web: use next start instead of node server.js
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:55:53 +05:30
001906ea3c
Create placeholder .env.local in builder stage for Docker
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:31:57 +05:30
62144ff8ad
Fix: pnpm install --ignore-scripts to skip build errors
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:18:59 +05:30
6a19374af2
Fix: Use Node.js 22 in Dockerfile (required by pnpm)
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
2026-05-13 21:15:36 +05:30
f125015bcc
Add Docker files for deployment
...
CI / Engine — lint / typecheck / test (push) Waiting to run
CI / API — lint / typecheck / test (push) Waiting to run
CI / Web — typecheck / lint / build (push) Waiting to run
- docker-compose.yml: api, worker, web, redis services
- packages/api/Dockerfile
- packages/web/Dockerfile
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:45:35 +05:30
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
4fbb723164
[S0-T04/T05/T10/T14] packages/web: Next.js, shadcn, TanStack Query, AG Grid; docker-compose; UI pages; openapi-typescript
2026-05-07 02:27:21 +05:30
1d23b579fe
[S0-T01] Initialize monorepo with packages/engine, packages/api, packages/web directories
2026-05-07 02:04:47 +05:30