Labor is typically the second-largest cost on a C&I solar project, after materials. And unlike materials — where you get an invoice with a clear line item — labor costs are invisible until someone tracks them.
Most solar contractors track total hours per project. That's better than nothing, but it only tells you how much labor you used in total. It doesn't tell you where. Did racking take longer than budgeted? Was electrical work efficient? Did mobilization eat more hours than planned?
The answer is WBS-based time tracking: crews log hours against specific WBS codes so you can see exactly where labor is being spent, compare it to budget, and make informed decisions before costs get out of control.
The Problem with "Total Hours" Tracking
When crews log hours to a project without WBS codes, you get a single number: "We've spent 480 hours on the ABC Warehouse project." That number tells you almost nothing useful.
| Total Hours Only | WBS-Coded Hours | |
|---|---|---|
| What you know | 480 total hours used | 120 hrs racking, 160 hrs modules, 140 hrs electrical, 60 hrs other |
| Budget comparison | Total: 480 of 500 budgeted | Racking: 120 of 100 (20% over). Modules: 160 of 180 (under). Electrical: 140 of 160 (on track). |
| Actionable insight | We're close to budget — probably fine? | Racking is 20% over — investigate. Modules are efficient. Electrical is on track. |
| Future estimating | This project took 480 hours | Racking takes ~0.24 hrs/module. Electrical takes ~0.28 hrs/module. Use these rates for future bids. |
The difference is visibility. With WBS-coded hours, you can spot problems early, make better decisions, and build more accurate estimates for future projects.
How WBS Time Tracking Works
The concept is simple: every time a crew member logs hours, they assign those hours to a WBS code.
Define the WBS codes for field tracking
You don't need crews to track against every WBS code in the project. Focus on the construction-phase codes that represent distinct field activities. Typically 8–15 codes are enough for field time tracking.
Make the codes simple and memorable
Field crews aren't going to look up "WBS 1.4.2.3" on a spreadsheet. Use short, descriptive labels: "RACK" for racking, "MOD" for modules, "ELEC" for electrical, "INV" for inverter work. Map these labels to WBS codes in your system.
Track daily, not weekly
Hours logged at the end of the week are estimates at best. Daily time tracking — ideally at the end of each day — is far more accurate. A 5-minute daily entry beats a 30-minute Friday recall.
Review weekly
Pull a labor report every week showing hours by WBS code vs. budget. This is the same cadence as your cost report and schedule update — align all three.
Example: Field Time Tracking Codes
Here's a practical set of time tracking codes for a C&I solar construction project:
Code WBS Description
────────────────────────────────────────────────
MOB 1.4.1 Mobilization & staging
RACK 1.4.2 Racking installation
MOD 1.4.3 Module installation
ELEC 1.4.4 Electrical rough-in & wiring
INV 1.4.5 Inverter & switchgear
GND 1.4.6 Grounding
PUNCH 1.4.7 Punch list & corrections
COMM 1.5.1 Commissioning & testing
SAFETY — Safety meetings & training
WEATHER — Weather delays (no productive work)
REWORK — Rework & corrections
Include non-productive codes
Track weather delays, safety time, and rework separately. These aren't budgeted as productive work, but they're real hours that affect your cost per watt and labor productivity metrics. Separating them keeps your productive hour data clean.
What Good Time Tracking Data Gives You
Real-time labor cost visibility
When hours are coded to WBS activities, you can compare actual labor cost to budget at any point during the project. You don't need to wait until the project is done to know if labor is over budget.
WBS 1.4.2 — Racking Installation
─────────────────────────────────────────────
Budget: 100 hours × $55/hr = $5,500
Actual: 120 hours × $55/hr = $6,600
Variance: -$1,100 (20% over)
Status: Complete
─────────────────────────────────────────────
Root cause: Roof penetrations required
additional flashing work
not in original scope
Labor productivity metrics
Over multiple projects, WBS-coded time data builds a library of productivity rates:
average racking installation rate across 12 recent projects
These rates become the foundation of accurate estimating. Instead of guessing that racking will take "about a week," you can calculate: 500 modules × 0.24 hrs/module = 120 hours = 3 crew-days with a 5-person crew.
Earned value tracking
When you combine WBS-coded hours with percent-complete data, you can calculate earned value metrics:
- BCWP (Budgeted Cost of Work Performed): How much budget should you have spent for the work actually completed?
- ACWP (Actual Cost of Work Performed): How much did you actually spend?
- CPI (Cost Performance Index): BCWP ÷ ACWP. Above 1.0 = under budget. Below 1.0 = over budget.
These metrics give you a forward-looking view of project health, not just a backward-looking record of spending.
Getting Crews to Actually Do It
The biggest challenge with WBS time tracking isn't the system — it's adoption. Here's how to make it work:
Keep it simple
The #1 adoption killer: too many codes
If crews have to choose from 50 codes, they'll either guess wrong or stop trying. Keep field tracking codes to 8–15. You can always add detail at the project management level.
Make it fast
Time entry should take less than 2 minutes per day. If it takes longer, the tool or process is wrong. Mobile apps with tap-to-select codes are faster than typing into spreadsheets.
Explain the "why"
Crews will track time more accurately when they understand why it matters. "We use this data to bid future projects — if the data is wrong, we'll underbid and everyone loses" is more motivating than "because the PM said so."
Review the data with the team
Share labor reports with field supervisors. When they see the data being used for real decisions, they take collection more seriously. When they never hear about it again, they assume it doesn't matter.
Common Time Tracking Mistakes
Logging all hours to one code
When crews log everything to "Construction" or "General," the data is useless. This usually means the codes are too complex or the crew hasn't been trained on which code to use for which activity.
End-of-week batch entries
Monday's time logged on Friday is a guess. Daily entries are worth the effort — accuracy drops significantly with recall.
Not tracking non-productive time
If you don't track weather delays, safety meetings, and rework separately, your productive hour data will be inflated and your future estimates will be too low.
Not using the data
The worst time tracking mistake is collecting data and never analyzing it. If you're not running weekly labor reports, you're creating busy work for your crews with no payoff. Analyze the data, share the insights, and use it for future estimating.
Key Takeaways
- Track hours against WBS codes, not just total project hours — this is what gives you visibility into where labor is actually being spent
- Keep field tracking codes simple: 8–15 codes with short, descriptive labels
- Track daily, not weekly — recall accuracy drops significantly after 24 hours
- Separate non-productive time (weather, safety, rework) from productive hours
- Use the data for weekly labor reports, budget comparisons, and building productivity rates for future estimates
Frequently Asked Questions
What is WBS-based time tracking?
WBS-based time tracking means logging field hours against specific Work Breakdown Structure codes rather than just the overall project. Instead of "8 hours on the ABC project," a crew member logs "4 hours on racking (WBS 1.4.2) and 4 hours on electrical (WBS 1.4.4)." This gives project managers visibility into labor spending by activity.
How many time tracking codes should I use?
For field crews, 8–15 codes is the right range. Fewer than 8 doesn't give enough detail for meaningful analysis. More than 15 becomes too complex for daily field use and accuracy drops. Map these simplified codes to your full WBS structure in your project management system.
What's the best way to track time on a construction site?
Mobile apps with predefined WBS codes that crews can select with a tap are the most effective. Daily entry at the end of each shift is the right frequency. The key is making it fast (under 2 minutes) and simple (select from a short list, not type into a form).
How do I use time tracking data for future estimates?
Over multiple projects, WBS-coded hours build productivity rate benchmarks — for example, hours per module for installation, or hours per kW for electrical work. Use these rates to calculate labor estimates for new projects based on system size, rather than relying on gut feel or lump-sum guesses.