Key takeaways
- Pitch, gap and GCR describe one spacing. GCR is table slant length L divided by pitch. Gap is pitch minus L cos(tilt).
- For a 15° roof table, pitch runs from 1.68 m (noon rule) to 1.96 m (9 am rule) in Denver. In London it runs from 2.19 m to 3.49 m.
- Gap divided by rise (the table’s height) depends on the sun’s height and, away from noon, its direction. At noon it is 1.98 in Denver and 3.72 in London. At 9 am it is 2.95 and 8.17.
- The 9 am pitch is 11% longer than the 10 am pitch in Denver and 40% longer in London (15° roof table).
- Tools define GCR differently. One counts the array, another counts the whole site.
To set row spacing from a sun rule in software, see the best solar panel layout software.
Row spacing and pitch at a glance
Row spacing is set by the table’s rise and the sun’s height at a chosen winter hour. The same spacing can be quoted three ways. For a roof table in Denver, the 10 am rule gives a pitch of 1.77 m.
| Item | Detail |
|---|---|
| Formula | Gap = rise × cos(azimuth from south) ÷ tan(sun elevation). Pitch = L cos(tilt) + gap. GCR = L ÷ pitch. |
| Where it matters | Roof capacity, ballast layout, land use, winter shading loss, height limits |
| Standard or rule | No single standard. The design hour is a designer’s choice |
| In software | Layout tools set spacing from a sun rule, or take it by hand. See best solar panel layout software |
Why does row spacing matter on a roof or small ground array?
Spacing decides how many modules fit and how much winter light you lose. Close rows fit more kW but shade each other when the sun is low.
An undated DNV Zondits article says flat-roof tilts are typically 10° to 12° on ballasted racks. It says low tilt needs less row spacing, but annual energy is about 10% below the best tilt. We could not date this claim, so treat it as a rough guide. Checking again in November 2026, the Zondits page no longer loads (404), so this source may have been taken down. Verify the 10% figure with your own layout tool before quoting it.
England adds a height limit. In England, permitted development allows flat-roof solar only if its highest part is no more than 600 mm above the roof’s highest part (excluding the chimney). Prior approval applies on protected land such as conservation areas, and solar on a building within a listed building’s grounds, or on a scheduled monument, is not permitted development at all. Planning Portal shows the right was updated on 27 August 2026, with a 12-month transitional period to 27 August 2027 in which either the old or the new rules can be followed. Above the limit, or outside permitted development, you need planning permission. That limits the rise.
What is the difference between pitch, gap and GCR?
Pitch is the repeat distance from one row to the next. Gap is the clear space between them. GCR is the table’s slant length divided by pitch.
- Pitch: front edge to front edge, or axis to axis. Glint Solar’s help centre says axis to axis is its default and can be called pitch.
- Clear gap: the horizontal space from the back of one row to the front of the next. Glint defines inter-row space as the distance between a solar panel from one row to the next. We use gap = pitch − L cos(tilt).
- GCR: the pvlib documentation defines it as the ratio of row slant length to row spacing. See ground coverage ratio.
Converting needs L and tilt. This table uses a 1.134 m landscape module at 15°, so L cos(tilt) is 1.10 m.
| You know | Clear gap | GCR |
|---|---|---|
| Pitch 1.6 m | 0.50 m | 0.71 |
| Pitch 2.0 m | 0.90 m | 0.57 |
| Pitch 2.5 m | 1.40 m | 0.45 |
| Pitch 3.0 m | 1.90 m | 0.38 |
| GCR 0.50 | 1.17 m (pitch 2.27 m) | 0.50 |
Do not compare GCR between tools without checking the definition. HelioScope defines it as active module area over the overall array area, and says it ignores keepouts and setbacks. Glint Solar defines it as total ground covered by panels over the whole site. A site GCR is normally lower than a row GCR for the same layout.
Which design hour sets the spacing?
There is no single rule. The sources cited use noon, 10 am to 2 pm or 9 am to 3 pm on the winter solstice, or allow some shading. Solar time is our assumption.
| Rule | Who says it | Wording |
|---|---|---|
| No shade at solstice noon | DNV Zondits. An online row-spacing calculator (Incoherency) | DNV: "Theoretically", rows are not shaded at noon on the winter solstice. Incoherency option: "No shading at winter-solstice noon". |
| 10 am to 2 pm | HelioScope. Solargraf | HelioScope: "typically" the winter solstice, 10 am to 2 pm. Solargraf’s row-spacing option uses the same window. |
| 9 am to 3 pm | Greentech Renewables, inter-row spacing article | The author "picked" it as the worst case. A less stringent case "may" suit your needs. |
| Allow some shading | PVcase. Greentech | PVcase allows a set shading percentage. Greentech’s other article says systems are "designed to permit some self-shading loss" in winter. |
The windows are symmetric about solar noon, so the earliest hour sets the pitch. The sources cited do not say whether their hours are solar or clock time. Using solar time is our assumption. Our formulas assume due-south rows on a flat roof. For the formula derivation, the 2.5 times rule and large-site numbers, see ground-mount design.
How does the shadow change through the morning?
The shadow is shortest at noon and grows fast as the sun drops. At 9 am it is 1.49 times its noon length in Denver and 2.20 times in London.
Figure 1. At 51.51°N the 9 am shadow is 2.20 times the noon shadow, against 1.49 at 39.74°N.
In London on 21 December the sun is 5.3° high at 9 am and 15.0° at noon. Sunrise is about 8:12 am solar time. In Denver the sun is 14.2° high at 9 am.
Worked example: a flat roof in Denver and London
For a 15° roof table, pitch is 1.68 to 1.96 m in Denver and 2.19 to 3.49 m in London, by hour. GCR is 0.68 to 0.58 and 0.52 to 0.32.
Roof table: one 1.722 × 1.134 m, 425 W module in landscape (rise 0.29 m), an assumed example. The clear gap equals the shadow length. Sun position agreed with pvlib within 0.02°.
| Site and table | Rule hour: sun elevation / azimuth | Gap / pitch (m) | GCR | Gap ÷ rise |
|---|---|---|---|---|
| Denver, 39.74°N, flat roof, 15° | noon: 26.8° / 0.0° | 0.58 / 1.68 | 0.68 | 1.98 |
| Denver, 39.74°N, flat roof, 15° | 10 am: 20.9° / 29.4° | 0.67 / 1.77 | 0.64 | 2.28 |
| Denver, 39.74°N, flat roof, 15° | 9 am: 14.2° / 42.0° | 0.86 / 1.96 | 0.58 | 2.95 |
| London, 51.51°N, flat roof, 15° | noon: 15.0° / 0.0° | 1.09 / 2.19 | 0.52 | 3.72 |
| London, 51.51°N, flat roof, 15° | 10 am: 10.6° / 27.8° | 1.39 / 2.49 | 0.46 | 4.75 |
| London, 51.51°N, flat roof, 15° | 9 am: 5.3° / 40.7° | 2.40 / 3.49 | 0.32 | 8.17 |
At 10° the roof table needs 1.51 to 1.70 m in Denver and 1.85 to 2.73 m in London. Gap ÷ rise does not change with tilt or table size.
In London a 9 am rule gives GCR 0.32 on the roof. Pick a later hour, or allow some shading and test it in a shading analysis. Energy lost is not modelled here.
Pitch, gap and GCR calculator
Enter the table length and tilt, then any one of pitch, gap or GCR. It returns the other two. Add a latitude and an hour to see the pitch the sun rule needs. Use a minus sign for southern latitudes.
How do you read the numbers for a roof or small ground array?
Four things decide how to read the numbers: the distance meant, the rise, the GCR basis and the rule behind the pitch.
- Which distance. Pitch and gap differ by L cos(tilt), here 1.10 m for a 1.134 m table at 15°.
- Height limit. Rise is L × sin(tilt), measured from the low edge. It leaves out frame height above the roof, so real margin is smaller.
- GCR basis. Density is GCR × module watts per m². Our module is 217.6 W/m². So GCR 0.64 gives about 140 W per m² of array footprint, before walkways and setbacks.
- Rule behind it. Find out which hour and date were used.
| Table | Rise at 10° (m) | Rise at 15° (m) | Rise at 20° (m) |
|---|---|---|---|
| 1 module landscape (L = 1.134 m) | 0.20 | 0.29 | 0.39 |
| 1 module portrait (L = 1.722 m) | 0.30 | 0.45 | 0.59 |
| 2 modules landscape, 20 mm gap (L = 2.288 m) | 0.40 | 0.59 | 0.78 |
The 600 mm rule is for England. Scotland, Wales and Northern Ireland are not covered here. Sloped ground or a sloped roof changes the answer. Fire setbacks are separate. See setbacks.
How solar software handles row spacing and pitch
Two of the four tools document a sun-based spacing rule, and two define GCR on their pages.
| Software | Spacing from a sun rule? | Source |
|---|---|---|
| HelioScope | Yes | HelioScope help, Row Spacing |
| PVcase Ground Mount | Yes | PVcase help, updated 13 October 2026 |
| Glint Solar | Not stated | Glint help, Equipment and layout, undated |
| PVsyst | Not stated | PVsyst help, shadings page |
Not stated means the page we cite does not document a sun-based spacing rule. What each page says:
- HelioScope. A Time of Day rule spaces modules as tightly as possible with no shade in a window. The window is typically the winter solstice, 10 am to 2 pm. Row spacing, span-to-rise and GCR are linked. The help text does not say pitch or gap.
- PVcase Ground Mount. Shade limit by sun angle, or by date and time at the site, or a set percentage of shading. The article does not mention GCR.
- Glint Solar. A utility-scale tool. Axis to axis is the default and can be called pitch. GCR is covered ground over site area.
- PVsyst. The shadings page calls "unlimited" orientations an alternative way to include mutual shadings. The PVsyst sheds page is not cited.
All checked October 2026. More tools are compared in the best solar mounting structure design software list.
Common mistakes with row spacing and pitch
FAQs
How far apart should solar panel rows be on a flat roof?
Far enough apart that the row behind stays clear of shade at your chosen winter design hour. For a 15° landscape module, pitch runs from 1.68 m (Denver, noon) to 3.49 m (London, 9 am). Use the calculator, then confirm in a shading simulation.
Is row pitch the same as row spacing?
Not always. Pitch runs front edge to front edge, and the clear gap is shorter by L cos(tilt). Some tools use axis to axis, and others measure the gap. Each tool’s definition decides.
What time of day should the no-shade rule use?
The sources cited use noon, 10 am to 2 pm or 9 am to 3 pm on 21 December. For the roof table, a 9 am pitch is 17% longer than noon in Denver and 60% longer in London.
What GCR should a flat roof use?
For our 15° roof table, GCR runs from 0.68 (Denver, noon) to 0.32 (London, 9 am). No fixed value exists. It follows from the design hour, the tilt and the latitude. Your tool’s GCR basis matters too, so read its definition.
Related terms
- Ground coverage ratio: table slant length divided by row pitch.
- Tilt angle: the module angle from horizontal that sets the rise.
- Utility-scale layout optimisation: how GCR trades against energy and land.
- Agrivoltaics: farming or grazing under or between solar rows.
Next step: set the pitch from a sun rule in the best solar panel layout software. To test the winter shading loss at that pitch, use the best solar shading analysis software.
Sources
All sources checked October 2026.
- Rules. DNV Zondits, emerging tech: solar PV angles (returned a 404 when re-checked 3 November 2026, kept as a dated reference to the original claim only). Greentech Renewables, spacing a ground-mounted array, Greentech, determining module inter-row spacing and comment. Solamp, row spacing. Incoherency row-spacing calculator.
- Definitions. pvlib infinite sheds. Glint Solar, equipment and layout.
- Height limit. Planning Portal, solar panels, re-read 3 November 2026: confirms the 27 August 2026 update and its 12-month transitional period to 27 August 2027.
- Software. HelioScope, Row Spacing. PVcase fixed tilt. Solargraf ground mount. PVsyst shadings.
- Model. Our own calculations, cross-checked against pvlib.
Last updated 3 November 2026. Next scheduled review: 3 February 2027.