Three concrete base types on a flat roof compared: precast ballast block, cast in place without a connection, and a base plate anchored into the structural slab

Three things get put on a concrete flat roof to hold a solar array down. Precast blocks carried up and set in place. Concrete cast on the roof itself. Base plates anchored into the deck. All three look solid once they are up there. What decides capacity is how the load actually reaches the structural concrete of the building.

Cast-in-place work can bond. But “we poured it and it stuck” is not proof that the base and the roof have become one structure, and it does not convert into a dependable uplift rating.

How to read this

Section 1 is the six claims you will hear in a sales meeting. Sections 2 to 10 are the mechanics, in order. Sections 11 to 13 are what to ask for and what evidence to accept, which is the part a commercial team can use directly.

Six claims that do not survive a load path check

These six share one fault. They treat “looks solid” as “verified resistance”. Each one is unpacked later in the article.

The claimWhy it failsAsk this instead
1. “Cast-in-place is stronger than precast, it doubles the capacity.”How the concrete arrives does not create a structural connection. Unverified interface bond cannot be counted as design resistance.What is the evidence for resistance at that interface, and which layer is it bonded to?
2. “The roof is concrete, just drill anchors into it.”The surface may be a protection layer, a screed or a membrane. An anchor set in a non-structural layer is not anchorage.Where is the structural slab in the build-up, how thick is it, and what is its as-built concrete?
3. “We used 42.5 cement, so the strength is 42.5 MPa.”42.5 is a cement strength class. C20, C25 and C30 are strength classes of the finished concrete. The two do not convert.What is the strength class of the base concrete, and are there cube test reports?
4. “Go from C25 to C30 and the ballast gets heavier.”Strength class does not change density. Same volume, same density, same self weight.What is the density, and what does the finished block actually weigh?
5. “Throw in a few bars and the uplift capacity goes up.”Bars inside the block change how the block itself performs. If they do not cross the interface and anchor on both sides, the connection to the roof is unchanged.Does the steel cross the interface, and is it anchored on both sides?
6. “The rack is bolted to the concrete block, so it is fixed to the building.”That proves the rack-to-block connection only. Block to building may still be nothing at all.Between the block and the structural slab, what carries the load?

First, which layer is that concrete surface?

Before capacity, settle what the new base is sitting on and drilling into.

A concrete roof is not a bare structural slab. Above the reinforced deck there may be insulation, waterproofing, a screed or a protection layer, and the order varies by project. Roofing system build-up drawings keep these layers separate for a reason. Sika, SikaShield bituminous roofing systems, pages 6 to 7.

If the new base bonds to a protection screed, wind uplift can lift the screed and the base together. If a waterproofing membrane sits in between, the old and new concrete never touch. If the anchor only reaches a levelling screed, it is not anchored into suitable structural concrete.

So the check runs along the whole path: module, rack, base or foot, the connection and every roof layer, structural slab. The roof also has to carry the added dead load and the point reactions. The 2021 IBC treats this explicitly, with the dead load of panels and their ballast in section 1606.4, and ballasted systems sent back to the deflection and ponding checks in section 1607.14.4.5. That is one jurisdiction’s code and it does not replace the rules where the project sits.

On projects in China, actions are taken from GB 50009 and concrete design follows GB/T 50010-2010 (2024 revision). Adding PV to an existing building also means checking the original design basis, the remaining capacity and the current condition, with a structural appraisal or survey where needed.

Section through a roof build-up showing a new concrete pedestal bonded to the surface layer above waterproofing, insulation and the structural slab
Figure 1. Bonding to the surface completes one link in the path, not the path. From the top: surface protection or finish, waterproofing membrane, insulation, structural concrete slab.

Method and connection are two different questions

The useful split is not precast against cast-in-place. It is whether a verified structural connection exists. A precast pedestal can be designed with anchorage. A block cast on the roof can still be pure ballast. Keep method and connection on separate axes and the false ranking disappears.

ClassUplift is resisted bySliding and overturning are resisted byWhat has to be checked
A. Pure ballast
no verified connection
Effective self weight of the systemContact friction and the stabilising moment from self weightBallast restraint, the real contact interface, geometry and layout, roof capacity
B. Designed connection to the slabThe designed connection, plus self weight correctly accounted forDesigned shear mechanism, and the moment from the tension and compression pairInterface, reinforcement or connectors, pedestal and slab verified together
C. Base plate anchored into structural concreteDesign resistance of the anchor group and the concrete around itAnchorage, bearing, and whichever connection model is adoptedEffective embedment, slab thickness, edge distance, group effects, base plate and waterproofing

Method alone does not set the class. With no further evidence, default like this.

What was builtDefaults toTo move it to B or C you need
Precast block set down, no connection to the roofAA designed connection, then the whole check redone as B or C
Cast on the roof, no verified structural connectionAInterface condition, connectors, and anchorage designed and verified on both sides
Pedestal cast with the slab on a new roof, continuous designed reinforcementBAlready B. Still check the interface, anchorage both sides, and the slab
Base plate on post-installed anchorsCAlready C. Still check embedment, edge distance, slab thickness, group effects and the waterproofing detail

