EnableYourData.com

KPI · Projects and time

Timesheet completion rate: formula and example.

Timesheet completion rate is the percentage of expected hours that employees have actually logged. You divide logged hours by available hours according to contract or rota. Without complete timesheets, utilisation, work in progress and invoices are all unreliable.

Timesheet completion rate formula

Logged hours ÷ expected hours × 100%

Worked example

In week 38 of 2026, the 12 members of Acme Groothandel's installation team were expected to log 12 × 40 = 480 hours between them. By Monday morning 444 hours had been logged. The timesheet completion rate is 444 ÷ 480 × 100% = 92.5%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher rate means you can trust every figure based on hours more. Measure at a fixed point, for example Monday morning for the previous week, so you also see how promptly time is logged. Low completion at month end leads to late or incomplete invoicing.

Pitfalls with timesheet completion rate

  • Deriving expected hours only from days on which someone logged time; take them from contract or rota, or empty days go missing.
  • Not counting leave and sickness as expected or logged time, which makes the rate look unfairly low.
  • Publishing the figure per person; discuss gaps directly with the employee instead.

SQL & DAX

Calculating timesheet completion 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
WITH per_day AS (
  SELECT employee_id, entry_date, SUM(hours) AS logged, MAX(available_hours) AS available
  FROM time_entries
  GROUP BY employee_id, entry_date
)
SELECT date_trunc('week', entry_date)::date AS week,
       employee_id,
       SUM(logged) AS hours_logged,
       SUM(available) AS hours_expected,
       ROUND(100.0 * SUM(logged) / NULLIF(SUM(available), 0), 1) AS completion_pct
FROM per_day
WHERE entry_date >= CURRENT_DATE - interval '8 weeks'
GROUP BY 1, 2
ORDER BY 1, completion_pct;
DAX · Power BI
Expected Hours = SUMX ( SUMMARIZE ( TimeEntries, TimeEntries[EmployeeId], TimeEntries[EntryDate] ), CALCULATE ( MAX ( TimeEntries[AvailableHours] ) ) )
Timesheet Completion % = DIVIDE ( SUM ( TimeEntries[Hours] ), [Expected Hours] )

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for timesheet completion 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 measure timesheet completion?

Divide the hours logged by the hours expected in the same period, based on contract or rota. Measure at a fixed point, such as Monday morning for the previous week. Count leave and sickness as logged time.

Why do complete timesheets matter?

Because invoices, utilisation, work in progress and project margins are all based on logged hours. Missing hours mean invoices that are too low or misleading management information. The later hours are logged, the less accurate they tend to be.

How can you improve timesheet compliance?

Make logging easy, agree a fixed deadline and send a reminder to anyone who falls behind. Show what the hours are used for, such as invoicing and planning. Then measure weekly whether completion improves.

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.