Use this calculator to estimate how much a nearby obstruction (tree, chimney, parapet, adjacent building) could reduce a solar array’s daily energy production. It converts a simple shadow-geometry snapshot (one sun altitude angle) into an estimated shaded fraction of the panel face and then applies that fraction to your unshaded daily energy based on system size and average sun hours.
What you’ll get: an estimated shaded fraction of the panel length (0–100%), daily kWh lost, and daily kWh remaining for the chosen “critical” sun altitude (often a winter or problem time-of-day angle).
Model overview (what the calculator is doing)
This is a geometry-first estimate. It treats shading as a straight-edged shadow cast by a single obstruction at a single sun altitude angle. The workflow is:
Compute the obstruction’s horizontal shadow reach on the ground/roof plane from sun altitude.
Account for the obstruction’s horizontal distance to the panel.
Project any remaining shadow onto the tilted panel surface.
Convert that projected shadow length into a fraction of the panel length (clamped between 0 and 1).
Apply that fraction to your unshaded daily energy estimate.
Definitions of inputs and variables
System size (kW): nameplate DC size of the PV system (or the portion you are evaluating).
Average sun hours per day: “equivalent full sun hours” (daily kWh per kW under typical conditions for your site/season).
Obstruction heightH (m): vertical height of the object casting the shadow above the same reference plane as the panel base.
Distance from panelD (m): horizontal distance from the obstruction to the panel (to the leading edge that first receives shadow).
Panel tilt angleβ (degrees): tilt from horizontal (0° is flat, 90° is vertical).
Panel length along slopeP (m): the panel’s length measured along its surface in the up-slope/down-slope direction (not the horizontal projection).
Critical sun altitude angleα (degrees): sun elevation above the horizon at the time/date you want to test (lower altitude → longer shadows).
Formulas
1) Unshaded daily energy
If your system size is S (kW) and average sun hours are HS (h/day), the unshaded daily energy is:
Eunshaded = S × HS (kWh/day)
2) Horizontal shadow length from sun altitude
For an obstruction of height H and sun altitude α, the horizontal shadow length on a horizontal plane is:
Lh = H / tan(α)
This matches the common geometric intuition: the lower the sun altitude, the longer the shadow.
3) Shadow reaching the panel
If the obstruction is D meters away horizontally, only the portion of the shadow beyond that distance can fall onto the panel:
Lreach = max(0, Lh − D)
4) Projecting onto a tilted surface
To express the shadow length along the panel surface (the “along-slope” direction), a simple projection is:
Lpanel = Lreach / cos(β)
5) Shaded fraction
Compare the shadow length along the panel surface with the panel length along slope P:
s = min(1, Lpanel / P)
6) Estimated daily energy lost and remaining
This calculator assumes energy loss scales linearly with the shaded fraction:
Elost = Eunshaded × s
Eremaining = Eunshaded × (1 − s)
MathML (same relationships)
Interpreting the results
Shaded fraction (s): 0.25 means roughly the lower/leading 25% of the panel length is shaded for the chosen sun altitude and geometry. 1.0 means the panel is fully shaded in this snapshot.
Daily energy lost: how many kWh/day you might lose if that shaded fraction effectively applied to your energy production. This is best viewed as an order-of-magnitude indicator for “is this obstruction likely to matter?”
Daily energy remaining: unshaded estimate minus the lost estimate.
If your value is near 0, shading at that sun altitude is unlikely. If it’s near 1, you should strongly consider mitigation (moving modules, trimming vegetation, using optimizers/microinverters, or changing layout).
Worked example
Scenario: A 6 kW array, 5.0 average sun hours/day, panel tilt 30°, panel length along slope 1.7 m. A parapet is 1.5 m tall and 2.5 m horizontally away. Evaluate a winter critical sun altitude of 20°.
Unshaded daily energy
Eunshaded = 6 × 5.0 = 30 kWh/day
Horizontal shadow length
Lh = H / tan(α) = 1.5 / tan(20°) ≈ 1.5 / 0.3640 ≈ 4.12 m
Shadow reaching the panel
Lreach = max(0, 4.12 − 2.5) = 1.62 m
Project onto the tilted panel
Lpanel = 1.62 / cos(30°) ≈ 1.62 / 0.866 ≈ 1.87 m
Shaded fraction
s = min(1, 1.87 / 1.7) = 1.0
Interpretation: at 20° sun altitude, the panel could be fully shaded by this obstruction in this simplified snapshot.
Energy impact
Elost = 30 × 1.0 = 30 kWh/day
Eremaining = 30 × (1 − 1.0) = 0 kWh/day
Reality check: in the real world, full shading typically occurs only for certain hours, not all day. That’s why the “critical sun altitude” should be chosen intentionally (e.g., the lowest winter sun at your peak production window, or the exact time you observed shading). For an all-day estimate, you’d need time-of-day and seasonal integration.
Comparison table: how sun altitude changes shadow length
The table below shows how quickly shadows grow as sun altitude drops. It assumes an obstruction height H = 2 m. (These are horizontal shadow lengths before subtracting distance to the panel.)
Sun altitude (α)
tan(α)
Horizontal shadow length Lh = H/tan(α)
Rule-of-thumb implication
15°
0.268
≈ 7.46 m
Very long winter/early/late-day shadows; obstructions far away can still matter.
20°
0.364
≈ 5.49 m
Long shadows; common for winter mid-day in many latitudes.
30°
0.577
≈ 3.46 m
Moderate shadows; many obstructions need to be relatively close to shade panels.
45°
1.000
≈ 2.00 m
Shorter shadows; shading risk decreases quickly as altitude increases.
60°
1.732
≈ 1.15 m
Summer/high sun; nearby obstructions are less likely to shade.
Assumptions & limitations (important)
Single obstruction, single sun altitude: this is a snapshot, not a full annual simulation. It does not integrate sun position across hours/days/months.
Straight-edged shadow geometry: real obstructions can be irregular (tree canopies), and roof/panel placement may change the effective reference plane.
Linear energy scaling: the calculator applies loss proportional to shaded fraction. Real PV electrical behavior under partial shading is often nonlinear due to cell strings, bypass diodes, and inverter MPPT behavior.
No module wiring layout modeling: it does not account for portrait vs landscape orientation, cell-string direction, number/location of bypass diodes, or whether you use microinverters/optimizers (which can reduce mismatch losses).
Diffuse irradiance ignored: even when direct sun is blocked, diffuse sky light can still generate some power; the simple model can overstate losses in some cases.
Distance definition matters: the “distance from panel” should be horizontal distance to the first shaded edge. If you measure to the center of the array or use sloped distances, results can be off.
Use for screening, not final design: for permitting, financing, or performance guarantees, use a full shade analysis (e.g., PVWatts/SAM with shading inputs, on-site shade studies, or installer tools).
Provide site details to compute shade impact.
Embed this calculator
Copy and paste the HTML below to add the Solar Panel Shading Loss Calculator - Estimate Energy Reduction to your website.
Calculate how many solar panels and how much battery storage your tiny home needs. Enter daily energy use, panel wattage, sun hours, and efficiency to size a...
tiny home solar calculatoroff grid power needssolar panel count