The same split sits behind the wider ballasted against penetrating decision on flat roofs. Bolting the rack to the block proves the rack-to-block connection and nothing more. The reverse matters too: ballast that the rack does not restrain cannot have its full weight counted as resistance.

What “effective self weight” means here

W is the part of the weight that, at the location being checked, is restrained by a connection able to carry tension, and can therefore resist uplift at that point. Modules, rack and fixings qualify when that holds. A ballast block the rack does not restrain does not, and neither does weight from a neighbouring block that would only arrive through rack stiffness. Once bases are tied into an array, which weight participates at a given point depends on stiffness and connections. The total concrete on the roof is not the number.

Fix the uplift and the horizontal action before you talk about ballast

Ballast is not one number. It is a table that changes across the roof.

Wind uplift is not uniform. Corners and edges usually see suction well above the interior. Parapet height, building aspect ratio, and where the array sits on the roof all move the result. Size the whole roof off the interior and the corners are unsafe. Size it off the corners and the interior is obvious waste.

U and H are inputs, not constants to copy from a product sheet. They come from the loading code where the project is: GB 50009 in China, with application requirements for building PV in GB/T 51368-2019; ASCE/SEI 7-22 sections 29.4.3 and 29.4.4 for rooftop solar panels in North America; EN 1991-1-4:2005+A1:2010 in Europe. This article does not restate those methods. Our walk-through of how a wind load calculation is built and the changes ASCE 7-22 brought for PV cover that ground. One point stands: without zoned wind actions, every ballast calculation downstream is meaningless.

Roof plan with hatched corner zones, edge zones and a central interior zone marked for different uplift
Figure 2. Uplift differs by zone on one roof. Zone widths and pressure coefficients follow the code in force; the drawing is not to scale.

Cumulative movement under repeated action. Static equilibrium answers one question: does it slide this time. Real gusts repeat. An unanchored array can creep in small steps through many near-critical cycles and end up out of position, dragging cabling and waterproofing details with it. So a pure ballast scheme needs more than static equilibrium. It needs restraint details, array continuity once blocks are tied together, and a position check during operation. For high wind sites, US DOE FEMP lists mechanical attachment to the building structure among the corrective actions for wind hardening of rooftop arrays. That is a corrective action, not a blanket ban on ballast.

More uplift means less sliding resistance

The wind that lifts the base is also taking away the friction that stops it sliding.

Take a rigid body resting on the roof and model it as pure ballast, counting no bond and no anchorage. Effective downward weight W, upward wind action U, horizontal action H, coefficient of friction mu at the real contact surface. For a level roof that stays in compressive contact, the normal reaction is:

N = W − U

Limiting friction is about F = mu N, so sliding equilibrium alone requires:

H ≤ mu (W − U)

As the wind lifts, the force pressing the base onto the roof drops. Sliding margin can be gone well before the block leaves the surface, and once contact is lost the friction in this model stops contributing at all. Ignoring moments and safety factors, U = W is the idealised lift-off threshold, not a rated uplift capacity. Local lifting or overturning can happen sooner.

A flat roof is not a level roof

A flat roof still has drainage fall. With slope angle theta, the downslope component of the block’s weight adds to the horizontal action, and the sliding condition becomes:

H ≤ (W − U)(mu cos theta − sin theta)

At small angles that is close to an effective coefficient, mu_eff = mu − tan theta. Take mu = 0.50. A 2% drainage fall (tan theta = 0.02) brings the available coefficient down to about 0.48 in the downslope direction, roughly 4% off the margin. A 3 degree fall (tan theta = 0.052) brings it to about 0.45, roughly 10% off. Small numbers, but they stack on top of the uplift effect and the direction is fixed, always toward the drain. That is why it should not get waved away under the word “flat”. The same asymmetry works the other way: a wind push upslope sees mu + tan theta instead. Pitch has other consequences too, which we covered in how steep is too steep for rooftop solar.

Do not reach for a textbook “concrete on concrete” value for mu either. What is actually in contact may be a protection pad on a membrane. The combination has to be confirmed as built, block underside, slip or protection pad, membrane type and surface condition, and it has to distinguish dry from wet. The same pairing usually loses a lot of friction wet. With no test data for the actual combination, take the low end and leave margin.

Two free body diagrams of a ballast block, one on a level roof and one on a drainage slope, with weight, uplift, horizontal action, normal reaction and friction marked
Figure 3. The level roof simplification, then the same block with drainage fall included. Rotational equilibrium and the change in contact pressure still need separate checks.

A worked example: heavier than the uplift, still sliding

Take W = 1.50 kN, U = 1.00 kN, H = 0.40 kN, roof treated as level. Everything below is a teaching assumption. No load factors, no safety factors, and these are not Solaracks product test values. The calculation assumes compressive contact is maintained and it proves nothing about overturning. Two friction coefficients are shown to make the point.

