EnableYourData.com

KPI · Projects and time

Time write-off rate: formula and example.

Time write-off rate is the share of the value of billable hours that is written off and therefore never invoiced. You divide the amount written off by the value of billable hours at rate. It shows how much work you give away, for example through overruns, rework or goodwill.

Time write-off rate formula

Amount written off ÷ (billable hours × hourly rate) × 100%

Worked example

In September 2026 Acme Groothandel's installation team logged billable hours worth €119,700. €5,985 of this was written off. The time write-off rate is €5,985 ÷ €119,700 × 100% = 5.0%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A higher write-off rate means more logged work goes unpaid. Write-offs are one part of the gap between billable hours and invoiced revenue, alongside discounts and work still in progress. Look by project, client and reason: recurring write-offs on the same type of work point to an estimating or scope problem.

Pitfalls with time write-off rate

  • Not recording write-offs as a separate item but quietly deleting hours or marking them non-billable.
  • Not recording a reason with each write-off, so you cannot learn from the causes.
  • Writing off only at the end of the project, so work in progress is overstated for a long time.

SQL & DAX

Calculating time write-off 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
SELECT date_trunc('month', entry_date)::date AS month,
       SUM(hours * hourly_rate) FILTER (WHERE billable) AS value_at_rate,
       SUM(written_off_amount) AS written_off,
       ROUND(100.0 * SUM(written_off_amount)
             / NULLIF(SUM(hours * hourly_rate) FILTER (WHERE billable), 0), 1) AS write_off_pct
FROM time_entries
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Written Off = SUM ( TimeEntries[WrittenOffAmount] )
Write-off % = DIVIDE ( [Written Off], SUMX ( FILTER ( TimeEntries, TimeEntries[Billable] = TRUE () ), TimeEntries[Hours] * TimeEntries[HourlyRate] ) )

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for time write-off 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 write-off rate?

Divide the value of written-off time by the value of all billable hours at rate in the same period and multiply by 100%. You need time tracking that records write-offs separately. Report it per project and client as well.

What is the difference between write-offs and realisation rate?

The write-off rate only measures what is deliberately written off. Realisation rate measures how much of the time value is eventually invoiced, so it also includes discounts and rate differences. Low realisation with few write-offs points to discounts or rates that are too low.

Why is time written off?

Common reasons are overruns on a fixed price, fixing your own mistakes, onboarding time for new staff and goodwill towards the client. Record the reason with every write-off. You will then see which cause costs the most revenue.

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.