Plain-language questions
Ask for zero absence 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 · HR
Zero absence rate is the percentage of employees who did not report sick at all during a period, usually a year. You only include employees who were employed for the whole period. It complements the absenteeism rate by showing how widely absence is spread across the organisation.
Employees with no absence spell in the period ÷ employees employed for the whole period × 100%
126 Acme Groothandel employees were employed throughout 2025. 63 of them did not report sick once that year. The zero absence rate is 63 ÷ 126 × 100% = 50.0%.
Fictitious figures for Acme Groothandel, a sample wholesaler.
A higher rate means absence is concentrated among a smaller group of employees. If the zero absence rate falls while the absenteeism rate stays flat, more people are taking short spells off sick. Compare by year and by departments of a reasonable size.
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 full_year AS (
SELECT employee_id FROM employees
WHERE hire_date <= DATE '2025-01-01'
AND (termination_date IS NULL OR termination_date > DATE '2025-12-31')
),
sick AS (
SELECT DISTINCT employee_id FROM absences
WHERE start_date <= DATE '2025-12-31'
AND COALESCE(end_date, DATE '2025-12-31') >= DATE '2025-01-01'
)
SELECT COUNT(*) AS employees_full_year,
COUNT(*) FILTER (WHERE s.employee_id IS NULL) AS zero_absence,
ROUND(100.0 * COUNT(*) FILTER (WHERE s.employee_id IS NULL) / NULLIF(COUNT(*), 0), 1) AS zero_absence_pct
FROM full_year f
LEFT JOIN sick s ON s.employee_id = f.employee_id;Zero Absence % =
VAR StartDate = MIN ( 'Date'[Date] )
VAR EndDate = MAX ( 'Date'[Date] )
VAR FullPeriod = FILTER ( ALL ( Employees ), Employees[HireDate] <= StartDate && ( ISBLANK ( Employees[TerminationDate] ) || Employees[TerminationDate] > EndDate ) )
VAR NoAbsence = FILTER ( FullPeriod, ISEMPTY ( FILTER ( ALL ( Absences ), Absences[EmployeeId] = Employees[EmployeeId] && Absences[StartDate] <= EndDate && ( ISBLANK ( Absences[EndDate] ) || Absences[EndDate] >= StartDate ) ) ) )
RETURN DIVIDE ( COUNTROWS ( NoAbsence ), COUNTROWS ( FullPeriod ) )In ENABLE
Ask for zero absence 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
The zero absence rate is the percentage of employees who had no sickness absence in a period. It is usually calculated over a calendar year and only for people employed for the whole year. It complements the absenteeism rate and absence frequency.
Identify the employees who were employed for the whole period and count how many had no absence spell at all. Divide that number by the total and multiply by 100%. Spells that ran into the period also count as absence.
It is generally discouraged. A reward can push people to work while ill, leading to more absence in the longer term. Use the zero absence rate as an organisation-level figure, not as a measure of individual performance.
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.