CheckExpressionmu = 0.50mu = 0.35
Remaining normal force NW − U0.50 kN0.50 kN
Limiting friction Fmu N0.25 kN0.175 kN
Horizontal action Hassumed0.40 kN0.40 kN
Sliding shortfallH − F0.15 kN0.225 kN
Weight needed for sliding equilibriumU + (H / mu)1.80 kN2.14 kN
Extra effective weight requiredneeded minus W0.30 kN, about 31 kg, plus 20%0.64 kN, about 65 kg, plus 43%

Teaching example only. Unfactored, level roof, compressive contact assumed, overturning not checked.

The weight is larger than the uplift and the block still does not pass on sliding. Drop mu from 0.50 to 0.35 and the extra effective weight goes from 20% to 43%. That is the whole argument for getting mu from the real interface instead of habit. None of this is advice to add ballast on site. Safety margin, overturning and roof capacity are all still unchecked, and adding the drainage fall pushes the required weight up again.

Take the same block, switch it from precast to cast on the roof, keep weight, geometry and friction the same, and add no evidence for interface bond. The numbers do not move. The gain you may count is zero. That is not a claim that no bond exists physically. It is a refusal to treat unproven bond as design resistance.

Nor can you read that sliding shortfall straight into an anchor selection. Once a connection is added, uplift, shear, moment and load sharing all have to be reanalysed. Friction capacity and anchor capacity do not simply add up.

A worked example: three checks on one frame, and where it does not close

The example above isolates sliding. A real check runs three of them on the same frame, off the same set of inputs. This one is worked end to end, and it is worth reading for two reasons at once: it shows how the three checks are built, and it shows what happens when the inputs they are built on do not agree with each other.

What this example is and is not

This is a demonstration of the calculation process, not a design verdict. The arithmetic below has been rechecked, but the support reactions do not reconcile with the total load on the frame, so nothing here can be read as a foundation that has passed. The wind actions are example values tied to one site and one tributary area. They move with wind speed, roof zone and array layout, so they are here to show the method, not to be copied into a project. The checks use a stability ratio of 1.50 and a friction coefficient of 0.50 because those were the values supplied with the example. Neither has been confirmed as a code requirement for any particular project or as a measured value on any real interface. A partial factor limit state check is a different calculation and the code in force decides which applies. Everything is a pure ballast model: level roof, no drainage fall, no interface bond credited, no anchorage credited. Roof capacity is a separate check and is not covered here. These are not Solaracks product test values.

The frame

Two rows on a flat roof. A cylindrical front pedestal 500 mm in diameter and 500 mm high, a cylindrical rear pedestal 700 mm in diameter and the same height, 2900 mm clear between them. The array centroid sits 2155 mm from the upwind edge of the front pedestal and 1000 mm above the roof. Overturning is taken about that upwind edge.

Section through a two row ballasted solar frame showing front and rear concrete pedestals, the array centroid, wind uplift and horizontal actions, and the lever arms measured from the upwind edge of the front pedestal
Figure 4. Every lever arm in the overturning check is measured from one point, the upwind edge of the front pedestal. Move that point and the numbers change. Whether the drawing dimensions are clear spans or centre to centre has to be confirmed against the project drawings before these arms are used.

Inputs

Pedestal self weight comes from the geometry and an assumed density of 2400 kg/m3, with g taken as 9.8 m/s2. Using 3.14 for pi, the front pedestal is 3.14 × 0.252 × 0.5 = 0.0981 m3, so 235.5 kg and 2.31 kN. The rear pedestal is 3.14 × 0.352 × 0.5 = 0.1923 m3, so 461.6 kg and 4.52 kN. In the source these figures came from, the rear pedestal was carried through the division as 4.23 kN while the geometry and density given produce 4.52 kN. Recomputing self weight from the stated dimensions rather than copying it forward is the first thing worth doing to any example.

InputSymbolValueWhere it comes from
Concrete strength class and densityC25, rho2400 kg/m3Assumed. Verify against the mix and weigh the finished units
Front pedestal self weightG12.31 kNGeometry times density
Rear pedestal self weightG24.52 kNGeometry times density
ModulesGmod1.10 kNModule datasheet times count
RackingGrack0.26 kNBill of materials
Wind uplift on the frameFy5.13 kNSite wind calculation, zoned. Example value
Wind horizontal action on the frameFx0.905 kNSame calculation. Example value
Uplift reaction, front supportN11.30 kNFrame model output, as supplied. Load case and tributary area unconfirmed
Uplift reaction, rear supportN21.54 kNSame model, same open question
Friction coefficientmu0.50Assumed. Needs a test on the real pairing, dry and wet
Stability ratio usedK1.50Supplied with the example. Not confirmed as a code value for any project

Check 1: uplift, support by support

Each pedestal has to hold down its own support against the uplift reaction at that support. Only pedestal self weight is counted here, on the reading that the weight of the modules and the racking is already inside the reaction the model reports. That reading is an assumption about the model, and the next check is what tests it.

