CON-315 · Lesson 6 of 12 · 24 min
Tolerances and tolerance stacking
Nothing is built exactly where the drawings say. Concrete forms move under load, steel members are a fraction of an inch longer or shorter than nominal, wood shrinks, instruments have limits and people make small errors. Tolerances define how much variation is acceptable. A field engineer needs to know the tolerances that apply to each system, check work against them, and, most importantly, understand how tolerances from different trades combine where their work meets. Many of the most frustrating problems on site are not errors at all: each trade is within its own tolerance, but together they do not fit. This lesson covers where tolerances come from, how to check against them, how to combine them, and how to manage the interfaces where they collide.
Where tolerances come from
Tolerances are set by the contract documents, which usually adopt industry standards and sometimes add project-specific values. A field engineer should know which documents apply to the work in hand.
| System | Typical reference in the US | Examples of what it covers |
|---|---|---|
| Cast-in-place concrete | ACI 117, Specification for Tolerances for Concrete Construction and Materials (the 2010 edition is still listed as current) | Position, plumb, level, cross-section, openings, embedded items, slab flatness |
| Structural steel | AISC Code of Standard Practice | Mill and fabrication tolerances, anchor rods, erection plumbness and alignment |
| Wood framing | Industry guidelines and the project specification | Plumb, level and flatness of walls and floors |
| Masonry | TMS 602 | Position, plumb, alignment of courses |
| Curtain wall and windows | Manufacturer data and the specification | Anchor adjustment, installation tolerances |
| Floors | ACI 117 and ASTM E1155 F-numbers in the specification | Flatness and levelness of slabs |
| Finishes | Specification sections and industry standards | Drywall flatness, tile substrate flatness, flooring |
Fact check, October 2026: CSA A23.1:24, published with CSA A23.2:24, is the current Canadian concrete materials and methods standard, and standards databases still list ACI 117-10 as the current edition of the ACI tolerance specification. Specifications sometimes cite older editions, and the edition cited is the one that applies to the contract.
Tolerances in standards are defaults. Designers can and should tighten them where a function demands it, such as an elevator shaft, a slab under a warehouse racking system or a cast-in anchor for a curtain wall. They can also relax them where precision has no value. Asking for unnecessarily tight tolerances raises cost, because tighter work takes more time, better formwork and more checking.
Kinds of tolerance
Tolerances describe different things, and confusing them leads to disputes.
- Position: how far an element may be from its specified location, measured from gridlines or control.
- Plumb and level: how far an element may deviate from vertical or horizontal, often as a ratio or an amount per height or length.
- Size or cross-section: how much a dimension of the element itself may vary.
- Alignment or relative tolerance: how much adjacent elements may vary relative to each other, such as the step between two adjoining panels or the offset between slab edges on consecutive floors.
- Flatness and levelness: how smooth and how close to the design plane a surface is.
A wall can be in the right position at its base, plumb within tolerance and the right thickness, yet still clash with a window frame because the frame needs a flatter surface than the wall tolerance allows. Each tolerance controls one property; the field engineer must check the ones that matter for the next trade.
Measuring against tolerances
Checking tolerances requires measurements that are much more precise than the tolerance itself. A common rule of thumb in measurement practice is that the measuring method should be several times more precise than the tolerance being checked; otherwise, the uncertainty in the measurement swamps the result. Checking an anchor bolt tolerance of a small fraction of an inch with a tape held by hand from a gridline 100 feet away is not a valid check. Checking it with a well-set-up total station from nearby control is.
The field engineer must also decide where and how often to measure. Standards often say how a tolerance is to be measured, for example over a stated length or at stated locations. Floor flatness has its own test method. For other items, the field engineer designs a sampling plan: every anchor bolt group, every column, a slab edge reading every few feet, and more readings where problems are likely or consequences are high.
Floor flatness and levelness
Floors are a special case because their tolerances are measured statistically. The F-number system describes flatness (FF), which captures waviness over short distances, and levelness (FL), which captures how closely the floor follows the design plane over longer distances. Higher numbers mean flatter or more level floors. Specifications state overall values for the whole floor and minimum local values for each area. Typical specifications call for lower values in back-of-house areas and much higher values where floors will carry narrow-aisle warehouse equipment.
In North America, F-numbers are usually measured following ASTM E1155. Readings are taken at regular intervals along survey lines, the curvature between successive readings and the elevation differences over a longer distance are calculated, and their statistics give FF and FL. The example uses a simplified version of that method on one survey line of the Larkspur Commons retail slab, with simulated readings.
# Floor flatness and levelness numbers from one survey line (simplified ASTM E1155 approach, inches)
import random, statistics
random.seed(42)
# Elevations every 12 inches along a 100 ft line on the level 1 retail slab (simulated readings)
elev, z = [], 0.0
for i in range(101):
z += random.gauss(0, 0.035) # local waviness
elev.append(z - 0.002 * i) # slight overall slope
q = [elev[i + 2] - 2 * elev[i + 1] + elev[i] for i in range(len(elev) - 2)] # curvature over 24 inches
d10 = [elev[i + 10] - elev[i] for i in range(len(elev) - 10)] # 10 ft elevation differences
FF = 4.57 / (3 * statistics.stdev(q) + abs(statistics.mean(q)))
FL = 12.5 / (3 * statistics.stdev(d10) + abs(statistics.mean(d10)))
print(f"Readings: {len(elev)}, curvature samples: {len(q)}, 10 ft samples: {len(d10)}")
print(f"FF (flatness) = {FF:.0f}, FL (levelness) = {FL:.0f}")
spec_FF, spec_FL = 35, 25
print("Meets the specified overall values" if FF >= spec_FF and FL >= spec_FL else
f"Below the specified overall values FF {spec_FF} / FL {spec_FL}: report and review the remedy")Readings: 101, curvature samples: 99, 10 ft samples: 91 FF (flatness) = 36, FL (levelness) = 44 Meets the specified overall values
The line gives FF 36 and FL about 43, which meets the specified overall values of FF 35 and FL 25 for the retail floor. A real test uses many lines across each test section, the exact sampling and calculation rules of the standard, and is normally done by a testing agency within a short time after finishing, because a slab measured weeks later may have curled or deflected. Flatness depends on the finishing process; levelness depends on the forms, screeds and the structure, which is why elevated slabs often achieve much lower FL values than slabs on grade.
For the field engineer, the practical lessons are to confirm the specified F-numbers before the pour, make sure the forms, screeds and finishing method can achieve them, and arrange testing promptly. If a floor fails, the remedies, such as grinding, self-leveling toppings or acceptance with a credit, are decided by the design team and the owner under the contract.
How tolerances combine
Where several elements are assembled, their variations combine. Consider the window wall on the Larkspur Commons podium. Each bracket is attached to a cast-in anchor on the slab edge. The bracket's final position depends on the position of the slab edge, the position of the anchor on the edge, the fabrication of the bracket, its installation and the layout of the gridline it is measured from. The cladding bracket has slotted holes that allow a certain range of adjustment. The question is whether the combined variation will fit within that range.
There are two classic ways to combine tolerances. The worst-case method simply adds them, assuming every element is at its limit in the same direction. It guarantees fit but is usually very pessimistic. The root-sum-square method adds the squares and takes the square root, which is appropriate when the variations are independent and random, because it is unlikely that all of them will be at their extremes in the same direction. A Monte Carlo simulation, which samples each variation many times, gives the same insight and can handle more complicated situations.
# Does the slab edge plus the anchor plus the bracket fit the cladding adjustment range? (inches)
import random, statistics, math
random.seed(315)
parts = { # source of variation: tolerance (+/- inches)
"Slab edge position (concrete tolerance)": 0.75,
"Cast-in anchor position on the edge": 0.25,
"Cladding bracket fabrication": 0.08,
"Bracket installation": 0.125,
"Gridline layout on the floor": 0.125,
}
adjust = 0.75 # cladding bracket slot allows +/- 3/4 inch in and out
worst = sum(parts.values())
rss = math.sqrt(sum(t * t for t in parts.values()))
print(f"Worst case stack: +/-{worst:.2f} in root-sum-square: +/-{rss:.2f} in cladding allows +/-{adjust} in")
# Monte Carlo: treat each tolerance as about 3 standard deviations of a normal distribution
n = 100_000
outside = 0
for _ in range(n):
total = sum(random.gauss(0, t / 3) for t in parts.values())
if abs(total) > adjust:
outside += 1
print(f"Simulated share of brackets outside the adjustment range: {outside / n:.2%}")Worst case stack: +/-1.33 in root-sum-square: +/-0.81 in cladding allows +/-0.75 in Simulated share of brackets outside the adjustment range: 0.56%
The worst-case stack is ±1.33 inches, far beyond the bracket's ±3/4 inch adjustment. The root-sum-square value is ±0.81 inch, just beyond it, and the simulation suggests that about half a percent of brackets would fall outside the range. With about 400 brackets on the podium, that is two or three brackets needing special attention. The slab edge tolerance dominates the stack. Mei raises this with the design team and the cladding subcontractor before the podium slabs are poured. The options are to tighten the slab edge tolerance for the podium, which raises formwork cost slightly, to specify brackets with more adjustment, or to accept that a few brackets will need modification. They choose a tighter slab edge tolerance at the cladding zones and a survey of every slab edge so that the cladding contractor can plan its brackets.
The root-sum-square method has limits. It assumes the variations are independent and centered on zero. If a formwork crew consistently sets edges a little outward, the variation is biased and adds directly; if two variations come from the same source, they are not independent. Field measurements tell the field engineer whether the assumptions hold, which is another reason to survey early and often.
Tolerance compatibility at interfaces
Most tolerance problems arise where two trades meet and each assumes the other will be exact. Concrete tolerances are measured in centimeters or fractions of an inch; aluminum framing and glass are fabricated to a millimeter or two; elevator rails need a shaft that is plumb within narrow limits; tile needs a substrate flatter than a typical concrete slab provides. The industry calls this tolerance compatibility, and the designer is primarily responsible for it. In practice, the field engineer is often the first to see the problem.
| Interface | Typical conflict | Common solutions |
|---|---|---|
| Concrete slab edge and curtain wall | Edge variation exceeds anchor adjustment | Tighter edge tolerance, adjustable anchors, survey of edges before cladding design |
| Concrete shaft and elevator | Shaft out of plumb for rails and doors | Tight shaft tolerance, early shaft survey, adjustable rail brackets |
| Slab and finish flooring or tile | Slab flatness not good enough for thin finishes | Specified F-numbers, leveling compounds, early flatness testing |
| Steel frame and precast or cladding | Frame out of plumb beyond panel connection adjustment | Survey frame before panels are fabricated; adjustable connections |
| Wood frame and windows | Openings out of square or size for factory-made windows | Rough opening checks before windows arrive; shims within limits |
| Structure and stairs | Floor-to-floor height varies, producing unequal risers | Survey levels before stair fabrication; adjustable landings |
The best time to address compatibility is before fabrication, by comparing the tolerances of adjoining systems in the specifications and shop drawings and surveying the as-built structure before the next trade's components are made. Many contractors now survey or scan structural work before releasing cladding, glazing, stairs or elevator equipment for fabrication, so that components can be made to fit the actual structure rather than the theoretical one (lesson 10).
When work is out of tolerance
When a measurement shows work outside tolerance, the field engineer's response should follow a consistent path.
| Step | Action |
|---|---|
| Confirm | Re-measure, preferably by a different method or person, to rule out a measurement error |
| Record | Document the measurement, the location, the tolerance and how it was measured, with photos |
| Assess | Identify which following work is affected and how much adjustment is available |
| Report | Notify the superintendent and project manager and, through them, the design team, with the data |
| Decide | The design team decides whether to accept, modify or remove the work; cost responsibility follows the contract |
| Prevent | Find the cause and change the method so the next element is within tolerance |
Two temptations should be resisted. One is to fix the problem quietly, for example by grinding or shimming beyond what the details allow, without telling anyone. The other is to argue that everything is within some tolerance when it is not. Both can create hidden defects and later disputes. The honest record, the early report and the engineered solution protect everyone.
Common mistakes
MistakeAssuming each trade's tolerance is all that matters.
InsteadCheck how tolerances combine at interfaces and compare them with the adjustment the next system allows.
MistakeUsing the worst-case stack for every decision.
InsteadUse root-sum-square or simulation where variations are independent, and worst case where failure is unacceptable.
MistakeChecking tight tolerances with imprecise methods.
InsteadUse a measuring method several times more precise than the tolerance.
MistakeTesting floor flatness weeks after finishing.
InsteadArrange testing promptly as the standard requires, before curling and deflection change the result.
MistakeQuietly fixing out-of-tolerance work beyond what details allow.
InsteadConfirm, record, report and let the design team decide on the fix.
Summary and key terms
- Tolerances come from the specification, which usually adopts standards and may tighten them for function.
- Position, plumb and level, size, alignment and flatness are different tolerances; check the ones the next trade needs.
- Measurements must be several times more precise than the tolerance being checked.
- Floor flatness and levelness are specified and measured statistically with F-numbers, usually by testing agencies.
- Worst-case stacking adds tolerances; root-sum-square and simulation estimate realistic combined variation.
- Tolerance compatibility problems occur where precise systems meet less precise ones.
- Surveying the structure before fabricating the next trade's components lets parts be made to fit.
- Out-of-tolerance work is confirmed, recorded, reported and resolved by the design team.
- Tolerance
- The permitted variation of a dimension, position or property from its specified value.
- Tolerance stacking
- The combination of variations from several sources at an assembly or interface.
- Worst case
- A method of combining tolerances by simple addition, assuming all are at their limits in the same direction.
- Root-sum-square
- A method of combining independent tolerances by taking the square root of the sum of their squares.
- Tolerance compatibility
- The ability of adjoining systems with different tolerances to fit together.
- FF
- The floor flatness F-number, describing waviness over short distances.
- FL
- The floor levelness F-number, describing how closely a floor follows its design plane over longer distances.
- Adjustment range
- The amount of movement a connection or component allows during installation.
Practice problems
Work each problem on paper first, then reveal the answer to check.
Why might a designer tighten a standard tolerance?
Show answer
Because a function such as an elevator shaft, cladding anchor or narrow-aisle floor needs more precision than the default.
Why should a measuring method be much more precise than the tolerance?
Show answer
Otherwise the measurement uncertainty could hide whether the work is within tolerance.
What do FF and FL describe?
Show answer
FF describes flatness or waviness over short distances; FL describes levelness relative to the design plane over longer distances.
In the stacking example, what were the worst-case and root-sum-square values?
Show answer
±1.33 inches worst case and ±0.81 inch root-sum-square, against ±3/4 inch of adjustment.
Which tolerance dominated the cladding stack, and why does that matter?
Show answer
The slab edge tolerance; tightening the dominant term reduces the combined variation the most.
When does root-sum-square underestimate the combined variation?
Show answer
When variations are biased or not independent, such as a crew consistently setting edges outward.
Give two examples of tolerance compatibility problems.
Show answer
Slab edge and curtain wall anchors; shaft plumbness and elevator rails; slab flatness and tile.
What are the six steps in responding to out-of-tolerance work?
Show answer
Confirm, record, assess, report, decide and prevent.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.