What is backlog?

The queue of work or orders that have been accepted and are waiting to be completed, and whether it grows or shrinks.

Backlog diagram example

Public diagram from the Machinations Community. Open it on its own page

A backlog is the set of orders, requests or tasks that have been accepted but not yet finished. It shows whether a system keeps up with what is asked of it. A steady backlog means the system is balanced; a growing one means work arrives faster than it is completed.

How it works

The backlog is a stock that fills with arrivals and empties with completions. If arrivals are 100 a week and completions are 90, the backlog grows by 10 each week without limit. The waiting time for new work is the backlog divided by the completion rate, so a large backlog also means a long delay for customers, which can lead to cancellations or workarounds.

A backlog is not always bad. A small, steady one keeps workers busy and smooths out uneven arrivals. The risk appears when it grows without bound or when its age profile gets old, because old items are more likely to be out of date or abandoned.

Example

Say a repair shop receives 40 jobs a week and can finish 35. The backlog grows by 5 a week. After 8 weeks it holds 40 jobs. At 35 completions a week, a job arriving then waits about 40 / 35 = 1.1 weeks. To clear 40 jobs in 8 weeks, the shop would need to finish 40 + 5 = 45 a week, so 10 more than now. The numbers are an illustration.

How to model it in Machinations

Use a Source for incoming orders, a Pool for the backlog and a Drain or Converter for completed work, with the completion rate on its connection. Add a Register that divides the Pool by the completion rate to show waiting time. Make the arrival and completion rates Levers. Play and chart the Pool to see it hold steady, shrink or grow.

See backlog in a system you can Play

Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.