Front: 2.31 / 1.30 = 1.78
Rear: 4.52 / 1.54 = 2.94

Both ratios are above 1.50, and the two margins are very uneven. The rear pedestal is 96% heavier than the front one while its uplift reaction is only 18% higher, so on this check alone it carries far more margin than it needs. Check 3 explains what the rear mass is actually there for.

The check that comes before the three: does the vertical force close?

Before any ratio means anything, the reactions it uses have to be consistent with the total load on the same calculation unit. If the 5.13 kN uplift and the 1.36 kN of module and racking dead load belong to the same load case, and if these two supports are the only vertical supports with no other vertical actions, then the net uplift the structure hands to the two pedestals has to be their difference.

Fy − (Gmod + Grack) = 5.13 − 1.36 = 3.77 kN
N1 + N2 = 1.30 + 1.54 = 2.84 kN
Difference: 0.93 kN

It does not close. A quarter of the net uplift is unaccounted for between the two ways of writing the same quantity. The difference could come from a different load case behind the reactions, from a tributary area that is not the one assumed, from a vertical action left out of the total, or from a sign convention on the reactions that is being read the wrong way round. The information available does not settle which, and that matters more than the size of the gap.

The wrong response is to split 0.93 kN across the two pedestals and carry on. The right one is to go back to the frame model and confirm the global axis directions, every support in the model, and the loaded extent the reactions were taken over, before any of the three ratios below is treated as a result.

Check 2: sliding, whole frame

Sliding is checked on the frame as a whole, because the two pedestals are tied together by the racking. Uplift is subtracted from gravity before friction is applied.

Fres = mu (Gmod + Grack + G1 + G2 − Fy)
= 0.50 × (1.10 + 0.26 + 2.31 + 4.52 − 5.13) = 0.50 × 3.06 = 1.53 kN
1.53 / 0.905 = 1.69

This is the section above, with real numbers in it. Gravity on this frame is 8.19 kN. Uplift removes 5.13 kN of it before mu ever gets applied, so the friction is working on 3.06 kN, not on 8.19 kN. Sixty three percent of the weight has stopped counting. The 1.69 also depends on the two pedestals and the racking genuinely sharing load as one unit. A total friction surplus does not prove that one pedestal on its own will not slide, and the coefficient behind it is still assumed.

Check 3: overturning, about the upwind edge

Moments are taken about the upwind edge of the front pedestal. Every lever arm below is measured from that one point, and the rear arm of 3.750 m is built as 0.500 + 2.900 + 0.350, which treats the 2900 mm as a clear span between the two pedestals.

Mo = Fx × 1.000 + Fy × 2.155 = 0.905 + 11.055 = 11.96 kN·m
Mr = (Gmod + Grack) × 2.155 + G1 × 0.250 + G2 × 3.750
= 2.931 + 0.578 + 16.950 = 20.46 kN·m
20.46 / 11.96 = 1.71

The rear pedestal contributes 16.95 of the 20.46 kN·m, about 83% of the resisting moment, because its lever arm is 3.750 m against the front pedestal’s 0.250 m. That is the fifteen to one ratio that decides where ballast is worth putting. The 1.71 treats the racking and both pedestals as one body rotating about one edge, which still needs connection stiffness, local lift off at the front and bearing pressure under the base to be verified separately.

What this example does and does not establish

CheckDemandResistanceRatioStatus
Vertical force closure3.77 kN net uplift2.84 kN in reactions0.93 kN gapDoes not close. Resolve before the rest is used
Uplift, front support1.30 kN2.31 kN1.78Above 1.50 on the reactions as supplied
Uplift, rear support1.54 kN4.52 kN2.94Above 1.50 on the reactions as supplied
Sliding, whole frame0.905 kN1.53 kN1.69Lowest of the three ratios. Depends on an assumed mu
Overturning, upwind edge11.96 kN·m20.46 kN·m1.71Above 1.50 for one wind direction only

Example values. Level roof, pure ballast, one wind direction, roof capacity not included. The status column reports what the arithmetic gives on the inputs as supplied. It is not a design verdict.

The honest summary of this example is that the calculation process is assembled and the engineering inputs are still under review. Three ratios came out above 1.50 and the fourth line in the table is the reason none of them can be reported as a pass. Where this gets dangerous is in a document that quotes the 2.94 and stops there.

Four things this example is worth reading for.

The force closure check comes first, and it is the one people skip. Three ratios above 1.50 look like a result. They are only a result once the reactions they use agree with the total load on the same calculation unit, and here they are 0.93 kN apart. A reviewer who runs the closure check first spends five minutes. A reviewer who runs it last has already written the report.

The lowest ratio is not the one the uplift numbers point at. Uplift comes out at 1.78 and 2.94, overturning at 1.71, sliding at 1.69. Nothing about the uplift result predicted that sliding would be the tightest of the three. This is why all three get run rather than the one that sounds most dangerous, and why the lowest margin is the number that describes the scheme.

