HelioCalc
Run the calculator
Guide · reviewed 2026-11-13

Roof Orientation, Tilt and Shading

By Jian Yuan · Last reviewed 2026-11-13 · Editorial standards

A solar array's output is usually described with a single number — peak sun hours — but the roof adds three multipliers on top of it. HelioCalc combines orientation, tilt and shade into one roof factor, then applies it…

Overview

A solar array's output is usually described with a single number — peak sun hours — but the roof adds three multipliers on top of it. HelioCalc combines orientation, tilt and shade into one roof factor, then applies it to the specific yield. South-facing at 20° with no shade is the 1.00 reference. An east/west plane at 0.90, a north plane at 0.78, or a moderately shaded roof at 0.82 each reduce the energy a given kW produces — which means the required kW has to rise to hit the same offset.

Orientation

In the northern hemisphere a south-facing plane collects the most annual energy. East and west planes typically deliver around 90% of that in our model, with a production profile shifted toward morning or afternoon — which can actually be valuable under a time-of-use tariff with expensive evenings. A true north-facing plane is the weakest at about 78%. Southwest and southeast sit near 97%. These are planning multipliers, not a substitute for an hourly simulation.

Tilt

Annual production is fairly forgiving of pitch between roughly 15° and 40°. Our tilt multipliers run from 0.95 at 0° to 1.00 at 20–30° and back to 0.95 at 50°. A low-slope roof also sheds snow and dirt less effectively, which a pure geometric multiplier does not capture. Steeper pitches favor winter production in higher latitudes.

Shading

None is 1.00, light 0.93, moderate 0.82 and heavy 0.68. Shading is not linear: a small obstruction across one string can have a disproportionate effect without module-level electronics, and a chimney shadow at 10 am matters far more than one at 7 am. Microinverters or optimizers can limit the damage but do not create sunlight. Trim or remove obstructions before finalizing a design.

Why the model resizes rather than just discounting

Because the target is an energy offset, not a fixed array. If the roof factor falls, the denominator of the sizing equation falls and the required kW rises. That in turn raises cost and roof area. A shaded roof can therefore be infeasible twice over: it needs more modules and has less usable area. The calculator caps the design at your entered roof area and shows the shortfall.

Key figures worth keeping

How this shows up in a real estimate

Because the roof factor sits in the denominator of the sizing equation, a weaker roof increases the required kW rather than simply reducing output. A household needing 6.06 kW on a south-facing unshaded roof would need roughly 9.9 kW at a 0.61 roof factor to hit the same energy target — and about 545 sq ft of roof instead of 333. That is often physically impossible, which is why the calculator caps the array at your entered usable area and reports the resulting shortfall. A shaded roof is a feasibility problem twice over.

Checklist before you decide

Planning estimates only — not a quote, tax advice, legal advice or financial advice. State benchmarks are not your utility tariff. Verify every incentive with the program administrator and get at least three written installer quotes.

Frequently asked questions

Is south always best?

For annual energy, usually. For a time-of-use tariff with expensive late-afternoon power, a west-facing array can be economically competitive despite lower total kWh.

How much does shade cost me?

In this model moderate shade cuts yield 18% and heavy shade 32%. Real string-level effects can be worse.

Should I tilt panels on a flat roof?

Racking to 10–20° is common; it improves self-cleaning and yield but adds wind loading and row spacing.

Do the multipliers stack?

Yes, multiplicatively. A north-facing, 50° pitch, moderately shaded roof has a factor around 0.78 × 0.95 × 0.82 ≈ 0.61.

Sources and further reading

Shareable link copied to clipboard