EnableYourData.com

KPI · Customer service

Ticket backlog: formula and example.

The ticket backlog is the number of tickets that have not yet been resolved at a given moment. You read it as a snapshot at a fixed time, for example every morning, and usually split it by age and status. A growing backlog means more is coming in than the team is resolving, and customers will start waiting longer.

Ticket backlog formula

Closing backlog = opening backlog + new tickets − resolved tickets; aged share = tickets older than the target ÷ total backlog × 100%

Worked example

Acme Groothandel started the week with 180 open tickets. 600 new tickets came in and 620 were resolved. The backlog at the end of the week is 180 + 600 − 620 = 160 tickets. Of these, 40 were older than three days, or 40 ÷ 160 × 100% = 25%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A stable or falling backlog means the team is keeping up with demand. Look not only at the number but especially at the age: a small backlog with many old tickets is more worrying than a larger one with only fresh tickets. Compare the backlog with average daily inflow to see how many days of work are waiting.

Pitfalls with ticket backlog

  • Counting tickets waiting on the customer as the team's workload.
  • Showing only the count without an age breakdown.
  • Taking the snapshot at different times, for example in the morning one day and at the end of the day the next.

SQL & DAX

Calculating ticket backlog 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 channel,
       COUNT(*) AS open_tickets,
       COUNT(*) FILTER (WHERE created_at < now() - interval '3 days') AS older_than_3_days,
       ROUND(100.0 * COUNT(*) FILTER (WHERE created_at < now() - interval '3 days')
             / NULLIF(COUNT(*), 0), 1) AS aged_pct,
       COUNT(*) FILTER (WHERE sla_due_at < now()) AS past_sla
FROM tickets
WHERE resolved_at IS NULL
GROUP BY channel
ORDER BY open_tickets DESC;
DAX · Power BI
Open Tickets = CALCULATE(COUNTROWS(Tickets), ISBLANK(Tickets[ResolvedAt]))

Aged Backlog % =
DIVIDE(CALCULATE(COUNTROWS(Tickets), ISBLANK(Tickets[ResolvedAt]), Tickets[CreatedAt] < NOW() - 3), [Open Tickets])

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for ticket backlog 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 ticket backlog?

The backlog is the number of tickets still open at a given moment. You can also derive it: opening backlog plus new tickets minus resolved tickets. With 180 + 600 − 620 you get 160 open tickets.

What is the difference between backlog and workload?

The backlog includes all open tickets, the workload only the tickets the team needs to act on now. Tickets waiting on the customer or a supplier belong in the backlog but not in the workload.

How big should a ticket backlog be?

That depends on your inflow and service standards, so express the backlog in days of work: divide it by average daily inflow. With 160 open tickets and 120 new tickets per working day, there is just over a day of work waiting. Pay most attention to tickets older than your own target.

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.