Where the ballast sits matters more than how much there is. One extra kilonewton on the rear pedestal adds 3.75 kN·m of resisting moment. The same kilonewton on the front pedestal adds 0.25 kN·m. For overturning, mass at the front is worth one fifteenth of mass at the back. For sliding it makes no difference at all, since only the total counts.

The friction coefficient is doing a lot of quiet work. Drop mu from 0.50 to 0.35, change nothing else, and the sliding ratio falls from 1.69 to 1.18. An assumed mu is the single largest unverified quantity in this calculation, which is why the article keeps insisting it comes from the real interface rather than from habit. One wind direction is also half the work: wind from the other side swaps the lever arms, so the 3.750 m arm becomes the short one and the resisting moment is a different number.

Can cast-in-place concrete glue itself down?

Bond can form. For bond to become design resistance you need three things in place: interface condition, failure mode, and a verification method.

New concrete can bond to sound old concrete, and a prepared rough interface can develop mechanical interlock. Contamination, laitance, a weak surface layer, workmanship and curing all move the outcome. FHWA guidance on thin concrete overlays is explicit about the chain from surface preparation to bond to shrinkage to debonding. Those material mechanisms transfer. Its pavement resurfacing procedures do not hand you an uplift rating for a roof pedestal.

The sharper point: transferring shear under compression is not the same as reliably carrying direct tension or edge peeling. An overturning moment can open one side of the base first, and the whole underside stops bearing evenly. Shrinkage, temperature movement and the associated repeated loading can also change the interface you started with.

EOTA TR 066 shows how a designed connection between concrete layers separates interface condition, connector and load type. Its scope is narrow: post-installed shear connection between two concrete layers, using products assessed under EAD 332347, at interfaces that transfer shear without significant transverse bending. It is not a wind design method for an arbitrary roof pedestal.

“Cast-in-place always doubles the capacity” has no general basis. Neither does assuming a bond strength and multiplying it by the whole footprint to get an allowable uplift. Effective bonded area, stress distribution, failure location, durability and the design method all need evidence.

Two interface details side by side, one with no connector where the new concrete lifts at one edge, one with designed bars crossing the interface and anchored above and below
Figure 5. An interface with no connector can open on one side under overturning. Designed bars crossing the interface have to be anchored properly on both sides. Neither drawing is a reinforcement or waterproofing detail.

Anchors change the load path, but drilled in is not fixed

Anchors hand the action to the existing structure. So the anchor, the fixture and the original slab all get verified together.

Anchoring a base into suitable structural concrete does create a designed connection able to carry tension and shear. Capacity is not set by bolt diameter. Steel failure, pull-out or bond failure, concrete cone failure, splitting and concrete edge failure all compete to govern. Slab thickness, embedment, edge distance and spacing change which one wins. Hilti, Design of fastenings in concrete, covers the full failure mode set under EN 1992-4.

A strong enough anchor does not mean the existing deck, the base plate and the rack connection are strong enough. Setting anchors into a new pedestal does not mean the pedestal is connected to the original slab. Post-installed rebar designed as reinforcement anchorage or as a lap splice is a different design problem from the same bar calculated as an anchor. Pick the concrete design framework that applies and stay inside it. ACI CODE-318-25 keeps anchoring to concrete in its Chapter 17, and note the edition question: ACI 318-19 is still the edition referenced by the 2021 and 2024 IBC.

On projects in China, post-installed fastenings including anchors and post-installed rebar follow JGJ 145-2013, and strengthening of existing concrete structures follows GB 50367-2013. In Europe, EN 1992-4:2018 applies together with the assessment documents for the chosen anchor system.

Anchoring can cut the ballast needed for stability. It also hands the action to the original structure and introduces waterproofing details that have to be coordinated. Before drilling, locate existing reinforcement, prestressing and services, and install to the valid assessment and instructions for the system chosen.

Cement strength class and concrete strength class are different numbers

42.5 for cement and C30 for concrete are two different systems. They do not convert and they do not stand in for each other.

A roof base is normally concrete made from cement, aggregate and water. Cement is the binder. Cement strength classes such as 42.5 and 52.5 are not the strength classes of the finished concrete such as C20, C25 and C30. “We used 42.5 cement” cannot be written up as “the base concrete is 42.5 MPa”, and it certainly cannot be turned into an uplift capacity. Cement has to meet its product standard, GB 175-2023 in China. Concrete needs a mix design, placing and curing, and strength testing.

In the Chinese grade system, C20, C25 and C30 correspond to characteristic cube compressive strengths of 20, 25 and 30 MPa. Routine assessment uses 150 mm cubes, made and cured to the standard method, tested at 28 days, with the test method in GB/T 50081-2019 and the grade definition in GB/T 50010. These are neither design compressive strengths you can put straight into a calculation, nor the bond strength of an interface between old and new concrete.

