Big Dog Mining Book a call
Back to home

Job CostingDaily ReportingField Operations

Construction Cost Codes: Turning Daily Reports Into Unit Cost

The crew writes what they did. The office assigns the cost code. A clean code list is what turns those daily reports into a unit cost you can manage.

Mining engineer

9 min read

Construction Cost Codes: Turning Daily Reports Into Unit Cost

Most contractors ask field crews to track cost codes on daily reports. The problem is that cost codes are an accounting concept, not a field concept. A jumbo operator in a development heading knows what they drilled, how many meters they advanced, and how long they ran the machine. They do not know whether that work belongs in cost center 310 or cost center 320, and there is no good reason they should.

The question cost codes answer is concrete: what did each unit of installed work actually cost? For a drilling contractor, that might be dollars per meter of advance. For a ground support crew, dollars per bolt installed. The answer comes from one equation: divide the total cost charged to a code by the total quantity installed under that code.

Getting a number that means something requires two things: a clean code list on the office side, and one person who reads the crew's plain-English daily reports and assigns codes consistently. The crew writes what they did. The office assigns the code. That division of labor is the whole system.

The equation: Job Cost per Unit

CPU = CC / QI

Where:

  • CPU - cost per unit of installed work ($ per unit)
  • CC - total cost charged to the cost code during the period ($)
  • QI - total quantity of work installed under that code during the period (unit (meters, bolts, m3, etc.))

Valid for: Holds when all costs for a work activity are charged to their code and quantities represent verified installed work; stops holding when costs are split across codes, quantities include unverified estimates, or corrections are applied weeks after the original entry.

Source: This expression is derived from the operating cost estimation framework described in SME Mining Engineering Handbook, 3rd edition, Appendix 4.7E: Outline of Design Basis Report Sections, p. 257, which identifies sources of cost information and production schedule as the foundation inputs to an operating cost estimate. The source does not print the expression in this form.

Worked example

A mining contractor running underground development advance assigns all labor, explosives, and equipment charges for a 5-shift week to code 310-04. At the end of the week, the code carries $18,900 in charged costs. The crew's daily reports total 126 meters of advance.

StepCalculationResult
Identify total cost charged to the codeCC = $18,900$18,900
Identify total quantity installedQI = 126 meters of advance126 m
Calculate cost per unitCPU = $18,900 / 126 m = $150 per meter$150 per meter

Answer: Development advance cost $150 per meter that week.

What a clean code list looks like

A clean code list has one code per distinct work activity. Not one code per crew, not one code per piece of equipment, and not one code per shift supervisor. If two different crews are drilling blast holes in the same formation under the same contract line, they both write to the same code. That is the point.

The structure most mine sites use combines a cost center with an account number: a three-digit code designating the broad area of work, plus a two-digit account number for the specific activity within that area. The SME Mining Reference Handbook describes this structure in the context of maintenance work orders: "Plant charge - three-digit code number designating the appropriate cost center" paired with "Account number - two-digit account number within the cost center" (SME Mining Reference Handbook, 1st edition, Inventory, p. 391). The same two-level structure transfers directly to field cost coding. Cost center 310 might cover all drilling and blasting. Account 02 within 310 is production blast hole drilling. Account 03 is development advance. Account 04 is pre-split work. Each code describes exactly one thing a crew can do in a shift.

Three things kill an otherwise functional list. First: codes defined by equipment rather than activity. "D9 bulldozer costs" is not an activity; "cut and fill - earthworks" is. Equipment identifiers belong on the cost entry, not in the code structure itself. Second: codes defined at contract level rather than activity level. "Phase 2 general" captures everything in Phase 2 but lets you compare nothing against budget. Third: a list that has grown too long. When the office person has to search for the right code on every other entry, the assignments become inconsistent and the unit costs that come out the other end are noise.

A practical test: two experienced office staff reading the same daily report should code it the same way, independently, almost every time. If they diverge regularly, the codes are ambiguous and need to be redrawn before the job gets much further.

How the office reads a daily report

The crew writes in plain English. "Installed 47 split-set rock bolts on the 450 level east heading, 1.5 m long, 8 hours." That is all the information the office needs.

The office person makes three assignments from that sentence:

  • Cost code: Ground Support - Mechanical Rock Bolt Installation (say, 220-03)
  • Cost: 8 labor hours at the site rate, plus any equipment listed on the same form
  • Quantity: 47 bolts installed

Those three things land on the code together. Over the course of a week, code 220-03 accumulates all the labor hours and equipment charges assigned to it across every daily report, across every crew member who worked that activity. The quantity total builds in parallel.

At the end of the week: cost charged to 220-03 divided by bolts installed under 220-03 equals cost per bolt. That number tells a project manager whether ground support installation is running on budget. The field crew does not need to know what 220-03 means.

The discipline required is consistency, and consistency is entirely an office function. The same activity coded differently on different days produces unit costs that fluctuate for reasons that have nothing to do with the work itself. A one-page code assignment guide covering the five or six most common edge cases - a report that could go to either development or ore drive, a shift that included both production blasting and pre-split work - prevents most of that drift. Write it before the job starts, not after the cost report looks wrong.

Cost codes construction teams can verify: the job cost report

