IST SunPower System · Site Assessment

Reading the sky before you mount a panel

A field guide to the Solar Site Assessment tool — what each tab measures, why, and the exact math behind every kWh the report prints.

E S W θ elev
equinox sun path solstice range marked obstruction

Note on sourcing — this guide explains the tool's own stated logic (its on-screen field descriptions) plus the standard solar-engineering formulas that logic corresponds to. The site's internal calculation code isn't publicly published, so treat formulas here as the best-available engineering reference, not a line-for-line extraction of their source.

Tab · Info

Set the project, the company, and the location

Everything downstream keys off three things you enter here: site latitude/longitude (GPS or manual), the hemisphere sweep direction it auto-derives, and the customer/company details that later print on the report.

  • GPS or manual lat/lon sets which way the sun actually moves at your site — this alone decides whether your Capture-Site sweep should go East→South→West (northern hemisphere) or East→North→West (southern hemisphere).
  • Calculate best tilt angle here runs on this location too — it's a placeholder until Import Resource (step 3) gives it real irradiance data to optimize against.
Field tip — get the GPS pin right before anything else. A location error of even a few hundred metres barely changes irradiance, but a wrong hemisphere assumption will flip your entire sweep direction and invalidate every obstruction point you mark later.
Tab · Design Info

Building height, parapet, and the obstruction-distance field

Three numbers here quietly control how obstructions get sized and how much edge clearance the tool later recommends:

FieldWhat it actually does
Height above ground (roof height, m)Sets the observer's absolute height for converting marked angles into real-world obstruction heights.
Roof parapet height (m)Feeds the Site Area tab's auto-recommended edge setback, so the parapet doesn't shade its own first panel row.
Assumed distance to obstructions (m)Only used to display an estimated obstruction height — not used in the shading math itself.
Why distance doesn't matter for shading — a tree at 20 m and a hill at 2 km can cast the identical shadow if they sit at the same angular elevation from your panel. The tool calculates shading straight from that angle, so a rough distance guess is fine — it only affects the height number shown in the obstruction table, not any energy result.
Tab · Import Resource

Pull real weather data for the site (PVGIS TMY)

One click fetches a Typical Meteorological Year dataset for your exact lat/lon from PVGIS — monthly GHI (global horizontal irradiance), Diffuse irradiance, and a calculated POA (plane-of-array) value per month.

Plane-of-array transposition (per month)
POA = I_beam,tilt + I_diffuse,tilt + I_ground

I_beam,tilt = (GHI − DHI) × R_b
I_diffuse,tilt = DHI × (1 + cos β) / 2
I_ground = GHI × ρ × (1 − cos β) / 2

β = panel tilt angle · ρ = ground albedo (≈0.2 typical) · Rb = beam tilt factor from the sun's incidence angle at that hour.

Tab · Capture Site

Record the horizon: sweep video, fisheye, or LiDAR

This is where obstructions actually get measured, by one of three methods:

  1. Sweep video — pan steadily east → south → west (or east → north → west, south of the equator), tapping the top edge of each obstruction. Azimuth comes from where you are in the pan; elevation from where you tap vertically.
  2. Fisheye / 180° sky photo — one hemispherical shot straight up from the panel location, calibrated once (lens projection + zenith + horizon + compass bearing), then click obstructions directly on the photo.
  3. LiDAR import — CSV/JSON export from a LiDAR-capable scanner, with azimuth, elevation, and optional height per point.
Optimum camera height — the tool isn't explicit about a number, but its own method makes the answer clear: shoot from wherever the panel array's leading edge will actually sit — typically 1–1.5 m above the mounting surface. Hold that height consistently through the whole pan; for obstructions close to the array, a few tens of centimetres of camera-height difference can shift the measured elevation angle by several degrees.
  • Start the clip exactly facing east, end exactly facing west (or east→north→west south of the equator) for the best angular accuracy.
  • Pan at a steady speed — azimuth is inferred from playback position, so a jerky pan distorts the angle mapping.
  • AI auto-detect / auto-scan flags obstructions above 10° elevation automatically; still spot-check the flagged frames.
Tab · Site Area

Trace the roof, place panels, set the edge setback

Walk the perimeter with GPS or draw it on the grid, then place panels inside the traced boundary.

Edge setback is the clearance kept between the roof edge or parapet and the first panel row. It exists for two reasons: (1) walkway/fire-code access, and (2) so the parapet's own shadow — worst-case at the lowest workable winter sun angle — never falls across your first row of modules.

Optimum tilt / azimuth
azimuth = 180° (true south, northern hemisphere) or 0° (true north, southern hemisphere)
In plain terms: rather than a fixed rule like "tilt = latitude," the tool tries a range of tilt angles against your actual imported irradiance data and keeps whichever produces the highest annual POA total.tilt = argmaxβ [ Σmonths POA(β) ] — swept β = 0°…90°, scored against the imported TMY data
Tab · Calculation

Sun path, shade-free hours, losses, and the final kWh numbers

Sun path diagram with obstructions

X-axis = compass azimuth (N→N), Y-axis = sun altitude. Three curves plot the sun's position across summer solstice, winter solstice, and equinox; your marked obstruction points overlay as a grey "skyline."

Shade-free assessment

Run as an hour-by-hour simulation across a full year:

  1. Compute sun altitude/azimuth for every hour of the year at the site's lat/lon.
  2. Interpolate your marked obstruction skyline to get its elevation at that hour's sun azimuth.
  3. If sun altitude ≤ obstruction elevation → that hour counts as shaded.
  4. Aggregate shaded vs. unshaded hours into a monthly/annual shading-loss percentage, applied mainly to the beam (direct) component of POA.

