Estimating site work has two halves. One half is material takeoff: how many posts, how many cubic yards, how many bags of concrete. That is arithmetic and it is the question most free calculators answer. The other half is production rate: how long will this take, how many crew-days, how many trucks, what does it cost per linear foot or per cubic yard. That is estimating, not arithmetic, and it is the question that wins or loses bids.
This guide covers the production-rate side for two common domains: truck hauling and fencing installation. Both reduce to the same shared pipeline: inputs to quantities to production rate to resource-hours to duration and cost. Both have the same recurring trap, which is mixing volume bases (bank vs loose vs compacted) or units (LCY vs BCY vs tons) and getting the answer wrong by 20 to 50 percent. The methodology is rooted in the Caterpillar Performance Handbook (hauling) and RSMeans Site Improvements (fencing), but the framework is universal across earthmoving and site-work trades.
The companion Productivity Rate Calculator does the math, with editable defaults so an estimator can replace the national-data baseline with their own tracked crew production. The match factor and bottleneck verdict on the hauling side are the calculations most free tools skip.
Production Rate vs Material Takeoff
A material takeoff calculator answers "how many parts." It counts posts, pickets, rails, bags of concrete, cubic yards of fill. The output is a parts list and a material cost. A production rate calculator answers "how long." It computes effective production per crew-day or per hour and gives you crew-days, calendar days, and a labor cost per unit. The two questions are complementary but they are not the same calculator.
Most online fence calculators do takeoff only. Same with truck calculators: they tell you tonnage but not how many trucks the loader can keep busy. For a real bid you need both. The material takeoff feeds the parts order; the production rate feeds the schedule, the crew dispatch, and the labor cost line on the bid sheet. Getting the takeoff right and the production wrong is the difference between a competitive bid and a money-losing job.
The Productivity Rate Calculator deliberately puts production first. Material takeoff is an optional toggle in the cost panel, available when you want it, off by default. The Fence Material Calculator remains the right tool for full takeoff. The two are designed to be used together on a real bid.
The Five-Stage Pipeline (one engine, two modes)
Every production-rate calculation follows the same five-stage pipeline:
- Inputs: geometry, material, equipment, crew, site conditions. The user-supplied facts about the job.
- Quantities: derived totals (LF of fence, BCY of earth, count of posts, count of loads). Bridge between the survey or plan and the production math.
- Production rate: effective output per unit time. LF per crew-day for fencing, LCY or BCY per hour for hauling.
- Resource hours: labor hours, crew-days, equipment hours. Quantity divided by rate.
- Duration and cost: calendar days, total labor cost, $ per LF, $ per CY, $ per ton.
The two modes (hauling and fencing) share stages 1, 2, 4, and 5. Stage 3 (the production rate calculation) is different per domain but built on the same data conventions: every default has a cited source, every modifier has a published range, every constant is editable.
Inputs → Quantities → Production Rate → Resource Hours → Duration & Cost
Hauling: cycle time → loads/hr → cy/hr → hr to complete → cost/cy
Fencing: per-line-item baseline hours → selective modifiers → totalCrewHours → crew-days → calendar days → $/LF
Productivity Rate Calculator
Truck hauling cycle time with match factor and bottleneck verdict, plus fencing crew-day rate by type, soil, terrain, and post method. Two estimating modes on one shared engine.
Hauling: The Truck Cycle Time Decomposition
A truck cycle is the round trip from the load point to the dump and back. Total truck cycle time is the sum of five components:
- Load time: passes per truck times loader cycle seconds. A 4-yd loader with 32 sec cycle filling a 16-LCY truck at 0.95 fill factor needs 5 passes (ceil(16 / (4 x 0.95))), so load time is 160 sec.
- Haul time: one-way distance divided by loaded speed. 5 mi at 30 mph = 0.167 hr = 600 sec.
- Dump time: 30 to 60 sec for highway dump trucks per Cat PHB, longer for off-highway rigid trucks or articulated dump trucks.
- Return time: one-way distance divided by empty speed (usually 5 to 10 mph faster than loaded). 5 mi at 35 mph = 514 sec.
- Spot and wait: queue at the loader plus maneuver to spot the truck. 20 to 45 sec typical.
For the default scenario (5 mi haul, common earth dry, medium loader, 16-LCY truck) the cycle decomposes to 160 + 600 + 60 + 514 + 30 = 1364 sec, or 22.7 minutes per round trip. At 75 percent efficiency (Good job condition, 45 min/hr) a single truck moves 16 LCY x 3600 sec/hr x 0.75 / 1364 sec = 31.7 LCY/hr.
This decomposition is the diagnostic that tells you where the next dollar should go. If the haul segment dominates (long distance), no amount of loader capacity helps the throughput; you need either a closer dump or more trucks. If the load segment dominates (heavy material, slow loader, many passes), adding more trucks does nothing because the loader is already saturated; you need a bigger loader. The Productivity Rate Calculator shows this as a stacked horizontal bar with each segment colored.
Match Factor: The Calculation Most Tools Skip
Match factor is the ratio that tells you whether the loader sits idle waiting for trucks or trucks queue at the loader. The standard formulation (Peurifoy, Cat PHB):
MF = (number of trucks × time to load one truck) / total truck cycle time
When MF = 1.0 the loader finishes filling one truck just as the next truck arrives, so neither resource idles and the system runs at theoretical peak. When MF < 1.0 the loader sits idle (you are undertrucked). When MF > 1.0 trucks queue (you are overtrucked).
For the default scenario (4 trucks, 160 sec load time per truck, 1364 sec cycle): MF = (4 x 160) / 1364 = 0.469. That is severely undertrucked. The loader is running at less than half utilization. The trucks-required solver in the tool reports that 9 trucks would give MF = 1.06 (just over balanced, the ceil-balance count) and 8 trucks would give MF = 0.94 (just under, the floor-balance count). Either is defensible; the choice depends on which resource is more expensive to keep idle.
The economic call is target-side, not action-side. Decide which side of 1.0 hurts less, then read the truck count off the floor or ceil row of the sizing table. If the loader is the expensive resource (leased, large, owner-of-job), target at or just above 1.0 (ceil-balance count) so the loader is continuously fed. If trucks are the expensive resource (owned fleet, low-margin work), target at or just below 1.0 (floor-balance count) so trucks keep rolling and accept some loader idle. Whether you add or remove trucks from your current plan to land on that count depends on where you started.
This is the single most useful calculation in haul estimating and almost no free tool reports it. A "yards per hour" output alone does not tell you whether the loader sits idle or the trucks queue, and those two failure modes lead to very different operational changes (add trucks vs add loader vs change haul distance).
MF < 0.92: undertrucked (loader idle, truck-bound)
MF 0.92 to 1.08: balanced
MF > 1.08: overtrucked (trucks queue, loader-bound)
Trucks for balance = truck cycle time / load time per truck. Floor-balance and ceil-balance are the integers that bracket this fractional number; both are reported by the truck-sizing solver.
Bank vs Loose vs Compacted: Don't Mix Volume Bases
Earth has three common volume states and each has its own cubic yard. Mixing them is the second most common hauling mistake (after match factor).
- Bank (BCY): in-place volume. What the surveyor measures. What the project plan says.
- Loose (LCY): after excavation. What the truck hauls. Bigger than bank because of voids.
- Compacted (CCY): after placement and compaction. Smaller than bank because the original soil structure is destroyed and reformed denser.
The conversion is via the swell factor (bank to loose) and the shrink factor (bank to compacted). Caterpillar PHB tables list both per material. Common earth swells ~25 percent, so 1 BCY = 1.25 LCY (load factor = 1 / 1.25 = 0.80). Clay swells ~35 percent. Blasted rock swells 50 to 65 percent.
The Productivity Rate Calculator lets you enter the project quantity in either bank or loose CY and converts internally for the duration solve. Truck capacity is always LCY (volume rating). Production rate is reported in both BCY/hr and LCY/hr so the user can match the units to whatever the spec or the survey is in.
Topsoil: 25%
Common earth dry/wet: 25%
Clay dry/wet: 35%
Sand dry/wet: 12%
Gravel: 12%
Crushed stone: 33%
Rock blasted (well): 50%
Rock blasted (poor): 65%
Volume vs Weight Binding: When the Truck Hauls Light by Volume
Truck capacity is published as a heaped volume rating (LCY) and a legal payload (lb DOT cap). The binding limit is whichever fills first: volume or weight. For light material like topsoil (1680 lb/LCY) or sand (2400 lb/LCY) the truck binds on volume and hauls full. For heavy material like wet clay (2593 lb/LCY) or blasted rock (3000 lb/LCY) the truck often binds on weight and hauls 60 to 80 percent full by volume.
The math: weight-derived volume = legal payload / loose density. For a 50,000 lb legal payload and wet clay at 2593 lb/LCY, that is 50,000 / 2593 = 19.3 LCY. If the truck is rated 16 LCY heaped, volume still binds (16 < 19.3). If the same truck were rated 25 LCY heaped, weight binds (19.3 < 25) and the truck hauls 19.3 LCY of wet clay, 23 percent below volume rating.
Estimating a wet-clay haul on volume alone is the single most common hauling mistake on the free calculator side. The tool catches this automatically, picks the binding limit, fires a flag when weight binds significantly below volume, and uses the correct payload through the rest of the cycle math. It is the difference between a winning bid and a losing one.
Fencing: Baseline Production Rates by Type
Fencing production varies an order of magnitude across types. A 3-person crew installing 6-ft chain-link residential moves ~240 LF/crew-day in baseline conditions (loam soil, flat terrain, concrete-set posts). The same crew installing 6-ft vinyl privacy moves ~100 LF/crew-day; installing barbed wire or welded field wire on driven T-posts moves ~500 LF/crew-day.
The baseline rates in the calculator come from RSMeans Building Construction Cost Data 2024 Section 02 82 26 (Fencing), cross-checked with American Fence Association installation time guidelines and Builder's Pricing Guide 2024. These are national averages with the usual caveat: real crews vary 30 to 50 percent above or below depending on tooling, experience, and how recently they have done this fence type.
- Chain link residential 4-6 ft: 240 LF/crew-day
- Chain link commercial 6-8 ft: 180 LF/crew-day
- Wood privacy 6 ft: 110 LF/crew-day
- Wood split rail 3-rail: 240 LF/crew-day
- Welded / field wire 4-5 ft: 500 LF/crew-day
- Barbed wire 4-strand: 500 LF/crew-day
- Vinyl privacy 6 ft: 100 LF/crew-day
- Ornamental steel 4-6 ft: 100 LF/crew-day
- Temporary panel (rental): 750 LF/crew-day
The Productivity Rate Calculator lets you replace any of these with your own tracked production via the Custom Rate Override panel, and save the tuned rate as a company default for the next bid. This is the single highest-impact feature for a contractor: the tool stops pretending to be a national-average estimate and becomes your specific estimate.
Fencing: Soil, Terrain, Method, and Crew Size Modifiers
Baseline rates assume loam soil, flat terrain, concrete-set posts, 3-person crew, and 6-ft height. Real jobs deviate; the modifiers stack multiplicatively.
Soil class is the single biggest production driver after fence type:
- Sandy: 1.05 (slightly faster than loam)
- Loam: 1.00 (baseline)
- Hard clay: 0.85
- Rocky: 0.55
- Frost (seasonal): 0.45
- Permafrost: 0.30
The permafrost factor is calibrated from Alaska DOT&PF construction productivity studies on frozen-ground post setting. Frozen ground roughly triples the cycle time for the post-hole operation. Because the modifier applies only to that one line item (not to fabric, layout, or tension), a baseline 240 LF/crew-day rate in chain-link drops to about 152 LF/crew-day in permafrost + concrete-set, not 72. With permafrost + rock-drilled (the typical Alaska combo), the post-hole and post-set hours are both penalized, and the headline rate drops to about 94 LF/crew-day.
Terrain: flat 1.00, rolling 0.85, steep 0.65. Post method: driven 1.25 (faster than concrete), concrete-set 1.00, rock-drilled 0.50 (much slower). Height penalty: 5 percent rate loss per foot above 6 ft.
Crew size scaling is sublinear because the workflow has bottlenecks (one stringline, one auger). The tool uses a power-law exponent of 0.7 centered on a 3-person crew. A crew of 6 is roughly 1.62x as fast as a crew of 3, not 2x. A crew of 1 is roughly 0.41x. Doubling the crew does not double the output, which is exactly what every foreman who has tried it already knows.
terrain × crew × height applies to ALL line items (layout, post hole, post set, fabric/rail, tension/trim, and gates).
soil × method applies ONLY to the post-hole line item.
method applies to post setting (driven posts skip the concrete cure, rock-drilled is slower).
Soil does NOT slow fabric hanging, layout, or tension.
For chain link residential in rocky soil, rolling terrain, concrete-set, crew of 4, 7 ft height, the headline rate drops from 240 to about 197 LF/crew-day (about 18% slower overall, not the 56% the old multiplicative formula gave) because rocky soil only penalizes the 25% post-hole share of the work.
Concrete Cure: Calendar Time, Not Labor Time
Concrete-set posts need 24 hours minimum cure before the fabric crew can tension chain link or hang gates. This is a common source of estimate confusion: the cure time is calendar lag, not labor time. The crew is not on the clock while concrete cures.
On a long job (3+ labor-days) the cure overlaps later work: the post crew sets the first runs on day 1, those cure on day 2 while the post crew sets more posts elsewhere on the same job, and by day 3 the fabric crew can start on the day-1 posts. Calendar duration equals labor duration.
On a short job the cure adds calendar lag, with the lag fading linearly from a full cure-day at labor near zero to zero at 3 labor-days. A 500 LF chain-link job at 240 LF/day with one walk gate is 2.27 crew-days of labor; cure lag = 1 x max(0, 1 - 2.27/3) = 0.24 day; calendar = 2.51 days. The continuous fade replaces an older hard 3-day threshold that produced an unphysical discontinuity (adding a few LF could shrink the schedule by a full day).
The Productivity Rate Calculator computes the cure as calendar lag separately from labor days, and only applies the calendar penalty on short jobs where the cure cannot overlap. Driven and rock-drilled methods have no cure time. The calendar duration is the right input for the schedule; the labor days are the right input for the crew dispatch.
Permafrost and Frozen-Ground Work
Working frozen ground or permafrost is its own problem, not a simple multiplier. Three things change at once: the post setting method shifts to rock-drilled (or steam thaw + auger), the labor per post triples or more, and the equipment requirement adds either a steam unit or a rock drill rig that does not appear on a normal fence job.
The 0.30 permafrost multiplier and the 0.50 rock-drilled method multiplier apply only to the post-hole and post-set line items, not to fabric, layout, or tension/trim work. On a permafrost + rock-drilled job, post-hole hours go up roughly 6.7x (1 / (0.30 × 0.50)) while fabric and layout stay at baseline. The overall headline rate drops from 240 LF/crew-day to roughly 90-100 LF/crew-day, not 36 LF/crew-day. The old multiplicative formula was overly pessimistic because it assumed rocky frozen ground also slowed down fabric hanging, which is not how the crew actually works.
The tool fires a warning flag if permafrost is selected with driven or concrete-set posts (without rock-drilled), because the production discount alone does not capture the equipment requirement. Steam thawing the post hole takes 30 to 60 minutes per hole in dense permafrost; rock drilling is typically faster but requires a track-mounted drill rig. For estimating purposes, treat these as a separate equipment line item, not just a labor multiplier.
Duration and Cost: Pulling It All Together
Once the production rate and resource hours are in hand, the duration and cost follow directly.
Hauling duration = project quantity (BCY) / system production (BCY per day). System production = min(loader effective, fleet capacity). The loader effective rate is its truck-feeding throughput, which is less than its bucket-cycle theoretical max because the last pass into each truck is partial but still consumes a full cycle. The fleet capacity is per-truck production times truck count. The system is limited by whichever is smaller; you cannot move material faster than the slower of the two resources. The tool reports both the loader effective rate (used in the min) and the bucket-cycle theoretical (for context).
Hauling cost = (loader $/hr + n_trucks × truck $/hr + other $/hr) divided by production cy/hr. Reported per BCY, per LCY, and per ton. The Cat PHB and ATRI ranges are the default; per-job overrides handle owned vs rented equipment.
Fencing duration: total crew hours (headline crew hours from the rate plus gate hours) divided by work hours per day. Calendar duration adds cure lag on short jobs.
Fencing cost: total crew-hours × crew size × per-hand hourly rate. The per-hand rate is wage + benefits + small-equipment allocation per worker (default $80/hr per hand). Total crew-hours is the elapsed time the crew works (not summed person-hours), so the conversion to person-hours uses × crew size. Adding hands raises total cost roughly in proportion to crew size (since productivity scales sublinearly but cost scales linearly with head count) rather than dropping cost, which is what would happen if the formula used a static whole-crew rate without re-scaling.
Optional material takeoff adds $/LF × LF for fence material (blended rate including a per-LF allowance for terminal post upcharge) plus separate walk-gate and drive-gate material inputs. Drive gates can run 3-10x the cost of walk gates, so the two inputs are split.
Tuning the Tool to Your Crew
National-average production rates are a starting point, not a finishing point. Every crew is different. A 3-person crew that has installed the same fence type a hundred times will run 20 to 40 percent above the RSMeans baseline. A new crew on an unfamiliar fence type will run 30 to 50 percent below. The tool ships with the national-average defaults so the first-time user gets a defensible estimate, but the right answer is to tune the rates to your crew over a few jobs.
The workflow: at the end of each fence job, divide the actual LF completed by the actual crew-days worked. Enter that rate in the Custom Rate Override field for the matching fence type and click Save as Company Default. After three to five jobs the saved rate is calibrated to your crew, your tooling, and your typical site conditions. From then on the tool is no longer a national-average estimate; it is your specific estimate with the modifiers applied to your tuned baseline.
Same idea for hauling: track actual cycle times on a job (load, haul, dump, return, spot/wait) and replace the default loader cycle time and dump time with your actual numbers. Track actual hourly equipment cost (loader plus truck plus driver) for your specific fleet rather than the ATRI national averages. Once tuned, the match factor and the bottleneck verdict are calibrated to your operation, not the national average.