How much dead ground do you have to leave between rows so they stop shading each other? Give it a
latitude, a tilt and a design hour, and it works out the shadow from real sun geometry — altitude
and azimuth, not a rule of thumb — and turns that into row pitch, ground coverage ratio and how
many rows actually fit your land. The choice of design hour is the whole game, and
the table below shows exactly what it costs you.
Where the numbers come from
Nothing about row spacing needs a standard — it needs the position of the sun. From latitude,
day of year and solar time you get declination and hour angle, and from those the altitude and
azimuth. Two vector facts then do the rest: a shadow points directly away from the sun, and
only the component of that shadow along the row-pitch axis can hit the next row.
δ = −23.44° × cos( 360 ÷ 365 × (N + 10) ) (N = day of year)
h = 15° × (t_solar − 12) (hour angle)
sin α = sin φ · sin δ + cos φ · cos δ · cos h (α = sun altitude)
sin A = −cos δ · sin h ÷ cos α ·
cos A = (sin δ − sin α · sin φ) ÷ (cos α · cos φ) (A = azimuth from north)
D = H · cos(A − A_array) ÷ tan α (gap; 0 when the sun is abeam or behind)
pitch = w · cos(tilt) + D
GCR = w · sin(tilt) ÷ pitch
That cos(A − A_array) term is the part most spreadsheets leave out, and it is worth
real money. Early in the morning the sun is well off to the side of a south-facing array, so the
shadow runs diagonally and only part of its length lands on the next row. Ignore it and you will
leave more ground empty than you had to.
Worked example
40 °N, module tilted width 1.13 m at 25° tilt, due south, winter solstice, 9:00 solar time.
- δ = −23.44°; h = 15° × (9 − 12) = −45°
- sin α = sin 40 · sin(−23.44) + cos 40 · cos(−23.44) · cos(−45) = −0.2558 + 0.4971 = 0.2413
→ α = 13.96°
- Azimuth = 138.0° — that is south-southeast, not due south, and it matters
next step
- Shading height H = 1.13 × sin 25° = 0.478 m
- cos(138.0 − 180) = cos(−42.0) = 0.743 → D = 0.478 × 0.743 ÷ tan 13.96° =
1.43 m
- Row footprint = 1.13 × cos 25° = 1.02 m → pitch = 2.45 m
- GCR = 0.478 ÷ 2.45 = 0.195 — less than a fifth of that land carries modules
The lesson in one line: move the same array to 10:00 instead and the gap falls
to 1.10 m, pitch to 2.13 m, GCR up to 0.224 — 23 % less dead ground for giving
up one hour of high-value winter morning. Nobody can make that trade for you; the tool just
prices it.
Limitations
- Fixed-tilt rows only. Single-axis trackers rotate, so their obstruction
height changes through the day, and backtracking changes the answer again. Use design software
for those.
- Flat, uniform ground. Sloping sites change both the shadow length and the
effective height. A north-facing slope is much worse than this model says; a south-facing one
is better.
- Solar time, not clock time. Longitude within the time zone, daylight saving
and the equation of time together can shift you by an hour or more. If you design at 9:00
clock time you may be designing at 8:00 solar without knowing it.
- No terrain or obstacle horizon. Trees, ridges and neighbouring buildings
create shade that no row spacing fixes. This tool only handles rows shading each other.
- Shading is not only morning loss. Inter-row shading also costs you
mismatch and hot-spot stress on partially-shaded strings, which dilutes whatever production
the geometry would have predicted.
- No code content. The "9 AM rule" and its variants are conventions, not
law. Setbacks, fire access lanes, drainage and equipment clearance come from your local code
and will usually dominate this number anyway.
What is the 9 AM rule for row spacing?
A convention, not a code rule: rows should not shade one another before 9 AM solar time on the winter solstice. At 40 °N the solstice sun is only about 14° up at 9 AM, so the gap approaches three times the obstruction height. Relaxing to 10 AM cuts the gap by roughly 23 %.
How do you get shadow length from sun altitude?
A vertical obstruction of height H casts a shadow H ÷ tan(altitude). Only the part along the row-pitch axis shades the next row, so multiply by cos(sun azimuth − array azimuth). At noon those align and the full length applies; early morning the shadow falls partly sideways.
What is ground coverage ratio?
Tilted module width divided by row pitch. It says how much land actually carries modules — typically 0.3–0.5 for fixed tilt in good locations. A strict winter 9 AM rule at high latitude can push it below 0.2, meaning most of the site is empty ground bought purely to avoid shading.
Does this work for single-axis trackers?
No. Trackers rotate, so the obstruction height and effective width change continuously, and backtracking alters the optimum again. The sun-position maths is identical, but the row geometry is not. Use PVsyst or Helioscope for tracker layouts.
Solar time or clock time?
Solar time — that is what this tool takes. Clock time differs by your longitude within the time zone, by daylight saving, and by the equation of time (± ~15 min through the year). A 9:00 clock time near the western edge of a wide time zone can easily be 8:00 solar, which under-sizes every row.