DC energy — EDC

EDC (kWh)
EDC = POA × A_array × η_STC × ∏(1 − L_i)

∏(1−Li) multiplies through IAM loss, soiling, module mismatch, DC wiring loss, temperature loss (module temp-coefficient against estimated cell temperature), and the hourly shading factor above.

AC energy — EAC (with inverter clipping)

EAC (kWh)
EAC = EDC × η_inverter
EAC_final = min( EAC , P_AC,rated × hours_in month )

DISCOM settlement cycle

In calendar order (Jan→Dec), but the table displays and banks in India's Apr→Mar net-metering cycle. The banking walk 0 at the top of the cycle, i.e. April

Monthly kWh (Net) and Bill Saving %

Net monthly energy
Net = Consumption_kWh − EAC_kWh
(negative = surplus/export, adds to the bank · positive = shortfall still drawn from grid, Bank pays what it can, the rest is real grid draw)
Covered by banked surplus: The shortfall is fully paid out of the bank. So the bank only ever gets drawn down, never goes negative, and it carries forward month-to-month within the same cycle — a July surplus can cover a December shortfall, for instance.
Bill saving %
Bill Saving % = [ (self-consumed EAC × tariff) + (exported surplus × DISCOM export rate) ] / (Consumption × tariff) × 100

This is the simple annual net, independent of the month-by-month banking walk above (banking only affects how each individual month is labeled, not this bottom-line total).

Income from DISCOM (Net Metering)

This only pays out on the year-end net position, not on individual exporting months.

Tab · Report

Printing the report — and what it's actually good for

The Report tab compiles annual results, the sun-path chart, the polar chart, the projected installation area, and the monthly table into a print-ready PDF (proposal-<customer name>.pdf).

Acceptable for government / industry submission?

  • Good fit — customer-facing feasibility quotes, rooftop net-metering applications, PM Surya Ghar–style subsidy paperwork, and internal go/no-go screening.
  • Not a full substitute — bank-financed or utility-scale industrial projects simulate by PVsyst / IST PVSolar Simulator bankability reports with P50/P90 uncertainty bands. A phone-sweep angle capture is a good proxy, not a certified instrument like Solar Pathfinder or Solmetric SunEye.

Overall accuracy

The underlying physics — solar geometry, POA transposition, hourly shading — is standard and sound. The accuracy ceiling comes from inputs, not method:

  • TMY-based POA: typically ±5–10% vs. any single actual year.
  • Phone-sweep angles: a few degrees of elevation error is normal, which matters most near sunrise/sunset hours.
  • Loss factors (soiling, mismatch, temperature) are user-entered assumptions, so results are only as good as those entries.
Bottom line — a solid mid-tier engineering estimate: meaningfully better than a rule-of-thumb calculator, but not a replacement for an instrumented shading survey report on large or lender-financed projects.

Questions, answered

The same ground covered above, as quick lookups.

No — it only estimates a display height. Shading itself is computed purely from the marked elevation angle, independent of distance, so a rough distance guess doesn't affect any kWh result.
Shoot from roughly where the panel array's leading edge will sit — about 1–1.5 m above the mounting surface — and hold that height consistently through the whole pan. Height inconsistency near close obstructions can shift the measured elevation angle by several degrees.
Standard solar-position equations generate three curves (summer solstice, winter solstice, equinox) across compass azimuth vs. sun altitude. Your marked obstruction points from the sweep video, fisheye photo, or LiDAR import overlay as a grey skyline on the same axes.
It runs an hour-by-hour simulation across a full year: for each hour, it compares the real sun altitude/azimuth against your obstruction skyline at that azimuth. Any hour where the sun sits below the skyline counts as shaded, and these hours aggregate into monthly/annual shading-loss percentages.
The clearance kept between the roof edge/parapet and the first panel row — for walkway/fire-code access, and so the parapet's own shadow at low winter sun angles doesn't fall on your first row. Roughly: setback ≥ parapet height ÷ tan(minimum workable winter sun altitude).
Azimuth defaults to true south (northern hemisphere) or true north (southern hemisphere). Tilt is found by sweeping a range of angles against your imported TMY irradiance data and keeping whichever tilt maximizes total annual POA — an optimization against real data, not a fixed "tilt = latitude" rule.
POA transposes horizontal TMY irradiance (GHI, DHI) onto the tilted plane.
EDC = POA × array area × module efficiency × all DC loss factors (including the hourly shading factor).
EAC = EDC × inverter efficiency, capped by any set inverter AC rating.
Monthly kWh (Net) = consumption − EAC.
Bill Saving % values self-consumed EAC at your import tariff plus any exported surplus at the DISCOM export rate, divided by your no-solar bill.
Yes for customer quotes, net-metering applications, and subsidy paperwork like PM Surya Ghar. Generally not sufficient on its own for bank-financed or utility-scale industrial projects, which typically expect a PVsyst/Helioscope bankability report with P50/P90 uncertainty and a certified instrumented shading survey.
The method (solar geometry, POA transposition, hourly shading) is standard and sound. Real-world accuracy depends on input quality: TMY data is typically ±5–10% vs. any single actual year, phone-sweep angles can carry a few degrees of error, and loss factors are user assumptions. Net result: a solid mid-tier engineering estimate, not a certified bankability-grade study.