EnableYourData.com

KPI · HR

Overtime rate: formula and example.

Overtime rate is the number of overtime hours as a percentage of regular hours in a period. It shows how much extra work is done on top of normal staffing. Persistent overtime points to understaffing or peaks in demand and costs more per hour because of overtime premiums.

Overtime rate formula

Overtime hours in the period ÷ regular hours in the period × 100%

Worked example

In the third quarter of 2026 Acme Groothandel recorded 52,000 regular hours and 2,080 overtime hours. The overtime rate is 2,080 ÷ 52,000 × 100% = 4.0%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher rate means there is more work than the core team can handle. Look by department and by month: temporary peaks, such as the busy weeks before the holidays in the warehouse, are different from structural overtime. Read it alongside absence and flexible staffing; sustained overtime can lead to more sickness over time.

Pitfalls with overtime rate

  • Not recording overtime that is compensated with time off in lieu, so the rate looks too low.
  • Mixing extra hours worked by part-timers with hours above the full-time standard.
  • Making overtime per person widely visible; keep breakdowns at team level with enough people.

SQL & DAX

Calculating overtime rate in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT p.period_month,
       e.department,
       SUM(p.overtime_hours) AS overtime_hours,
       SUM(p.regular_hours) AS regular_hours,
       ROUND(100.0 * SUM(p.overtime_hours) / NULLIF(SUM(p.regular_hours), 0), 1) AS overtime_pct
FROM payroll p
JOIN employees e ON e.employee_id = p.employee_id
WHERE p.period_month >= DATE '2026-01-01'
GROUP BY p.period_month, e.department
ORDER BY p.period_month, overtime_pct DESC;
DAX · Power BI
Overtime Hours = SUM ( Payroll[OvertimeHours] )
Overtime % = DIVIDE ( [Overtime Hours], SUM ( Payroll[RegularHours] ) )

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for overtime rate per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate overtime rate?

Divide the overtime hours worked by the regular hours in the same period and multiply by 100%. Both usually come from payroll or time tracking. Record whether extra hours worked by part-timers are included.

Do part-timers' extra hours count as overtime?

Not always. Hours a part-timer works above their contract but within the full-time standard are often paid without an overtime premium. Record them separately from hours above the full-time standard so the rate stays comparable.

When does overtime become a problem?

Overtime becomes a problem when it is structural rather than a response to temporary peaks. Warning signs are a high rate over several months, the same people every time and rising absence. At that point extra staff or different planning is often cheaper.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.