A flat commercial roof looks simple until you have to put racking on it. There is no truss line to bolt into, no rafter spacing to follow, and no single “correct” tilt angle. Every decision, ballast weight, attachment count, tilt, row spacing, comes back to two constraints fighting each other: the roof structure’s dead load capacity and the wind uplift the racking has to resist. Get the balance wrong and you either overload the deck or under-anchor the array in a storm.
This is the design problem Mike, a US residential-to-light-commercial permit engineer, and Jennifer, a C&I developer building a multi-site rooftop portfolio, both run into on nearly every TPO or EPDM roof. The code references are the same whether the building is a 20,000 sq ft distribution warehouse or a 200,000 sq ft big-box roof. What changes is how much margin you have to work with.
Direct answer. Flat-roof solar racking design starts with three inputs: the roof’s dead load capacity, the site’s design wind speed under ASCE 7-22, and the roof membrane’s warranty terms. Ballasted racking avoids penetrations but adds 8 to 15 psf of dead load and typically caps tilt near 10 degrees to keep wind uplift manageable. Mechanically attached racking penetrates the deck with lag bolts or standoffs, handles higher wind loads and steeper tilt, but requires flashing detail that the roofing manufacturer must approve to keep the roof warranty intact. Most large commercial arrays end up as a hybrid: ballast in the low-wind interior zone, mechanical attachment at the high-wind edge and corner zones defined by ASCE 7-22 Section 29.4.4.
TL;DR
- Racking design on flat roofs is a three-way tradeoff between dead load capacity, wind uplift resistance, and roof membrane warranty terms, not a single "best" mount type.
- Ballasted systems avoid penetrations but add real dead load and usually cap tilt near 10 degrees; they are not permitted in Florida's High-Velocity Hurricane Zone (HVHZ).
- Mechanically attached systems handle higher wind speeds and steeper tilt, but every penetration needs roofing-manufacturer-approved flashing or the roof warranty is at risk.
- ASCE 7-22 Section 29.4.4 sets three wind-load zones on a flat roof, interior, edge, and corner, with edge and corner loads running 30 to 60 percent higher than interior.
- Tilt angle on flat roofs trades annual energy yield against wind load, row spacing, and racking cost; low tilt (5 to 10 degrees) is the default for a reason.
- Bringing the roofing contractor into the racking design before installation, not after, is the single biggest factor in whether a flat-roof array keeps its roof warranty.
This guide walks through the engineering decisions in the order a structural designer actually makes them: pick the mount type, size it against wind and dead load, set the tilt, then coordinate the attachment or ballast plan with the roofing warranty. We reference ASCE 7-22, the standard most US jurisdictions now enforce through IBC 2024, and general industry practice from the National Roofing Contractors Association (NRCA) on rooftop equipment coordination.
The Three Racking Approaches on a Flat Roof
Every flat or low-slope roof (typically defined as 0 to 3 degrees of slope, sometimes extended to 10 degrees in racking manufacturer literature) resolves to one of three mounting strategies.
Ballasted racking
Ballasted racking uses weighted blocks, usually precast concrete, set into a tray or frame that holds the module. No fasteners penetrate the roof membrane. The system stays in place through friction and gravity, resisting wind uplift with dead weight instead of anchorage. It is the default choice on newer TPO, PVC, and EPDM membranes where the roofing manufacturer wants zero penetrations to preserve warranty coverage.
The tradeoff is dead load. A ballasted array typically adds 8 to 15 psf of additional roof dead load, on top of whatever dead load margin the original structural design left for future equipment. On an older roof, or one already carrying HVAC curbs and mechanical units, that margin may not exist. A structural engineer has to pull the original roof design load or run a field assessment before assuming ballast is even an option.
Mechanically attached racking
Mechanically attached racking anchors directly into the roof structure, usually through L-feet, standoffs, or rail clamps fastened with lag bolts into purlins, joists, or deck framing. Because the connection resists uplift through tension in the fastener rather than dead weight, mechanically attached systems handle higher wind speeds and steeper tilt angles without adding meaningful dead load.
The tradeoff moves from structural capacity to waterproofing. Every penetration is a potential leak path. It has to be flashed correctly, typically with a boot or curb detail specified or approved by the membrane manufacturer, or the roofing warranty is void from that point forward regardless of how well the electrical system performs.
Hybrid systems
On large commercial roofs, the two approaches are usually combined rather than chosen exclusively. ASCE 7-22 defines distinct wind pressure zones across a flat roof (more on this below), and the edge and corner zones see meaningfully higher uplift than the interior field. A common design pattern uses ballast in the interior zone, where wind pressure is lowest and dead load can carry the load economically, and mechanical attachment at the perimeter and corner zones, where uplift is highest and ballast weight would become impractical. This is standard practice on most 100 kW-plus commercial flat-roof arrays, not an edge case.
For a side-by-side comparison of when each approach wins outright, see our breakdown of ballasted vs. penetrating rooftop mount systems.
Wind Uplift Basics Under ASCE 7-22
Wind, not dead load or seismic, governs almost every flat-roof racking design in the continental US. Racking sits low and flat, which means the racking assembly experiences suction (uplift) rather than lateral push for most wind directions, and that uplift is what the ballast or the fasteners have to resist.
ASCE 7-22, the wind load standard referenced by IBC 2024, added a dedicated section, 29.4.4, for rooftop solar panel assemblies. It defines three pressure zones on a flat or low-slope roof:
| Zone | Location | Relative uplift |
|---|---|---|
| Interior | Center field of the roof, away from edges | Baseline, lowest pressure |
| Edge | Perimeter strip along roof edges | 30 to 45 percent higher than interior, typical |
| Corner | Roof corners, smallest area, highest pressure | 45 to 60 percent higher than interior, typical |
ASCE 7-22 also sets a minimum design wind pressure of 8 psf uplift for enclosed buildings, which governs interior-zone panels in lower-wind regions even when the calculated pressure would otherwise be lower. For the full Chapter 29.4.4 walkthrough, including the Kae aerodynamic multiplier and how it changed from ASCE 7-16, see our ASCE 7-22 wind load guide for solar rooftops. If your project involves a building over 60 feet or an unusual roof geometry, code-based tables may not apply at all, see our wind tunnel testing vs. code-based wind load decision guide for when testing is warranted.
A worked example
Take a 400 W module, roughly 21.7 sq ft, mounted flat at low tilt in the interior zone of a warehouse roof in a moderate-wind region (design wind speed around 115 mph, Exposure C). A representative interior-zone uplift pressure under Table 29.4-2, after applying the site’s velocity pressure and the low-tilt Kae multiplier, might land around 12 psf.
Uplift force on that module: 12 psf times 21.7 sq ft equals roughly 260 lbs.
For a ballasted design, the ballast block has to resist that 260 lbs with margin. Applying a typical safety factor of 1.5 to 2.0 for friction and installation tolerance, the block weight needed is roughly 390 to 520 lbs per module position in that zone, distributed across the ballast tray. That is the interior-zone number. The same module at the roof edge, where pressure runs 30 to 45 percent higher, would need proportionally more ballast, which is exactly why edge and corner zones so often shift to mechanical attachment instead of scaling the ballast weight up.
Watch out. This worked number is illustrative, not a substitute for a site-specific calculation. Actual uplift depends on exact wind speed, exposure category, building height, panel tilt, and array position, all of which change the GCp coefficient and Kae multiplier ASCE 7-22 assigns. Every flat-roof racking package should carry a stamped structural calculation, not a rule-of-thumb number pulled from an example.
Ballasted vs. Mechanically Attached: The Decision Framework
| Factor | Ballasted | Mechanically Attached |
|---|---|---|
| Roof penetrations | None | Yes, requires flashing |
| Added dead load | 8 to 15 psf | Minimal |
| Typical tilt ceiling | Around 10 degrees | 15 to 30 degrees or more |
| Wind speed suitability | Lower to moderate design wind speeds | Moderate to high design wind speeds |
| HVHZ (Miami-Dade / Broward, FL) | Not permitted | Required, with FM Global-rated hardware in many cases |
| Roof warranty path | Membrane manufacturer usually pre-approves | Requires manufacturer-approved flashing detail |
| Removability for re-roofing | High, blocks lift off | Lower, requires re-flashing on removal |
Three factors typically decide the answer before a calculation is even run: does the roof structure have spare dead load capacity, what is the site’s design wind speed, and what does the membrane manufacturer’s warranty require. If the roof cannot take the added dead load, ballast is off the table regardless of wind speed. If the site sits in a high-wind zone like coastal Florida or the Gulf Coast, ballast alone rarely clears the uplift check without adding more weight than the deck can bear, which pushes the design toward mechanical attachment. HVHZ jurisdictions specifically prohibit ballast-only systems.
Tilt Angle Tradeoffs on Low-Slope Roofs
Tilt angle on a flat roof is not free. Every degree of added tilt increases three things at once: annual energy yield (up to a point), self-shading between rows, and wind uplift, because a tilted panel presents more surface area to the wind and generates higher aerodynamic pressure than a panel flush with the roof.
- 0 to 5 degrees: Lowest wind exposure, tightest row spacing, lowest ballast requirement. Annual yield loss versus optimal tilt is typically in the low single digits for most US latitudes, since flat roofs already sit close to horizontal.
- 5 to 10 degrees: The most common range for ballasted commercial flat-roof arrays. Balances yield gain against ballast weight and row-to-row shading; still generally clears ASCE 7-22 uplift checks without pushing dead load past typical roof capacity.
- 10 to 20 degrees and above: Meaningful yield improvement, but wind uplift rises sharply and row spacing has to increase to avoid self-shading, which reduces the number of modules that fit on the roof. Almost always requires mechanical attachment rather than ballast alone.
The tilt decision is inseparable from row spacing (ground coverage ratio) and from the wind-load check above. Raising tilt from 5 to 15 degrees on the same roof can shrink the array’s module count by 15 to 25 percent once shading-driven row spacing is applied, which frequently erases the energy gain from the steeper angle. For most commercial flat-roof jobs, low tilt (5 to 10 degrees) wins on total system economics even though it is not the “optimal” tilt for the latitude. See our tilt angle glossary entry for the latitude-based optimal tilt reference and how it compares to what a flat roof can actually support.
Roof Membrane and Warranty Coordination
The most common flat-roof racking mistake is not a structural error, it is a warranty error: designing and installing the racking without looping in the roofing manufacturer or the building owner’s roofing contractor.
Commercial flat roofs are almost always TPO, PVC, EPDM, modified bitumen, or standing-seam metal. Each membrane type has its own manufacturer-specific rules for what can sit on it and how penetrations, if any, must be flashed:
- TPO and PVC (heat-welded single-ply): Manufacturers generally require their own certified installer to weld any new penetration flashing, or the warranty is voided even if the racking installer used correct materials.
- EPDM (rubber membrane): Adhesive-based flashing details are common; manufacturers often specify a minimum bonding width around any standoff.
- Modified bitumen: Torch-applied or cold-adhesive flashing, with its own manufacturer-specific detail library.
- Standing-seam metal: Frequently allows non-penetrating clamp attachment directly to the seam, which sidesteps the flashing question entirely, but only on true standing-seam profiles, not on exposed-fastener metal panels.
Before finalizing a racking layout, a structural design team should confirm three things with the roofing side: the roof’s remaining warranty term, whether the manufacturer requires their own certified crew for any new penetration, and whether the roof has any existing repairs or ballast-incompatible areas the design needs to route around. This coordination step is what our civil and structural engineering team runs on every commercial rooftop package, specifically because a racking design that is structurally correct but warranty-incompatible still costs the EPC a change order and a schedule delay.
Field note.
We regularly see racking layouts arrive for structural review with a ballast plan already drawn, before anyone has confirmed the roof's remaining dead load margin or talked to the roofing manufacturer. Reversing that order, structure and warranty first, layout second, is the single change that prevents the most rework on commercial flat-roof jobs.
What Most EPCs Get Wrong on Flat-Roof Racking
The most common misconception is treating ballast weight as a fixed number pulled from a racking manufacturer’s spec sheet, applied uniformly across the whole roof. It is not fixed. Ballast requirements change by wind zone (interior versus edge versus corner), by building height, by exposure category, and by the specific site’s design wind speed under ASCE 7-22. A ballast schedule copied from a similar-looking project in a different city is a common source of AHJ plan-check rejections.
A second misconception: assuming a lower tilt angle always means a weaker structural case. In fact, low tilt is usually the reason a ballasted system clears the wind check at all. The tradeoff runs the other way from what installers often expect, steeper tilt buys yield but spends structural margin.
There is also no universal winner between ballasted and mechanically attached. Framing the decision as “which system is better” misses the point; the correct framing is which system fits this roof’s dead load capacity, this site’s wind speed, and this membrane’s warranty rules. The same building can reasonably use both, as the hybrid section above describes.
Structural Documentation AHJs and Roofers Both Expect
A complete flat-roof racking package that survives both building department plan check and roofing manufacturer warranty review typically includes:
- Site-specific wind load calculation under ASCE 7-22, showing interior, edge, and corner zone pressures.
- Roof dead load assessment confirming the structure can carry the ballast weight, or a mechanical attachment load path back to the roof framing.
- A ballast or fastener layout drawing keyed to the wind zones, not a uniform grid.
- Flashing details for any penetration, referencing the specific membrane manufacturer’s approved detail.
- A structural calculation package with a professional engineer’s stamp where the AHJ requires one.
Our STAAD Pro structural calculation reports and rooftop detailed engineering design deliverables are built around this exact document set, because a racking package missing any one of these five items is the most common reason a commercial rooftop permit comes back from plan check with comments.
How Heaven Designs Approaches Flat-Roof Racking Design
Our structural team starts every flat-roof racking project with the roof, not the racking catalog. We pull the existing roof structural drawings or run a field assessment to establish real dead load capacity, calculate site-specific ASCE 7-22 wind pressures by zone, and only then select ballast, mechanical attachment, or a hybrid layout. Every package we deliver ships with the stamped calculation, the zone-specific layout, and the flashing detail reference the roofing manufacturer needs to keep the warranty in force.
If you want to see the layout and calculation format before committing, our sample design package includes a rooftop structural example. For a project-specific quote or a roof that has an unusual load history, reach out to our team directly.
Key Takeaways
- Start with the roof, not the racking. Confirm dead load capacity and get the wind speed before choosing ballast or mechanical attachment.
- Design to the ASCE 7-22 zone map, not a single roof-wide number. Interior, edge, and corner zones carry meaningfully different uplift.
- Loop in the roofing manufacturer before finalizing the layout. A structurally sound design that voids the roof warranty is still a failed design.
FAQ
Can you mix ballasted and mechanically attached racking on the same roof?
Yes, and on large commercial roofs it is standard practice. Ballast handles the lower-pressure interior zone; mechanical attachment covers the higher-pressure edge and corner zones defined under ASCE 7-22 Section 29.4.4.
What roof slope counts as “flat” for racking design purposes?
Most racking manufacturers and structural codes treat roofs up to about 3 degrees as flat, though racking product lines and design guidance often extend “low-slope” treatment up to roughly 10 degrees before steep-slope rules apply.
Does ballasted racking void a roof warranty?
Not automatically. Most single-ply membrane manufacturers pre-approve non-penetrating ballasted systems as long as the ballast pads or trays meet their point-load and traffic requirements. Mechanically attached systems are the ones that need manufacturer-approved flashing to keep the warranty intact.
Why is ballasted racking not allowed in HVHZ?
Florida’s High-Velocity Hurricane Zone requires structural attachment resistant to extreme wind uplift that dead-weight ballast generally cannot match without adding more load than most roofs can carry. HVHZ jurisdictions require mechanically attached, often FM Global-rated, hardware instead.
How much does tilt angle actually affect flat-roof solar yield?
For most US latitudes, moving from a flat 0-degree mount to a 10-degree tilt typically improves annual yield by a modest single-digit percentage, though the exact figure depends on latitude and array orientation. The bigger yield driver on flat roofs is usually row spacing and shading management, not tilt alone.
Who runs the wind load calculation, the racking manufacturer or the structural engineer?
Racking manufacturers publish general engineering guidance and product load tables, but the site-specific ASCE 7-22 calculation, tied to the actual wind speed, exposure category, and building height, needs a structural engineer, and most AHJs require a professional engineer’s stamp on the final package.
Does adding ballast racking count as a roof dead load that requires a structural review?
Yes. Any added dead load, ballasted or not, should be checked against the original roof structural design or a current field assessment before installation. This is true even when the racking manufacturer’s spec sheet shows the system “fits” most roofs, because that guidance is generic, not site-specific.
What’s the difference between ASCE 7-16 and ASCE 7-22 for rooftop solar wind loads?
ASCE 7-22 added Section 29.4.4 with direct, panel-specific wind pressure coefficients for rooftop solar by zone. ASCE 7-16 required engineers to adapt general roof envelope provisions and manufacturer test data, which produced more variation between designers. See our full ASCE 7-22 wind load breakdown for the complete comparison.