Solar PV planner
Size modules for an annual energy target or estimate an existing array; optional self-use and export economics.
About this tool
This is a simplified annual balance, not a weather or hourly simulation. Target mode rounds module count up until estimated year-1 generation reaches the chosen percentage of annual demand. This is an energy target, not a self-sufficiency claim. Known-count mode estimates your selected array.
Generation = module count × Wp/1000 × annual-average peak sun hours per day × 365 × yield factor. Peak sun hours are equivalent hours at 1 kW/m² on the module plane, not daylight duration. Enter a location/orientation-specific annual average. The yield factor bundles system losses; it is not module efficiency. Defaults are examples, not regional forecasts.
Optional economics require your assumed self-use share of PV production. Self-use is capped at annual demand; all remaining generation is treated as exported. This cap does not model actual hourly matching, batteries, export limits or curtailment. Buy and export prices use the same selected currency. A 100% annual generation target does not mean all production can replace purchases.
Net investment = installed Wp × cost/Wp × (1 − upfront subsidy). Year y generation = year-1 generation × (1 − degradation)^(y−1). Each year’s benefit is self-use × buy price + export × export price − annual running cost. Demand, assumed share and prices stay constant. Net balance sums benefits over the chosen years and subtracts net investment.
Simple payback is the first crossing of cumulative benefits and investment, interpolated within that year as if benefits arrive evenly. No crossing means not within the selected period; zero investment is stated separately. No discounting, inflation, financing, taxes, replacement costs or guaranteed profit. Use site-specific hourly planning for decisions.
The results update as you edit. The first-year yield and annual demand bars use the same scale. An invalid economic input hides the economic estimate while the energy comparison remains visible. The browser keeps your inputs.