Solar PV generation

Works entirely in your browser — no API required. Pick a location to explore solar geometry, power, monthly energy and a bounded tilt/azimuth search. The default is a declared local scenario; measured-data modes and optional provider imports remain separate below.

System settings · panel size, inverter & losses

Use the module’s Pmax coefficient. DC losses exclude temperature and the separately entered inverter efficiency. Do not count shading, cable or soiling losses twice if already included in the POA series or another allowance. POA already includes orientation; no extra tilt, azimuth or cloud multiplier is applied.

Explore a location

Fully local clear-sky model. Click the map to compare generation and suggested angles. Weather, shading and terrain are not included; these are model estimates rather than expected site yield.

Click or tap the map; use arrow keys when focused, or enter coordinates. Positive latitude = north; longitude = east. Coastlines are a coarse location aid.

Azimuth: north 0°, east 90°, south 180°, west 270°. The location scenario uses the common DC/AC ratings and losses above, with this fixed cell temperature; advanced interval temperature settings are independent.

12:00 solar time

Solar noon is 12:00. Longitude identifies the site and weather request; these axes are solar time, not local civil time or a timezone conversion.

Selected scenario AC power—
Selected model POA—
Sun position—
Atmosphere and ground assumptions

DNI = extraterrestrial normal irradiance × τ1/sin(elevation); a 0.01 minimum sine bounds the near-horizon approximation. DHI = entered fraction × (extraterrestrial normal irradiance − DNI) × sin(elevation). This returns only part of the attenuated beam as diffuse light, keeping horizontal irradiance within the extraterrestrial energy bound. These are declared scenario assumptions, not a calibrated Hottel model or an atmospheric forecast. Sky diffuse and reflected-ground irradiance use isotropic view factors.

Selected 15th-day scenario energy—
Selected month, every calendar day—
Clear-sky scenario annual energy—

Suggested panel angles

Fixed angle for the year
Calculating…
Angle for the selected month
Calculating…

Updated automatically for your location and settings. Tilt is measured from horizontal; azimuth is clockwise from north. These are the best angles found in the local clear-sky model, not a weather- or roof-qualified installation recommendation. Applying a monthly angle changes the fixed angle used in every plotted month; it does not assume automatic monthly adjustment.

Generation throughout the day and year

Full-day generation · all 12 months
Each curve represents the 15th of its month, from midnight to midnight in solar time. The selected month is emphasized. Power is in kW.
Energy generated each month
Integrates every calendar day using the same fixed panel angle and model assumptions.
Total energy accumulated through the year
Starts at zero and adds each day’s generation. The final value equals the annual total in kWh.
Individual full-day curves for every month
January
February
March
April
May
June
July
August
September
October
November
December
Monthly energy values
MonthGenerated (kWh)Year to date (kWh)
Angle search details & evidence export

Search evaluates only this explicitly assumed scenario.

The search checks a 5° tilt / 15° azimuth grid, then a 1° local refinement, under the selected model. It is a bounded numerical search, not a global optimum or a recommendation for weather, roofs, shading, structural loading or installation cost. The main monthly/annual chart integrates all calendar days at 15-minute midpoints; the search uses weighted representative days for speed.

Optional: weather-based PVGIS download & import

Separate provider result

Open an official PVGIS request for the chosen coordinates, DC rating, orientation and provider loss allowance. Download its JSON, then import it here. Browser CORS restrictions prevent a direct fetch; there is no invented-data fallback. Imported energy already contains the provider’s models and losses and is never multiplied by the local scenario’s losses or temperature correction.

Open / download official PVGIS JSON ↗ · Open PVGIS interface ↗

No weather-based provider result imported. It will remain separate from the geometric scenario.

File structure, complete months, numeric ranges and monthly/annual agreement are checked; source authenticity is user stated, not independently authenticated. The imported response’s actual coordinates, database, years, rating and optimized-angle metadata are displayed and retained in the evidence export. Editing the local scenario does not recompute imported provider results.

Advanced: supplied interval data

1. Interval data → power and energy

The starting data is an analytic constant-irradiance test fixture, not site weather. Replace it with measured or documented model inputs for a site study.

Relative schema: time_h,duration_h,poa_w_m2,ambient_c,cell_c. Absolute schema: start_iso,end_iso,poa_w_m2,ambient_c,cell_c with Z or an explicit UTC offset. Every row describes its entire interval; values are treated as constant interval means. Duration is never inferred from the next row. Use cell_c for supplied-temperature mode, or ambient_c for the NOCT approximation. Optional wind_m_s is retained but not used.

AC energy, supplied intervals only—
AC-equivalent energy clipped—
Coverage—

—

—

—

Horizontal axis: hours from the first supplied interval. Bars show each interval’s mean AC power; gaps are left empty.

Advanced: supplied monthly POA / peak-sun-hours

2. Monthly irradiation → energy before clipping

Enter each month’s mean daily plane-of-array irradiation (kWh/m²/day; numerically equivalent to peak-sun-hours) and an irradiance-weighted representative cell temperature. Unknown months stay blank. Constant-temperature/efficiency screening estimate only: monthly totals cannot reconstruct inverter clipping, intraday temperature, outages or self-consumption.

MonthDaysPOA kWh/m²/dayCell °C (representative)AC before clipping

Annual unknown

—

Supplied-data equations, input contract and limits

Interval DC: Pdc = PSTC × (GPOA/1000) × [1 + γ(Tcell − 25)] × (1 − Ldc). γ is converted from %/°C to 1/°C. Available AC = Pdc × ηinv; delivered AC = min(available AC, inverter AC rating). Energy = Σ(power in kW × explicit duration in hours). This is a linear nameplate model with constant inverter efficiency; it does not reproduce the complete PVWatts model.

Optional NOCT-linear approximation: Tcell = Tamb + (NOCT − 20) × GPOA/800. It scales the nominal test-condition rise with irradiance; it does not model wind, mounting, thermal inertia or calibrated module behavior. Supplied effective cell temperatures are preferred. It is not a thermal-design or safety tool.

Monthly estimate before clipping = DC kWp × POA kWh/m²/day × month days × representative temperature factor × DC remaining fraction × inverter efficiency. AC rating is deliberately not used for monthly clipping: a daily irradiation total is insufficient to calculate it.

Overlaps, duplicate starts, missing duration, nonfinite or negative irradiance are rejected. Gaps are reported and not filled. ISO results use UTC for completeness and day selection. Relative times cannot establish an annual result. A complete Jan 1 → next Jan 1 UTC interval series with no gaps is required for an interval annual total; all 12 monthly inputs are required for a monthly annual estimate. No short-period annualization or weather fallback is performed.

Provider timestamps may represent instantaneous samples, preceding-hour totals or interval means. Convert to this explicit interval-mean schema using the provider’s documentation before import. The location workflow above is a separate declared geometric scenario with a bounded angle search, not synthetic expected weather. Battery dispatch, economics, IV/MPPT, spectral, bifacial and snow-cover models are not implemented.

Primary references and obtaining data

NREL PVWatts v5 technical manual for the nameplate/irradiance/temperature model basis; this implementation uses a simpler constant-efficiency inverter.

Sandia PVPMC — NOCT model describes a fuller model with mounting and wind corrections; the optional linear screening approximation here omits those corrections.

JRC PVGIS output definitions: H(i)d is daily global POA irradiation in kWh/m²/day. Open PVGIS to obtain location-, orientation- and database-specific inputs. This page does not silently fetch, resample or invent weather data.