EnableYourData.com

KPI · HR

Absenteeism rate: formula and example.

The absenteeism rate is the share of available working time that employees are absent because of sickness. You divide the number of sick days by the number of available days, usually weighted by FTE. It is the best-known absence figure and the starting point for conversations about workload, wellbeing and cost.

Absenteeism rate formula

Sick days (FTE-weighted) ÷ available FTE days × 100%

Worked example

In 2025 Acme Groothandel averaged 128 FTE. With 260 working days that gives 128 × 260 = 33,280 available FTE days. 1,664 sick days were recorded. The absenteeism rate is 1,664 ÷ 33,280 × 100% = 5.0%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher rate means more working time is lost to sickness. Compare it with the same period last year, because absence moves with the seasons, and break it down by department to see where the difference lies. Always read it alongside absence frequency and average absence duration: lots of short spells call for a different response than a few long-term cases.

Pitfalls with absenteeism rate

  • Mixing working days and calendar days; decide which you count and stick to it.
  • Showing figures for teams of only a few people, so that colleagues who are off sick become identifiable.
  • Storing diagnoses or medical details in the data warehouse; an absence figure only needs dates and days.

SQL & DAX

Calculating absenteeism 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 months AS (
  SELECT generate_series(DATE '2025-01-01', DATE '2025-12-01', interval '1 month')::date AS month
),
available AS (
  SELECT m.month, SUM(e.fte) * 21 AS fte_days  -- assumption: 21 working days per month
  FROM months m
  JOIN employees e ON e.hire_date < m.month + interval '1 month'
   AND (e.termination_date IS NULL OR e.termination_date >= m.month)
  GROUP BY m.month
),
sick AS (
  SELECT date_trunc('month', start_date)::date AS month, SUM(sick_days) AS sick_days
  FROM absences
  GROUP BY 1
)
SELECT a.month, ROUND(100.0 * COALESCE(s.sick_days, 0) / NULLIF(a.fte_days, 0), 1) AS absenteeism_pct
FROM available a
LEFT JOIN sick s ON s.month = a.month
ORDER BY a.month;
DAX · Power BI
Sick Days = SUM ( Absences[SickDays] )
Absenteeism % =
VAR d = MAX ( 'Date'[Date] )
VAR ActiveFTE = SUMX ( FILTER ( ALL ( Employees ), Employees[HireDate] <= d && ( ISBLANK ( Employees[TerminationDate] ) || Employees[TerminationDate] > d ) ), Employees[FTE] )
VAR Workdays = CALCULATE ( COUNTROWS ( 'Date' ), 'Date'[IsWorkday] = TRUE () )
RETURN DIVIDE ( [Sick Days], ActiveFTE * Workdays )

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for absenteeism 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 the absenteeism rate?

Divide the number of sick days by the number of available days and multiply by 100%. Weight both by FTE so a part-timer does not count as much as a full-timer. Decide up front whether you use working days or calendar days.

Does maternity leave count towards absenteeism?

No, maternity leave is not sickness absence and should be left out of the absenteeism rate. Pregnancy-related illness is often recorded separately. State in your definition which types of absence you exclude.

What is a good absenteeism rate?

There is no single right number; it depends heavily on sector, type of work and age profile. Compare your rate mainly with your own history and between similar departments. A rising trend is a clearer signal than any single percentage.

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.