Export projects have to state which system they are using. In the European system, C25/30 carries two numbers: 25 MPa is the characteristic cylinder strength, 30 MPa the characteristic cube strength. Both systems use a 150 mm cube, so the European C25/30 cube value of 30 MPa lines up with the Chinese C30, not C25. Writing C25/30 as C25 drops a grade. Drawings and technical documents should spell out the system and the full designation.

Strength class selection has to satisfy structural, durability and anchorage requirements at the same time. GB 55008-2021 clause 2.0.2 sets minimum classes for a 50 year design working life, not below C20 for plain concrete members and not below C25 for reinforced concrete members, with higher requirements for longer working lives and for the special conditions the clause lists. That is not a universal selection table for PV ballast products, and it is not a licence to shorten the working life in order to drop a grade. Sun, rain, coastal chlorides and freeze thaw can all push the requirement higher.

Raising concrete strength can improve bearing in the block and some anchor failure modes. It does not add weight to a block of the same volume, and it does not convert unverified roof bond into a designed connection. Where anchors sit in an old deck, verify the as-built concrete of that deck. The C30 of a new pedestal above it is not a substitute.

Ballast is decided by density and finished mass

Density and finished mass set the ballast. Strength class does not.

Strength class and density class do not convert into each other. Classification and density conventions for normal weight concrete, lightweight aggregate concrete and other lightweight materials vary by standard. For ballast, state the material category, the density value and the moisture state it was measured in, then check the finished mass. For a sense of magnitude, GB 50009 Appendix A lists self weights for common materials, with plain concrete at 22.0 to 24.0 kN/m3 and reinforced concrete at 24.0 to 25.0 kN/m3. International references put normal weight concrete at about 2240 to 2400 kg/m3. NRMCA CIP 36, page 1, which uses that range as the contrast case for structural lightweight concrete. Both help with magnitude. Neither is a guaranteed value for any given supplier’s product.

For a homogeneous solid block with no voids, bars or inserts, with density rho in kg/m3, volume V in m3, mass m in kg, and g = 9.8 m/s2, the self weight W in kN is:

m = rho V
W = rho V g / 1000

What follows shows only the effect of density. Assume a solid block 400 by 400 by 400 mm, volume 0.064 m3. It is not a recommended base size.

Assumed densityBlock massBlock self weight
2400 kg/m3153.6 kgabout 1.51 kN
1800 kg/m3115.2 kgabout 1.13 kN

Same shape, 25% less self weight on the second block. It loads the roof less, and it also brings less weight to resist uplift. Sliding has to go back through W − U rather than scale by the same ratio. Push the strength from C25 to C30 and, with volume and density unchanged, this result does not move at all.

A real calculation deducts voids and recesses, accounts properly for bars and inserts, and can simply weigh finished units. Wind stability needs a justified lower bound on effective weight. The roof capacity check needs the unfavourable weight and the governing load combination. You do not get to pick one favourable assumption and use it for both. Fresh, dry and in-service moisture states also differ. Do not take the wet weight at casting as a long term guaranteed ballast without verifying it.

When reinforcement is actually required

Whether to reinforce depends on the internal actions and the service requirements of the base. Precast against cast-in-place does not answer it, and neither does block weight.

Reinforcing bar, rebar for short, carries tension the concrete cannot. CRSI puts the reason plainly: concrete is weak in tension while steel is strong in both tension and compression. Crack width control is a separate design requirement, handled in ACI 318-25 Chapter 24 or GB/T 50010 depending on which framework applies.

Use the conditions below to screen whether reinforcement design is needed. “Needs design” can mean adding steel. It can equally be solved by changing block dimensions, support arrangement, or the connection scheme.

ConditionReinforcement judgementThe problem being solved
Compact, reliably supported, acting mainly as a standalone ballast; service and handling cases both verifiedPlain concrete can go without structural reinforcement where it meets the applicable strength, integrity and detailing requirementsEnough weight is not enough. The block must not fail first
Long or thin block, locally unsupported underside, concentrated or eccentric rack reactionsCheck bending, tension and shear. Where plain concrete does not pass, design structural reinforcement or change the schemeResisting internal actions and keeping the block intact
Significant anchor tension or shear, or restricted edge distance, spacing or block sizeCheck cone, edge, splitting and combined tension shear. Design dedicated anchor reinforcement where requiredGetting a local anchor force into the block reliably
Restrained shrinkage, significant temperature effects, or cracking that would affect anchorage or durabilityAssess shrinkage, temperature and detailing reinforcement together with joints, mix design and curingControlling crack width and distribution. It cannot guarantee no cracking
Precast units that get lifted, turned or carried across supportsVerify the construction stage separately. Add handling reinforcement and local steel at lifting points where requiredPassing in service does not mean passing during lifting
Pedestal intended to connect to the structural roof slab and carry uplift and overturningDesign the pedestal and the complete connection. Set structural steel, the connectors crossing the interface, and anchorage on both sidesGetting the action into the original structure, not just making the pedestal stronger

