Plain-language questions
Ask for billable utilisation 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
Billable utilisation is the percentage of available hours spent on work you can bill to clients. You divide billable hours by available hours, after deducting leave and public holidays. For any organisation that sells time, billable utilisation is one of the key drivers of revenue and margin.
Billable hours ÷ available hours × 100%
Acme Groothandel's installation team, which fits out warehouses for customers, has 12 members. In September 2026 they had 1,680 available hours between them after leave and public holidays, of which 1,260 were billable. Billable utilisation is 1,260 ÷ 1,680 × 100% = 75.0%.
Fictitious figures for Acme Groothandel, a sample wholesaler.
Higher utilisation means more time is generating revenue. Not everyone can be equally billable: a team lead has more internal duties than a fitter, so set targets per role. Very high utilisation over a long period leaves little room for training, handovers and improvement; compare with your own target and previous months.
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) FILTER (WHERE billable) AS billable_hours,
MAX(available_hours) AS available_hours
FROM time_entries
GROUP BY employee_id, entry_date
)
SELECT date_trunc('month', entry_date)::date AS month,
SUM(billable_hours) AS billable_hours,
SUM(available_hours) AS available_hours,
ROUND(100.0 * SUM(billable_hours) / NULLIF(SUM(available_hours), 0), 1) AS billable_utilisation_pct
FROM per_day
GROUP BY 1
ORDER BY 1;Available Hours = SUMX ( SUMMARIZE ( TimeEntries, TimeEntries[EmployeeId], TimeEntries[EntryDate] ), CALCULATE ( MAX ( TimeEntries[AvailableHours] ) ) )
Billable Utilisation % = DIVIDE ( CALCULATE ( SUM ( TimeEntries[Hours] ), TimeEntries[Billable] = TRUE () ), [Available Hours] )In ENABLE
Ask for billable utilisation 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 billable hours by available hours in the same period and multiply by 100%. Available hours are usually contracted hours minus leave, public holidays and sickness. Record that definition, because it determines the percentage.
It differs by role and organisation, so set a target for each role. A specialist doing delivery work can reach a higher rate than someone with management or sales duties. Compare mainly with your target and with earlier periods.
Utilisation sometimes includes all productive work, including internal projects, while billable utilisation only counts hours you can invoice. Both are useful, but they answer different questions. Agree which one you report and what goes into it.
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.