SMW-420 · Lesson 6 of 12 · 19 min
Estimating labor
Labor is the part of a sheet metal estimate that wins or loses the job. Material prices are much the same for every bidder, because everyone buys galvanized coil, dampers and sealant from similar suppliers. Labor is where shops differ: how productive their crews are, how much of the work is done in the shop instead of the field, how well they plan, and how realistic their estimator is about the conditions on a particular site. On a hospital job such as Eastgate, labor can be well over half of the sheet metal price. This lesson follows Halima Noor as she builds the labor estimate from the take-off quantities in Lesson 5, with Kai Ferreira checking the arithmetic.
Labor units
Estimators convert quantities into hours using labor units: the number of hours one worker needs to complete one unit of work under normal conditions. Keelson's labor units come from its own job cost records, refined over years by comparing estimated hours with actual hours on finished jobs. Published labor unit tables from trade associations and estimating guides exist and are useful as a check, but a shop that bids only from published tables is pricing someone else's productivity. Halima keeps separate units for shop fabrication and for field installation, because the two are done by different crews at different costs, and because moving work from the field to the shop is one of the main ways a contractor can lower its price.
| Item | Shop unit (illustrative) | Field unit (illustrative) |
|---|---|---|
| Rectangular duct, galvanized, per 100 lb | 0.9 h | 2.0 h |
| Rectangular fitting, medium | 1.2 h each | 1.5 h each |
| Spiral duct, per foot | 0.05 h | 0.12 h |
| Fire damper, small | 0.5 h each | 2.0 h each |
| Combination fire and smoke damper | 0.8 h each | 3.5 h each |
| Access door | 0.4 h each | 0.6 h each |
| Diffuser or grille, install only | - | 0.75 h each |
A labor unit includes the normal non-productive time that comes with the task: reading the drawing, collecting the material, moving it to the workstation or the floor, setting up, cleaning up and short breaks. It does not include abnormal delays, overtime inefficiency, extreme access or unusual working hours. Those are handled by productivity factors applied to the base hours, so that the base units stay comparable from job to job.
From quantities to base hours
The base hours for each item are the quantity multiplied by the labor unit. Halima builds them up in a structured way: shop fabrication of straight duct and fittings, shop fabrication of accessories and spools, field installation of duct, field installation of accessories, connections to equipment and terminal units, diffuser installation, testing and adjusting support, and project-level tasks such as layout, coordination meetings, safety orientation and cleanup. Detailing hours for Lin's office are estimated separately, usually from the number of drawing sheets and the complexity of each area.
# Base labor hours from take-off quantities and labor units
items = [ # (item, quantity, shop unit, field unit)
("rect duct per 100 lb", 410, 0.9, 2.0),
("rect fittings", 640, 1.2, 1.5),
("spiral duct per ft", 3870, 0.05, 0.12),
("fire dampers", 86, 0.5, 2.0),
("combination dampers", 26, 0.8, 3.5),
("volume dampers", 230, 0.2, 0.5),
("access doors", 118, 0.4, 0.6),
("terminal unit connections", 96, 0.3, 1.2),
("diffusers and grilles", 410, 0.0, 0.75),
]
shop = sum(q * s for _, q, s, f in items)
field = sum(q * f for _, q, s, f in items)
for name, q, s, f in items:
print(f"{name:26s} {q:8.0f} shop {q * s:7.0f} h field {q * f:7.0f} h")
print(f"base shop hours {shop:8.0f}")
print(f"base field hours {field:8.0f}")rect duct per 100 lb 410 shop 369 h field 820 h rect fittings 640 shop 768 h field 960 h spiral duct per ft 3870 shop 194 h field 464 h fire dampers 86 shop 43 h field 172 h combination dampers 26 shop 21 h field 91 h volume dampers 230 shop 46 h field 115 h access doors 118 shop 47 h field 71 h terminal unit connections 96 shop 29 h field 115 h diffusers and grilles 410 shop 0 h field 308 h base shop hours 1516 base field hours 3116
The stainless isolation and laboratory exhaust is estimated separately, because welded stainless duct takes several times the hours of galvanized duct of the same weight, needs a welder rather than a sheet metal worker for much of the work, and has its own testing. Kai noted that the base hours already show the typical pattern for a hospital: accessories, connections and diffusers together take more field hours than the duct itself.
Productivity factors
Base hours assume normal conditions. Real sites are rarely normal, and the estimator adjusts for the conditions on this job. Height is the most common factor: duct hung at 13 ft from a scissor lift is slower than duct hung at 10 ft from a ladder, and duct in a 23 ft atrium is slower again. Congestion, such as a hospital corridor crowded with services, slows work. So do working in an occupied building, infection-control barriers and hospital work rules, restricted working hours, long distances from the material hoist to the work, winter conditions on open floors, and the learning curve on unusual work. Each factor is a multiplier on the base hours of the affected work, not on the whole job.
| Condition | Typical adjustment (illustrative) | Applies to |
|---|---|---|
| Height above 12 ft on a lift | +10 to +25 percent | Field duct and accessories in that area |
| Congested ceilings | +10 to +20 percent | Field work in congested areas |
| Occupied building, infection-control barriers | +15 to +30 percent | Work in the existing hospital connection |
| Restricted or night hours | +10 to +20 percent | Affected tasks |
| Repetitive floors (learning curve) | -5 to -10 percent | Second and later identical floors |
Halima applies the factors by area. On Eastgate, the new wing's typical floors get a modest congestion factor and a small credit for repetition after level 2; the penthouse gets a height factor; the connection to the existing hospital gets an occupied-building factor, because the crew must work behind infection-control barriers, clean up every shift and stop work when the hospital needs the corridor. Kai's check found that she had applied the occupied-building factor to the whole floor rather than only to the 115 ft of corridor connection, an error worth several hundred hours.
Crew mix and labor rates
Hours become dollars through labor rates, and the rate depends on who does the work. A typical field crew is a mix of journeyworkers and apprentices, with a working foreman. Apprentice wage rates are a percentage of the journeyworker rate that rises with each level of the apprenticeship, so a crew with more apprentices has a lower average rate, but apprentices must be supervised and the ratio of apprentices to journeyworkers is often limited by the apprenticeship rules or the collective agreement. The estimator calculates a composite crew rate: the weighted average of the wage rates in the crew, plus the burden that comes with every paid hour.
Labor burden includes the employer's costs on top of wages: Social Security and Medicare contributions, federal and state unemployment insurance, workers' compensation insurance, paid leave, and, for union shops such as Keelson's Cleveland operation, the health, pension and training fund contributions set by the collective bargaining agreement with the sheet metal workers' local. On public work, prevailing wage rules may also set minimum rates. Keelson's estimating database stores the current wage and burden for each classification so the composite rate is calculated rather than guessed. The rates used in this lesson are illustrative.
# Composite crew rate (illustrative)
crew = [("foreman", 1, 48.00), ("journeyworker", 3, 44.00), ("apprentice level 3", 1, 30.80), ("apprentice level 1", 1, 22.00)]
burden = 0.62 # burden as a fraction of wages
heads = sum(n for _, n, _ in crew)
wage = sum(n * r for _, n, r in crew) / heads
rate = wage * (1 + burden)
print(f"crew of {heads}: average wage {wage:.2f}, with burden {rate:.2f} dollars per hour")crew of 6: average wage 38.80, with burden 62.86 dollars per hour
Shop versus field
Where work is done changes its cost. A shop hour is usually cheaper than a field hour: the shop crew works at benches and machines at a comfortable height, material is close at hand, weather does not matter, and quality is easier to control. Each fitting that can be pre-assembled into a spool, each damper that can be installed in a duct section in the shop, each access door fitted on the bench, saves field hours at a higher rate. On Eastgate, Halima's plan was to ship most of the main runs as spools with dampers and access doors already installed, which raised the shop hours but lowered the field hours by more. Lin's detailing hours also rose, because spools need spool sheets.
The limit on prefabrication is the delivery route and the site's ability to receive it. Spools have to fit on trucks, through the loading dock, onto the material hoist and through openings, and they need laydown space and protection on site. A hospital site often has little laydown space, so Keelson plans just-in-time deliveries floor by floor. The extra trucking and the coordination effort are costs too, and they belong in the estimate.
Supervision, project tasks and the labor check
Not all labor is installing duct. The estimate needs hours for the field foreman's non-working time, the project manager and the coordinator, the safety orientation required for each worker on the hospital site, weekly coordination meetings, layout, material handling and hoisting, punch-list work, support for the testing and balancing contractor, and demobilization. These are often estimated as allowances based on the job's duration and size. Halima also allows for the hospital's infection-control training and permits, which Eastgate requires for any work in or next to the existing building.
The last step is a reality check. Halima divides the total field hours by the planned crew size and the schedule duration to see whether the crew could actually do the work in the time allowed. If the estimate needs twelve people for the whole job but the site can only take eight at a time, either the schedule or the estimate is wrong. She also compares hours per unit of floor area with past hospital jobs. Kai's job was to run these checks and explain any difference.
# Does the crew fit the schedule?
field_hours = 9600
crew_size = 8
hours_per_week = 40
weeks_available = 34
weeks_needed = field_hours / (crew_size * hours_per_week)
print(f"weeks needed with {crew_size} workers: {weeks_needed:.1f}; weeks available: {weeks_available}")
if weeks_needed > weeks_available:
print(f"need about {field_hours / (weeks_available * hours_per_week):.1f} workers on average, or more time")weeks needed with 8 workers: 30.0; weeks available: 34
Worked problem
Applying a factor to the right work
The base field hours for the existing-hospital connection are 420 h, and the base field hours for the rest of level 1 are 1,160 h. The occupied-building factor is 25 percent. Halima had applied it to all 1,580 h. What is the correct adjustment, and how many hours did the error add?
Show solution
- Correct adjustment: 420 × 0.25 = 105 h.
- Incorrect adjustment: 1,580 × 0.25 = 395 h.
- Difference: 395 − 105 = 290 h.
- At an illustrative composite rate of about 50 to 70 dollars an hour, that is roughly 15,000 to 20,000 dollars on one floor.
Answer: Productivity factors apply only to the work they affect. Applying them broadly makes the bid uncompetitive.
Common mistakes
MistakeBidding only from published labor units.
InsteadUse the shop's own job cost records and check against published units.
MistakeApplying a productivity factor to the whole job.
InsteadApply each factor to the base hours of the work it affects.
MistakeUsing wage rates without burden.
InsteadCalculate a composite crew rate that includes all labor burden.
MistakeForgetting supervision, meetings, orientation and punch-list hours.
InsteadAdd project-level labor allowances based on duration and size.
MistakeIgnoring whether the crew can finish in the schedule.
InsteadCheck total field hours against crew size and duration.
Summary and key terms
- Labor is where sheet metal bids differ most, and on hospital jobs it can exceed half of the price.
- Labor units, kept separately for shop and field, convert quantities into base hours.
- Productivity factors adjust base hours for height, congestion, occupied buildings, hours and repetition.
- A composite crew rate combines the wage mix with full labor burden.
- Moving work into the shop usually lowers cost, within the limits of delivery and site space.
- Supervision and project tasks are added, and the result is checked against the schedule and past jobs.
- Labor unit
- The hours one worker needs to complete one unit of work under normal conditions.
- Base hours
- Quantity multiplied by the labor unit, before adjustments.
- Productivity factor
- A multiplier on base hours for site conditions that change productivity.
- Composite crew rate
- The average hourly cost of a crew, including the wage mix and burden.
- Labor burden
- Employer costs added to wages, such as payroll contributions, insurance and benefits.
- Prefabrication
- Doing work in the shop rather than in the field, such as building spools.
Practice problems
Work each problem on paper first, then reveal the answer to check.
Why does Keelson keep separate shop and field labor units?
Show answer
Different crews, conditions and costs apply, and moving work into the shop is a key way to lower price.
A crew has one foreman at 42, three journeyworkers at 38 and two apprentices at 20 and 30 dollars per hour. What is the average wage?
Show answer
(42 + 3 × 38 + 20 + 30) / 6 = 34.33 dollars per hour, before burden.
Name three conditions that justify a productivity factor.
Show answer
Any three of: height, congestion, occupied building, restricted hours, long material travel, winter conditions, unusual work.
Field hours are 9,600 and the crew is eight people working 40 hours a week. How many weeks are needed?
Show answer
9,600 / (8 × 40) = 30 weeks.
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.