Once the office has a few weeks of coded entries, the job cost report becomes something a project manager can use in a meeting. Each code shows three numbers: budget to date, actual cost to date, and actual quantity installed to date. The unit cost column - actual cost divided by actual quantity - sits next to the budgeted rate.

A code running above the budget rate is a problem identified early enough to investigate. A code running below it might mean the crew is ahead of productivity projections, or it might mean costs from that activity are landing on a different code. Either result is a question you can ask with real data rather than a conversation based on impression.

The job cost and margin calculator runs this arithmetic: enter cost to date and quantity installed, and it returns cost per unit alongside the budget rate. The comparison that matters is simple. If the actual unit cost is above the contract rate and the gap is widening week over week, the job is running out of margin. The coded daily reports tell you exactly which activity is responsible.

Over multiple jobs, the coded data also tells you what your actual unit costs are by activity type in specific ground conditions with your own equipment. A unit cost built from your own coded field data is the most reliable input to a bid. A published estimating benchmark from a handbook describes someone else's operation in conditions that may not match yours.

Where the equation stops holding

The equation is arithmetically simple. Its failures are operational.

It stops holding when costs land on the wrong code. A blasting foreman's supervision time charged to "Administration - General" instead of "Drilling and Blasting - Development" makes code 310-04 look cheaper than it is. When the mischarge is found and corrected at month-end, the unit cost jumps. The work did not change; the coding caught up. Over a long project, miscoding accumulates and the cost report becomes a record of accounting corrections rather than a picture of field productivity.

It also stops holding when quantities are over-counted. A crew reports 14 meters of development advance on a round that physically broke 11 meters. The code gets 14 meters of credit. The unit cost looks favorable. At survey, the discrepancy surfaces. Quantity corrections made weeks after a report was filed are harder to trace than cost corrections, and harder to explain to an owner.

For contractors doing federal or federally funded work, Cost Accounting Standard 9904.418 at ecfr.gov requires that direct costs be assigned to specific cost objectives rather than pooled into overhead. A field cost code system that tracks labor, equipment, and consumables as direct costs by activity satisfies this requirement. A system that absorbs all field costs into a single overhead pool does not.

Two rules contain most of the breakdowns. First: the person assigning cost codes should not be the same person whose performance is measured by the resulting unit costs. The conflict of interest is low-visibility but real. Second: quantities should come from a verifiable source - a surveyor's measurement, a material ticket, a counter on a drill string - not from a foreman's estimate on a daily report. Crew estimates are fine for same-day operational decisions. They are not the right denominator for a cost equation that will be shown to an owner or used in a future bid.

Building the list before the job starts

The time to build the code list is during bid preparation, not after mobilization.

The schedule of values in a unit-price or lump-sum contract specifies what the owner pays for. Each line in that schedule should map to at least one cost code. If the owner pays separately for development blasting and production blasting, the list needs separate codes. If ground support is a single line item, two codes internally - mechanized rock bolting versus hand-held bolting - may still make sense if the two methods carry meaningfully different unit costs and you want to manage them as separate activities.

The SME Mining Engineering Handbook's framework for operating cost estimates identifies "Sources of cost information" and "Production schedule" as the two foundation inputs to any cost projection (SME Mining Engineering Handbook, 3rd edition, Appendix 4.7E: Outline of Design Basis Report Sections, p. 257). A cost code list captures exactly those two inputs in real time: cost charged to the code is sources-of-cost data; quantity installed under the code is your actual production rate, measured in meters and hours rather than in projections. The feasibility estimate was a prediction. The coded daily report is the measurement.

Building the list against the schedule of values also simplifies billing. When an owner asks for progress backup on an invoice, a cost code that maps directly to a SOV line gives you cost to date, quantity installed, and unit cost with no assembly required. That is easier to defend than a summary built from separate spreadsheets the week before an invoice is due.

One practical note on timing: publish the final code list to the office before the crew arrives on site. The crew does not need it. The office person does. A list handed to the office on day one, with enough time to review it and ask questions before the first daily reports come in, is the difference between consistent first-week coding and a first month of data that needs to be restated.

Run your own numbers

Rather than work it by hand every time, the job cost and margin calculator does this arithmetic and shows its working. The rest of the set is on the mining calculators page.

Common questions

How many cost codes does a mining contractor need on a single job?

There is no single answer. The practical test is whether one office person can assign any daily report to a code without a reference list. When the office person stops to look up codes or calls the field for clarification, the list is either too long or the definitions are too broad. A code used every shift is more valuable than five that are each used once a month.

What happens when a shift report covers two different activities?

Split the cost and the quantity between both codes. If a shift includes 4 hours of rock bolting and 4 hours of scaling, assign labor proportionally to each code. Quantities go to the code for the activity that produced them: scaling meters to the scaling code, bolts to the bolting code. The split takes an extra minute on the office side and makes both unit costs accurate.

Does the same code structure work for underground and surface work on the same contract?

Usually not without modification. Underground development and surface earthworks share almost no activities. A contractor running both scopes typically maintains a master list and creates a project-specific subset for each contract. The cost center numbering can stay consistent across jobs; the account numbers within each center will differ based on what the scope actually includes.

Getting this off paper

Most contractors already know these numbers. The cost is in re-keying them into a report, then a timesheet, then an invoice. If that is where your week goes, book a 20-minute call and we will look at your actual paperwork.

All field tools