
Context
The problem
Solar and wind payback estimates are usually locked behind installer sales funnels, and the free tools are either region-locked or guesswork. The data to do it properly — irradiance, weather, equipment performance — is publicly available; the question is whether a calculator's numbers can be trusted. Most never check theirs against a real installation.
Ownership
My role
Solo build — calculation engine, validation harness, data layer, and UI.
Solution
Approach
Physics models, not multipliers
Solar output follows the NREL PVWatts methodology — rated power × peak sun hours with temperature derating, tilt/azimuth corrections, shading, and system losses. Wind uses the standard power-curve model (½ρAv³ with capacity and efficiency coefficients). Climate inputs come from NASA POWER 40-year climatology; ROI runs payback, NPV, and a 25-year cashflow with region-aware electricity rates.
Validated against real plants
The models are checked against real SCADA telemetry: the wind model against 50,000 ten-minute measurements from a 3.6 MW turbine — landing at −0.7% bias with mid-range RMSE under 3% — and the solar model against 1,634 daytime points from an operating plant in India (−12.9% bias, conservative by design). The validation scripts ship in the repo against public Kaggle datasets, so anyone can rerun the numbers.
A data layer that can't lose its keys
All three upstream sources — NASA POWER, Open-Meteo, BigDataCloud geocoding — are keyless public APIs, wrapped in a fetch layer with timeouts and normalized error handling, cached with 24-hour TTLs for climatology and 10 minutes for weather, and every upstream response is Zod-validated before it touches a calculation.
Curated equipment, honest bundles
Equipment specs are hand-curated from manufacturer datasheets — 50+ panels, batteries, turbines, and inverters with region availability. System bundles are picked by price-per-watt monotonicity, so the budget tier is never secretly better value than premium.
System
Architecture
Next.js app with a Hono API mounted inside it, pure TypeScript calculation modules kept separate from I/O, Jotai for calculator state, and Recharts for output. Tested with Vitest; deployed on Vercel; no login, no funnel.
- Pure calculation modules (solar / wind / ROI) isolated from the data layer
- Keyless three-source data layer with TTL caching and Zod-validated responses
- Reproducible SCADA validation scripts in the repository
- Free and anonymous — no signup funnel
Results
Outcomes
50,000
SCADA measurements in the wind validation
−0.7%
wind model bias vs a real 3.6 MW turbine
3
keyless scientific data sources
50+
hand-curated equipment specs
- Free to use, live on Vercel.
- Validation is reproducible — scripts and public datasets ship with the repo.



Contact
Let's build something great.
Open to Senior, Staff, and Founding Engineer roles — and select freelance engagements. Reply within 24 hours, CET timezone.