Key takeaways
- GCR is slant length ÷ pitch. An example 3.464 m table at 25° tilt and 7.0 m pitch gives 0.495.
- On that layout the footprint basis gives 0.448. A site basis with 20% non-array land (example) gives 0.396.
- Typing the wrong basis into a row-GCR input widens the pitch by 10.3% (footprint value) or 25% (site value) on the same layout.
- Fixed 25° rows start to shade each other below a sun angle of 9.9° at GCR 0.3, 14.9° at 0.4, 21.1° at 0.5 and 29.1° at 0.6.
- For an example 5 MWdc plant, array-only land falls from 7.66 ha at GCR 0.30 to 3.83 ha at 0.60.
To compare tools that set GCR and row pitch, see the best solar panel layout software.
Ground coverage ratio at a glance
GCR ties row spacing to land and shading. A higher GCR means tighter rows, less land per MWdc and earlier shading as the sun drops.
| Item | Detail |
|---|---|
| Formula | Row GCR = slant length ÷ pitch (pvlib). For a tracker, collector width ÷ axis-to-axis distance. |
| Range | 0 to 1. SAM’s PVWatts help requires more than 0.01 and less than 0.99. Our calculator takes 0.05 to 0.95. |
| Where it matters | Land per MWdc, row shading, backtracking, site fit |
| Standard or rule | No standard found. Each tool’s help page gives its own wording (see Table 1). |
| In software | SAM, pvlib, HelioScope and PVcase document it. PVsyst’s help index does not state GCR. |
Why does GCR matter for installers and designers?
GCR is the one number that trades land against shading. Annual loss figures are on utility-scale layout optimisation. Land sizing starts from land parcel data and the site plan. Pitch, gap and GCR conversions are on row spacing and pitch. This page covers what GCR means across tools, and how it sets shade.
Figure 1. At GCR 0.4 a tracker row pointed at the sun starts shading its neighbour at 23.6° sun angle. A fixed row at 25° tilt starts at 14.9°.
How do tools define GCR?
Most pages write GCR as module or array area over ground area, but the area counted differs. Row wording divides slant length by pitch. Site wording divides by the whole site.
Table 1. What each page says (checked October 2026).
| Source | Basis | Wording or note |
|---|---|---|
| pvlib docs (0.16.2.dev13), infinite sheds | Row | "Ground coverage ratio, ratio of row slant length to row spacing." |
| pvlib docs, single-axis tracker | Array | "the ratio between the PV array surface area to the total ground area." |
| SAM PVWatts help (undated) | Row | Divides row side length by the distance between the bottoms of neighbouring rows. General wording is quoted below. |
| NREL (renamed NLR in December 2025) conference paper CP-5K00-72039 (2018, revised 2019) | Tracker row | GCR = CW ÷ rtr. CW is the collector width, rtr the distance between rotation axes. |
| HelioScope help, Row Spacing (updated 8 July 2025) | Array, layout rules only | Active module area over array area. Exact wording is quoted below. |
| Glint Solar help (undated) | Site | "the ratio of the total ground area covered by solar panels to the total area of the solar park site." |
| PVcase Ground Mount release notes 2.22 (undated) | Footprint (horizontal) over field boundary | Horizontal PV area over the field area. Exact wording is quoted below. |
- SAM PVWatts: "The ratio of the photovoltaic array area to the ground area occupied by the array."
- HelioScope: "the ratio of the active module area to the overall area of the array". It "does not include Keepouts, setbacks, modules removed manually or by shading rules".
- PVcase Ground Mount: "Our calculation compares the ground area covered by PV (the horizontal part) to the field area." Roads and exclusion areas are not taken into account.
The basis changes the number. Table 2 uses one example layout: a 3.464 m table at 25° tilt and 7.0 m pitch.
Table 2. One layout, three GCR values (example inputs).
| Basis | Calculation | Value | If typed into a row-GCR input |
|---|---|---|---|
| Row, slant length | 3.464 ÷ 7.0 | 0.495 | Pitch 7.00 m (correct) |
| Footprint on the ground | 3.464 × cos 25° ÷ 7.0 | 0.448 | Pitch 7.72 m, 10.3% wider |
| Site, with 20% non-array land | 0.495 × (1 − 0.20) | 0.396 | Pitch 8.75 m, 25% wider |
Tilt does not change the slant basis. Length and pitch fix it. HelioScope’s article lists tilt among the things that change its GCR but does not say how.
On the footprint basis, tilt matters. Sizing land from that basis overstates land by 3.5% at 15° tilt, 10.3% at 25° and 15.5% at 30°.
A moderator in a SAM forum thread (January 2024) says land area in the detailed model depends on row size and GCR, not tilt. The moderator calls the "projected onto ground" label misleading and says it would change. The label may differ by SAM version.
How does GCR set shading and backtracking?
Rows shade each other when the sun’s angle across the rows falls below a threshold. GCR and tilt set that threshold, and a higher GCR raises it.
Take south-facing rows on flat ground. The sun angle across the rows is α, where tan α = tan(elevation) ÷ cos(azimuth from south). For tilt β:
- Shade starts when tan α < sin β ÷ (1 ÷ GCR − cos β).
- Back row shaded share = 1 − tan α ÷ (GCR × (sin β + cos β × tan α)), floored at 0.
- Tracker pointed at the sun (β = 90° − α): shade starts when sin α < GCR, so the threshold is a sun angle of arcsin(GCR). That is where backtracking begins. It gives sun angles of 17.5° to 36.9° for GCR 0.3 to 0.6, not tracker rotation angles. See backtracking.
This assumes a horizontal north-south axis, flat ground, endless rows and α measured in the east-west plane. Slope, axis tilt and row-end effects change it.
Tools use GCR in two ways. SAM’s PVWatts help says it uses GCR for self-shading on fixed open rack and one-axis types, and to decide when to backtrack. With backtracking it assumes no self-shading. It says GCR does not apply to roof mount and two-axis tracking. It also warns against adding self-shading to the shading loss for the options that already model it.
pvlib’s infinite-sheds model takes a gcr and treats rows as endless. Row ends, slopes and string wiring are outside it. For electrical effects see mismatch loss. For site shading see shading analysis.
Worked example: 5 MWdc at four GCRs
Doubling GCR from 0.30 to 0.60 halves the array-only land. It also lifts the shade threshold at 25° tilt from 9.9° to 29.1° sun angle.
Inputs (example): 5 MWdc of 425 W modules, each 1.722 × 1.134 m. This is the example module on our ground-mount design page. Two modules high in portrait give a 3.464 m table at 25° tilt. Land is module area ÷ GCR, array only.
| GCR | Pitch (m) | Array-only land (ha) | Shade starts below (sun angle) | Back row shaded at 15° / 10° |
|---|---|---|---|---|
| 0.30 | 11.55 | 7.66 | 9.9° | 0% / 0% |
| 0.40 | 8.66 | 5.74 | 14.9° | 0% / 24% |
| 0.50 | 6.93 | 4.59 | 21.1° | 19% / 39% |
| 0.60 | 5.77 | 3.83 | 29.1° | 33% / 50% |
Where does the sun angle come from? For 21 December at 9 am solar time, α is 24.8° at 33.64°N and 13.6° at 44.88°N. That uses the sun-position method on the ground-mount page. For no shade at 25° tilt, GCR must be at most 0.55 at the first latitude. At the second it must be at most 0.38. At 44.88°N, GCR 0.5 would shade 25% of the back row at that hour. The 9 am rule is a design choice. See row spacing and pitch.
GCR, pitch and land calculator
Enter a GCR or a pitch, the table length and the tilt. It returns the other value, the gap, the footprint ratio, the sun angle where shade starts and land per MWdc. Add a non-array share to see a site GCR. Presets use example inputs.
How solar software handles GCR
SAM, pvlib, HelioScope and PVcase document GCR in their own help pages or docs. RatedPower rests on a blog, and the PVsyst help index we checked does not state GCR.
| Software | Takes or reports GCR? | Source |
|---|---|---|
| SAM | Yes | SAM PVWatts help (undated), October 2026 |
| pvlib python | Yes | pvlib docs 0.16.2.dev13, October 2026 |
| HelioScope | Yes, for fixed tilt | HelioScope help, Row Spacing, updated 8 July 2025 |
| PVcase Ground Mount | Yes | PVcase Ground Mount release notes 2.22 (undated), October 2026 |
| RatedPower | Partly | RatedPower blog, updated 4 May 2022 |
| PVsyst | Not stated | PVsyst help index, October 2026 |
Not stated: the company page we cite does not say. Partly: the tool’s own documentation is limited to a blog post.
- SAM: PVWatts takes GCR above 0.01 and below 0.99. It uses it for self-shading (fixed open rack, one-axis) and for backtracking, but not for roof mount or two-axis.
- pvlib python: A code library, not an app. It takes a gcr input in the infinite-sheds model and in the single-axis tracker function (backtracking).
- HelioScope: Row spacing, span-to-rise and GCR are linked: change one and the other two change. The text mentions fixed-tilt arrays only, not trackers.
- PVcase Ground Mount: Release notes for PVcase Ground Mount say GCR is a selectable column. It compares the horizontal ground area covered by PV with the PV field boundary, excluding roads and exclusion areas.
- RatedPower: A company blog says the tool assumes around 40% GCR for trackers by default. It recommends a pitch with at least 4 hours of unshaded generation on the shortest day. A blog is not a help page.
- PVsyst: The help index mentions tracking planes and shed mounting, not pitch or GCR. We did not confirm the shading and shed help pages.
To weigh PVcase against other tools, see the best PVcase alternatives.
Common mistakes with GCR
FAQs
What is the formula for ground coverage ratio?
Row slant length divided by row pitch, as pvlib’s docs put it. For a tracker, collector width divided by the distance between axes. Example: 3.464 ÷ 7.0 = 0.495.
Does tilt change GCR?
Not on the slant basis, because length and pitch fix it. The footprint on the ground does change with tilt. Table 1 shows how each tool defines it.
What GCR do tools assume?
No standard sets one, and we could not confirm a typical range. RatedPower’s blog (updated 4 May 2022) says its tool sets around 40% for trackers by default. Check your own tool’s default. The best value depends on land cost and shading limits. See our single-axis tracker page and utility-scale layout optimisation.
Does GCR apply to roof arrays?
Not for SAM’s fixed roof mount type. Its PVWatts help says GCR does not apply there, because it assumes no self-shading. Tilted flat-roof rows do shade each other, so size pitch from a design-day sun angle, as in the worked example. See row spacing and pitch.
Related terms
- Row spacing and pitch: the repeat distance between rows.
- Backtracking: tracker control that flattens rows at low sun.
- Single-axis tracker: the row type whose GCR sets the backtracking threshold.
- Ground-mount design: row layout, tilt and sun-position method.
- Utility-scale layout optimisation: annual loss against land.
- Shading analysis: site shading beyond row-to-row shade.
- Land parcel data: the site area behind a site-basis GCR.
Next step: test your own table length and pitch in the calculator above, then pick a layout tool from the best solar panel layout software list.
Sources
All sources checked October 2026.
- Definitions. pvlib infinite sheds. pvlib single-axis tracking. pvlib shading module. Ayala Pelaez et al., NREL/CP-5K00-72039.
- Tools. SAM PVWatts system design help. SAM forum, land area and GCR. HelioScope, Row Spacing. Glint Solar, equipment and layout. PVcase release notes 2.22. RatedPower, pitch distance. PVsyst help index.
- Model. Own geometry code, cross-checked against pvlib. The shaded share matched our own ray-casting test within 0.0003 and pvlib’s shaded_fraction1d to 1e-15 (same geometry, so not independent). The tracker threshold matched pvlib’s singleaxis backtracking within the 0.05° search step.
Last updated 30 October 2026. Next scheduled review: 30 January 2027.