Basic Information
Site location, tilt & resource *
Energy calculation
Used directly when no Energy bill (12 months) data is entered below.
Energy bill (12 months)
Editable both ways: type a month's kWh and the bill amount fills in (kWh × tariff), or type the amount and kWh fills in instead. If you fill this in, Average monthly energy consumption above is calculated automatically as yearly consumption ÷ 12.
| Month | kWh | Amount |
|---|
Design info
Used only to estimate each obstruction's absolute height above ground (height = observer height + assumed distance × tan(elevation)). Shading itself is still calculated straight from the elevation angle, independent of distance.
Import resource (PVGIS TMY)
Fetches real typical-meteorological-year weather data for your site's lat/lon.
Sweep video (auto azimuth from pan)
Pan the camera at a steady speed across the horizon: east → south → west in the northern hemisphere, or east → north → west in the southern hemisphere. Every point you mark in the video is auto-tagged with an azimuth (from where you are in the pan) and altitude (from where you tap vertically) — no manual angle entry. Hemisphere, project type, and obstruction distance are set on the Info and Design Info tabs.
Frames where the AI detected a high obstruction (>10° elevation) are kept below so you can visually confirm what was flagged.
Fisheye / 180° sky photo survey
An alternative to the sweep video, closer to how dedicated tools like Solar Pathfinder or Solmetric SunEye work: upload a single fisheye (or any 180° hemispherical) photo of the sky taken from the panel location, pointing straight up. Calibrate it once, then click directly on obstructions in the photo to mark them.
LiDAR obstruction import
If you've captured a 3D horizon scan with a LiDAR-equipped device (e.g. an iPhone/iPad Pro scanning app) or dedicated survey hardware, import its exported obstruction points here instead of marking them by hand.
CSV: header row with azimuth, elevation, and optionally height columns. JSON: an array of objects like {"azimuth":135,"elevation":22,"height":8.5}. Azimuth in compass degrees (0=North), elevation in degrees above horizon, height in meters (optional — estimated from elevation if omitted).
Walk the site (GPS trace)
Stand at one corner of the panel area, tap Start, walk the full perimeter, then tap Stop when you're back at your starting point to close the boundary. (It will also auto-close if you walk back within a few meters of the start.)
Draw the solar panel installation area
Or trace manually: tap each corner in order on the grid below, then tap back on the first point to close the shape (or use the button). North is always up. Set the scale first so the area comes out in real units.
Drag any corner point to reposition it — edge lengths update live as you drag.
Length and azimuth are editable — type your own measured values directly, or adjust what drawing/walking produced. Facing updates automatically. The table always represents a closed loop, so the last row is the closing edge back to the start and recalculates itself.
Panel layout & system size
Module (Wp / dimensions) is set on the Design Info tab.
Click a placed panel to remove it. Drag a panel to move it. Panels drawn with a dashed red border sit outside the traced boundary.
Sun path diagram with obstructions
X-axis = compass azimuth (N to N), y-axis = sun altitude. Curves = sun path on the summer solstice, winter solstice, and equinox. Gray skyline = obstructions marked from your sweep video.
Shade-free assessment
DC loss factors
Shading loss isn't a fixed number here — it's calculated per hour across the year from the obstructions you marked in Capture, checked against the real sun position for that hour and location.
Site assessment report
Pulls together the key inputs and results from the other tabs. Run the calculation on the Calculation tab first, then come here to review or print. Only this tab prints when you use "Print / Save as PDF" — when saving as PDF, the suggested file name is proposal-<customer name>.pdf (in Chrome/Edge; other browsers may use their own default).