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.
KPI · Projects and time
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.
Logged hours ÷ expected hours × 100%
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.
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.
SQL & 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.
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;Expected Hours = SUMX ( SUMMARIZE ( TimeEntries, TimeEntries[EmployeeId], TimeEntries[EntryDate] ), CALCULATE ( MAX ( TimeEntries[AvailableHours] ) ) )
Timesheet Completion % = DIVIDE ( SUM ( TimeEntries[Hours] ), [Expected Hours] )In ENABLE
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.
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.
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.
With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.
FAQ
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.
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.
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.
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.