I'm an electrical contractor, and if you ask me where jobs go wrong, it's almost never the materials. Copper is copper; the price is the price. It's labor. Labor is the number you estimated based on a feel, the number that drifts an hour here and a half-day there, and the number you don't truly know until the job's over — unless you measure it. The tool for measuring it is called performance factor, and once you can read it, you'll wonder how you ran jobs without it.

Three numbers: budgeted, earned, burned

Everything starts with three hour counts. Keep them straight and the rest is easy:

  • Budgeted hours — what you estimated the phase would take. Say rough-in is bid at 640 hours.
  • Burned hours — what you've actually spent so far, off the timecards. Say 568 hours so far.
  • Earned hours — what you've actually accomplished, in budget terms. If rough-in is 60% physically complete, you've earned 60% of 640 = 384 hours... wait, that doesn't sound right next to 568 burned. Hold that thought — that mismatch is exactly the alarm.

Earned hours is the one people miss. It's not how long you've worked; it's how much of the budgeted work you've actually banked. You earn budgeted hours by completing work, not by spending time.

Performance factor: the one number

Performance factor (PF) is just earned hours divided by burned hours:

PF = earned hours ÷ burned hours. Above 1.0, you're beating the budget. Below 1.0, you're losing.

Let's make it concrete with a phase that's going well:

  • Budgeted: 640 hrs
  • Burned: 568 hrs
  • Physically ~94% complete → earned = 0.94 × 640 = 602 hrs
  • PF = 602 ÷ 568 = 1.06

A PF of 1.06 means every hour your crew works is producing 1.06 hours of budgeted value — you're running about 6% ahead. Now flip it: if you'd burned 568 hours and were only 60% done (earned 384), your PF would be 0.68, and you'd be looking at a phase that's going to blow its budget by half. Same hours on the clock. Completely different job. PF is what tells the two apart while you can still react.

Projecting where the job lands

Once you have PF, you can see the finish line from the middle of the job. If you're running at PF 0.68 and nothing changes, your projected hours at completion are simply budget ÷ PF. On a 640-hour phase that's 640 ÷ 0.68 ≈ 940 hours — a 300-hour overrun you can see coming weeks out instead of discovering at closeout. That projection is the difference between "we need to change something on this phase" said on week two, and "well, we lost money on that one" said at the wrap party.

Read it weekly, while you can still steer

PF is only useful if it's current, which means two things have to be true every week: the hours have to be captured (timecards in, not reconstructed Friday from memory), and someone has to set the honest percent-complete on each phase. That second one trips people up — be straight about it. Crews and PMs both have a gentle bias toward "yeah, we're about 80% there" when it's really 65%. An inflated percent-complete inflates your earned hours and makes a bleeding job look healthy. The discipline is worth it: an honest PF read every Friday turns labor from the thing you find out about into the thing you manage.

Common traps

  • Guessing percent-complete generously. Optimism here hides exactly the problem PF exists to surface. Walk it, don't wish it.
  • Burned hours that lag. If timecards come in late, your PF is stale and so is every decision based on it.
  • Reading PF at the job level only. A healthy overall PF can hide a rough-in phase that's underwater. Read it by phase.

The one-minute version

  • Labor is where jobs quietly bleed; PF is how you see it mid-job.
  • Earned hours = budgeted work actually completed, not time spent.
  • PF = earned ÷ burned. Above 1.0 you're ahead; below, you're losing.
  • Budget ÷ PF projects your finish — read it weekly, by phase, with honest percent-complete.