📌 Stage 1 · Foundations · Job Costing · Cost Codes · 30–40 min
One shared list that estimates, timesheets, and purchases all speak
Learning goals
- Design a cost-code list that stays stable across every job
- Use the Cost Type and Typical Unit columns to keep reports honest
- Roll up what a single code is worth across all jobs with SUMIF
Concepts
Why codes come before everything else
A cost code is a bucket of work: 2100 Demolition & Disposal, 2200 Framing & Rough Carpentry, 6200 Plumbing. Codes are the work breakdown structure (WBS) of the business, and they only work if the same bucket means the same thing on the estimate, on a timesheet, and on a supplier invoice.
Ridgeline uses 14 production codes numbered roughly like CSI divisions, plus 0000 Office & Administration for time that belongs to no job. A code lives once on the Cost Codes sheet with a description, a cost type, and a typical unit - and everywhere else in the workbook refers to it by number.
When the estimate for tile and the tile subcontractor bill both land in code 3400, estimate-versus-actual becomes a formula instead of an argument.
💡 Tips:
- Add codes rarely and retire them never: comparability across jobs is the whole value.
- Agencies and consultants: use service lines as codes (1000 account management, 2000 strategy, 3000 design, 4000 build) and the rest of the course works unchanged.
Cost types and units
Every code carries a Cost Type - Labor, Material, Subcontract, or Other. The type is what lets a report say the kitchen estimate is heavy on subcontracted work without any manual sorting.
The Typical Unit column (LS lump sum, HR hours, LOT, SF square feet, EA each) is documentation for humans: it reminds the estimator what unit each line is priced in before it is typed into the Estimates sheet.
=SUMIF(Estimates!$C$5:$C$1004,$B5,Estimates!$F$5:$F$1004)SUMIF adds Estimates column F (Est Cost) for every row whose Cost Code in column C equals the code in this sheet's cell B5. It answers: what is code 1000 worth across every job we have estimated? The ranges are pinned to rows 5 through 1004 so new estimate lines are always included.
The all-jobs column
Column F on Cost Codes is a live roll-up: as soon as an estimator saves a line, the code's total moves. It is a cheap consistency check and a bidding tool - if General Conditions is $7,700 across two jobs but your gut says it should run 8% of construction cost, you will notice here first.
In modern Excel you could build the same view with a pivot table or the SUM function inside a spreadsheet table; this course sticks to SUMIF so every Excel version since 2010 - and the in-browser exercise - computes identically.
Practice
Fixed case (Mar 1 – Jun 30, 2026). Pale-green cells are formulas. Cell F5 on Cost Codes has been cleared - you will retype it.
- Read the code list — The exercise opens on Cost Codes. Skim rows 5 through 19: fourteen production codes, then 0000 Office & Administration at the bottom.
- Retype the roll-up formula in F5 — Cell F5 is blank. Type =SUMIF(Estimates!$C$5:$C$1004,$B5,Estimates!$F$5:$F$1004 and press Enter. Code 1000 General Conditions returns $7,700.00 - $4,800 on the kitchen and $2,900 on the bath.
- Check one labor-heavy code — Look at F7 (code 2200 Framing & Rough Carpentry). It should read $23,300.00, the sum of framing labor estimated on the kitchen, deck, bath, and the garage bid.
- Filter by cost type — Use the header filter on the Cost Type column and show only Subcontract codes. Six codes carry the subcontracted trades - that is where estimate discipline matters most, because a signed sub bid is close to a final number.
Online exercise
The spreadsheet below is editable — follow the practice steps right on this page. Steps that need ribbon menus should be done in your own Excel with the downloadable practice file.
Checklist
Work through each item; when every box passes, this lesson is done:
- ☐ Typed the SUMIF into F5 and got $7,700.00 for code 1000 across the kitchen and bath estimates
- ☐ Confirmed F7 shows $23,300.00 of framing labor estimated across four jobs
- ☐ Noted that code 0000 exists for office time and is excluded from every job roll-up