PlantOps BI

KPI Library / Labor

Overtime Percentage

Formula: Overtime hours ÷ total hours worked
Typical range: Under 5% is typical for a well-staffed plant; sustained overtime above 10% usually signals structural understaffing, not a temporary surge

Overtime percentage measures what share of total hours worked were paid at an overtime rate, calculated as overtime hours divided by total hours worked over the same period. It’s both a labor cost metric and an early warning sign: overtime is usually the cheapest way to cover a short-term demand spike and the most expensive way to run a plant permanently understaffed.

What good looks like

A well-staffed plant running normal demand variability typically keeps overtime under 5%. Overtime above 10% for a sustained stretch, meaning multiple consecutive months rather than one busy quarter, usually means headcount hasn’t kept pace with demand and the plant is quietly paying a premium to cover a staffing gap that a hiring plan would fix more cheaply.

The number gets managed rather than fixed when it’s reported only as a plant-wide average. A plant can hold a healthy 4% average while one line or one shift runs chronic 20%+ overtime that never surfaces in the summary. Report overtime by department and by shift, not just at the plant level, or the metric will keep telling leadership everything is fine while the people actually working the extra hours know it isn’t.

Overtime Percentage in Power BI (DAX)

With a labor hours fact carrying regular and overtime hours by employee, line, and shift:

Total Hours =
SUM ( fact_labor_hours[regular_hours] ) + SUM ( fact_labor_hours[overtime_hours] )

Overtime Hours =
SUM ( fact_labor_hours[overtime_hours] )

Overtime % =
DIVIDE ( [Overtime Hours], [Total Hours] )

Add a planned_flag column to fact_labor_hours and split Overtime % into planned (a scheduled Saturday shift) versus unplanned (reactive coverage for a callout or a breakdown). They’re different problems with different fixes, and blending them hides which one is actually growing.

Common mistakes

  1. Reporting only a plant-wide average. It hides chronic overtime concentrated in a single line, shift, or department.
  2. Not separating planned from unplanned overtime. A scheduled extra shift to hit a demand spike is a capacity decision; reactive overtime covering absenteeism or turnover is a staffing problem, and they need different responses.
  3. Ignoring the burnout lag. Overtime percentage can look stable for months before quality defects and turnover start climbing behind it; don’t wait for those lagging metrics to confirm what the overtime trend already showed.