Three different things are in play. Structural reinforcement carries calculated internal actions. Shrinkage, temperature and detailing reinforcement controls cracking and keeps the section intact. Dedicated anchor reinforcement and interface connectors have to match the real load path on top of that. A general mesh does not automatically count as anchor reinforcement in tension, and bars inside a block do not automatically count as a connection to the slab. Hilti, Profis Engineering supplementary reinforcement design, states the distinction: supplementary reinforcement takes the load after concrete breakout occurs.

Having anchors does not always require extra reinforcement. Check the design method that applies and the assessment conditions for that anchor product. EOTA EAD 330232-02-0601 clause 1.2.1 covers compacted reinforced or unreinforced normal weight concrete in strength classes C12/15 to C90/105, but what you may actually do still depends on the product assessment and the design check. Unreinforced concrete is also not the same condition as uncracked concrete. Judge them separately. And in the other direction, throwing in a few bars or some fibre does not repair an anchorage design that does not pass.

A reinforcement scheme has to state grade, diameter, number or spacing, position, anchorage or laps, cover and construction requirements. Roof environments make durability checks particularly worth doing, and bars cannot just be laid against the formwork. Without block dimensions, support reactions, anchor layout, slab information and environmental conditions, nobody can hand over a universal “so many bars of this size” specification.

For pure ballast blocks, reinforcement first changes how the block itself performs and how it behaves after cracking. With the same real weight, geometry and contact conditions, and no connection to the roof, overall uplift and sliding still follow the same ballast equilibrium. To use steel to get action into the original structure, connectors have to cross the old to new interface by design and be effectively anchored on both sides. Reinforcement inside the block does not change the roof connection.

What evidence each resistance needs

This article keeps saying “have a basis for it”. Here is what a basis looks like. Every resistance should point at a document someone can pull, or a test someone can repeat. If it cannot, do not count it.

ResistanceSet byEvidence that countsNot a substitute
Effective self weightAs-built material density and finished geometryMix design and density report, volume net of voids, sample weighing recordsDrawing volume times a handbook density
Sliding frictionThe real contact pairing and its conditionFriction test report for the same material pairing, dry and wet, taking the low valueA habitual “concrete on concrete” number
Interface bondInterface preparation, cleanliness, curing and long term stateCalculation to an applicable design method with the matching product assessment, plus site testing where neededAssuming a bond strength and multiplying by footprint
Anchor tension and shearProduct assessment, as-built concrete, embedment, edge distance, slab thicknessAssessment document and design check, site pull tests and torque recordsEstimating from bolt diameter or steel grade
Capacity of the block itselfInternal actions, reinforcement, construction and lifting casesReinforcement drawing and calculation, cube strength report, separate lifting check“There is rebar in it, so it is fine”
Roof capacityOriginal design basis and current conditionOriginal drawings and design notes, structural appraisal or survey report where neededLooking at the building and calling it solid

Check three times, not once. These get verified at three points. At proposal or tender, check the design basis is complete. At delivery, check material and product records. At completion, check anchor pull test and torque records, ballast counts and positions, and waterproofing sign-off. Anything missing goes into the handover documents as missing, rather than being assumed acceptable. Our note on how to read a load calculation report covers the same discipline on the wind side.

Compare whole systems, not single numbers

Uplift, sliding and overturning are three independent checks and none of them stands in for another. Uplift asks whether it separates. Sliding asks whether it moves sideways. Overturning asks whether the applied moment balances against the stabilising moment and the designed connection.

Widening a base at constant weight can improve the stability lever arm and lower average contact pressure. It does not automatically add uplift resistance from self weight, and it does not automatically add sliding resistance in an idealised friction model.

Then there are the checks that get skipped: local bearing, slab bending and, where relevant, local shear or punching, compression of insulation and other roof layers, drainage, and concentrated material stacking during construction. Waterproofing is part of the scheme, not an afterthought. Terminations at anchor penetrations, protection or slip pads between blocks and membrane, long term abrasion from block corners, and the effect of dust and standing water on interface friction all belong in the design stage, not on site.

For an EPC or an owner, the most useful question is short. What is the basis for each resistance, and where does that force go next?

What to ask the client for

Get these before fixing a scheme. The bracket says what to look at once you have it.

Ask the client or designer forWhat to look at
Roof build-up and structural drawingsWhere the structural slab sits and how thick it is, material and order of each layer, whether the original design load leaves any margin
Site wind design basisCode and edition used, basic wind pressure or speed, zone and pressure coefficient values adopted
Array layout and support reactionsUplift, horizontal force and moment at each support point, and whether they are already differentiated by roof zone
Ballast interface evidence, or anchorage designSource of the friction coefficient and the moisture condition it covers, or the anchor assessment document and design calculation
Concrete strength and density or finished mass recordsStrength class and cube reports, the moisture state density was measured in, weighing records for finished units
Reinforcement drawings and acceptance requirementsGrade, diameter, spacing, cover, lifting cases, curing and acceptance criteria
Matching waterproofing detailsTerminations at penetrations, compatibility of protection pads with the membrane, and who carries the warranty

Terms that get mixed up

These are the pairs that cause the most trouble on export projects, where a word gets translated correctly and understood wrongly.

TermWhat it does not mean
Ballast, ballast blockResists by weight. It does not imply a structural connection exists
PrecastNot the same statement as “no connection”
Cast-in-placeNot the same statement as “structurally connected”
Post-installed anchorNeeds a product assessment document and a design calculation, not just a drill
Post-installed rebarDesigned as reinforcement anchorage or a lap. That is a different problem from calculating it as an anchor
Sliding resistanceOne of three independent checks, alongside uplift and overturning
Coefficient of frictionMeaningless without naming the material pairing and the moisture state
Effective embedment depthNot the total length of the bolt
Edge distance and spacingNot detailing preferences. They decide which anchor failure mode governs
Nominal or shrinkage and temperature reinforcementCannot be counted automatically as structural reinforcement
Strength class C30A cube value. European C25/30 has a cube value of 30 MPa, so it maps to C30, not C25
Cement strength class 42.5A cement figure. It is not the strength of the concrete
Corner, edge and interior zonesNot a formality. Uplift differs enough that ballast has to be set by zone
ParapetNot neutral. Its height changes the wind pressure distribution on the roof

References

[1] Sika, SikaShield bituminous roofing systems, roof build-up drawings, pages 6 to 7.
[2] International Code Council, 2021 International Building Code, sections 1606.4 and 1607.14.4.5. codes.iccsafe.org
[3] Federal Highway Administration, Thin Concrete Overlays, FHWA-HIF-17-012, October 2017. fhwa.dot.gov
[4] EOTA, Technical Report TR 066, Design and requirements for construction works of post-installed shear connection for two concrete layers, April 2019 as amended November 2020, sections 1 to 4. eota.eu
[5] Hilti, Design of Fastenings in Concrete: Understanding and Integrating EN 1992-4, 2019, anchor failure modes in tension and shear.
[6] ACI CODE-318-25, 2025, Chapter 17, Anchoring to Concrete. Note that ACI 318-19 remains the edition referenced by the 2021 and 2024 IBC. concrete.org
[7] EOTA, EAD 330232-02-0601, Mechanical fasteners for use in concrete, September 2024, clause 1.2.1. eota.eu
[8] Hilti, Profis Engineering, supplementary reinforcement design.
[9] CRSI, Reinforcing steel basics. crsi.org
[10] NRMCA, CIP 36, Structural Lightweight Concrete, page 1. nrmca.org
[11] The Concrete Centre, How to Design Concrete Structures using Eurocode 2, compressive strength notation. concretecentre.com
[12] US Department of Energy, FEMP, Severe Weather Resilience in Solar Photovoltaic System Design. energy.gov
[13] GB 175-2023, Common Portland Cement. openstd.samr.gov.cn
[14] GB 55008-2021, General Code for Concrete Structures, clause 2.0.2.
[15] GB 50009-2012, Load Code for the Design of Building Structures, Appendix A.
[16] GB/T 50010-2010, 2024 revision, Standard for Design of Concrete Structures, clause 4.1.1.
[17] GB/T 50081-2019, Standard for Test Methods of Concrete Physical and Mechanical Properties.
[18] GB/T 51368-2019, Standard for Application of Building Photovoltaic Systems.
[19] JGJ 145-2013, Technical Specification for Post-installed Fastenings in Concrete Structures.
[20] GB 50367-2013, Code for Design of Strengthening Concrete Structures.
[21] ASCE/SEI 7-22, Minimum Design Loads and Associated Criteria for Buildings and Other Structures, sections 29.4.3 and 29.4.4. asce.org
[22] EN 1991-1-4:2005+A1:2010, wind actions, and EN 1992-4:2018, design of fastenings for use in concrete. eurocodes.jrc.ec.europa.eu

Scope and disclaimer

This article explains load transfer principles and the checks that go with them. It is not a design document, a construction drawing, or a statement of product capacity. Load values, connection design, reinforcement and waterproofing details for a specific project must be produced by a qualified designer to the codes in force where the project sits, and the reviewed design documents govern. The first worked example applies no load factors and no safety factors. The second applies a stability ratio of 1.50 to each check, which is one convention among several and not the only one in use, and it is presented as a demonstration of the calculation process whose inputs remain under review, not as a design that has passed. Neither is a Solaracks product test value.

Working on a concrete flat roof project and want a second pair of eyes on the load path? Bring the drawings and the wind basis and talk to the engineering team at solaracks.com/contact-us.

Be supported.

Get an engineered mounting quote for your project.

Share drawings, module layout, site location, wind load, snow load and corrosion environment. Solaracks will recommend the system, material, layout and packing approach.

Request a quote
×

Request this document

Enter your company and contact details. We review each request and email you a download link once it is approved.

Requested document Requested document

Close