Queue Hygiene: A Weekly Routine That Keeps the List Honest
There is a whiteboard above the desk at Fenwick Timber. On it, in marker that has survived two office moves, somebody wrote "QUEUE OK?" with a box beside it for a tick. Priya, who took over the desk in the spring, has never seen the box empty. Whoever wrote it did not write down what OK meant, so it has always been OK. It was OK through the week the unassigned view reached thirty, and through the month a leaver's account quietly held nineteen tickets. It was OK through the quarter the waiting view became the largest list on the desk. The board was asking the right question. Nobody had given it a way to answer.
Queue hygiene is the set of small, repeated looks that keep the queue a true list of what is waiting. It is a glance every day, a review every week, a check every month. Each is short enough to do and written down enough to survive the person who started it. It is the toothbrush, not the dentist. The dentist is the backlog dig-out, and this routine is what makes the dig-out a one-time event instead of an annual one. This article is part of our Queues & Routing series, and it is the routine.
It covers why hygiene is repetition rather than a project. Next come the standing views the routine reads, then the daily glance: five numbers in two minutes, with what each means. The article covers the weekly review in three parts, unassigned, oldest and waiting, then the monthly routing review. Next is one week at Fenwick Timber worked through with real numbers. A short war story and the weekly routine card to pin above the desk follow, in that order.
Hygiene Is Repetition, Not a Project
A queue goes wrong by small amounts, daily, and the only thing that keeps pace with small daily amounts is a small daily look. A backlog does not arrive. It accumulates, politely, one unread Friday at a time. There is a ticket left unassigned over a weekend, and a waiting ticket with no date. There is a stray in the wrong department that everybody has seen and nobody has moved. None of them is a crisis on the day. All of them together, in three months, are a dig-out, and the dig-out is a fortnight of the whole desk's time. The arithmetic favours the toothbrush by a wide margin.
The routine works because it is cheap enough to do on a bad day. A twenty-minute weekly review will be done on the Friday of a bad week. A two-hour one will be postponed to Monday, then to "when things calm down". Things do not calm down, because the review was the thing that calmed them. Design every part of this routine for the worst week of the quarter, not the best. A routine you can do in the time it takes to make tea is one you will do. One that needs a meeting is one you will schedule.
It also works because it belongs to the desk rather than to a person. A routine that lives in one manager's head stops the day that manager goes on leave and ends the day they resign. The gap is invisible until the dig-out. Write it on a card and give each part a named owner on a rota. Have the sweeper post one line in the team chat when it is done, so that a missed day is visible by its silence. What stops a backlog rebuilding after a dig-out is exactly this, and the longer argument is in Keeping the Backlog From Rebuilding.
The Standing Views You Will Use
The routine reads five views, and they are the standing views every desk should already have. They are Unassigned, Mine, Waiting on the requester, Due soon and overdue, and Oldest open. How to build them in any tool, and why they are lenses on one list rather than separate lists, is in What a Queue Is For. If you do not have them yet, build them first; the routine without the views is a set of good intentions with a card.
One note on tools. Some can sort the open list by age and some only by last update. And the difference changes how the weekly review is read, not whether it can be. If yours sorts by age, the oldest-open view is a sort. If it only orders by last update, the oldest tickets are at the bottom, and the review reads the list from the bottom up. If it pages, know how many pages the full list runs to. In that case, the last page is where the oldest tickets live and the last page is the one nobody opens. None of this needs a report; it needs the filters your tool already has and the habit of applying them.
The Daily Glance: Five Numbers in Two Minutes
The daily glance is five numbers read from the dashboard or the view counts, at the same time every morning, without opening a ticket. Unassigned, with the age of the oldest. Overdue. Due within the hour. Waiting on the requester. Reopened since yesterday. Most tools put all five on the first screen or beside the view names; where yours does not, the five filters take a minute. The glance is not a review. It is a reading of the gauges, and its output is at most two actions. Those actions are taking or assigning the oldest unassigned ticket, and replying to anything overdue before the day begins.
Each number has a healthy range and a point at which it asks for something. The table gives both, for a desk of two to ten people; a one-person desk uses the same table with smaller numbers. The "act when" column is deliberately loose, because the point is not a target but a reflex. A number outside its range is a two-minute action now rather than a twenty-minute one on Friday.
| Number | What it tells you | Healthy | Act when | The action |
|---|---|---|---|---|
| Unassigned, and the oldest's age | Requests nobody has promised to work | A few, none older than a few hours; more on Monday morning | Any ticket older than a working day, or the count is not falling by 10:00 | Take it or name a person, on the spot |
| Overdue | Promises already broken | Zero most mornings | Any | Reply with the three-sentence message before anything else |
| Due within the hour | Promises about to break | Zero or one | Two or more | Reply or warn on each before it turns red |
| Waiting on the requester | Tickets whose next step is theirs | Steady; roughly a third of open tickets or fewer | Rising for a week; or larger than active | Note it for Friday; the weekly review reads this view in full |
| Reopened since yesterday | Closes that were not fixes | Zero or one | Two or more, or the same ticket twice | Read the reopened ticket's last reply; assign to someone who has not touched it |
Make the glance one person's job each day on a rota and have them post the five numbers in the team chat. "Mon 08:35: unassigned 7 (oldest Fri 17:50), overdue 2, due soon 3, waiting 11, reopened 1. Taking the oldest three." Fourteen words, and the whole desk knows the shape of the morning. A desk that posts those numbers every day will notice a trend a week before the weekly review would. That desk will never again wonder whether the whiteboard is telling the truth.
The Weekly Review, Part One: Unassigned
The weekly review is twenty minutes, on a fixed afternoon, at the end of the week. And it reads three views in full: unassigned, oldest open, and waiting. Friday at 15:00 is the usual slot, because it closes the week rather than opening the next one. That slot also means a ticket found on Friday gets a reply before the weekend. Do the Friday review on Friday. Not Monday. Not "first thing next week". A review moved to Monday is a review done after the weekend has aged everything by two days.
Part one is every unassigned ticket, in every department, read from the oldest. The daily glance has already kept this short, so the full read is usually a handful. For each, the question is why it is still here on Friday, and the answers sort into three. It belongs to another department: move it, with a note, and tell the requester. It belongs here and nobody took it: name a person now, through the tool, and ask why the sweep left it. It is not really a request: a duplicate, a bounce that became a ticket, a test. In that case, close it with a reply or merge it, never delete it, because next week's review will want to know where it went.
Write down the count and the oldest age before you start, because the trend is the finding. Three unassigned on Friday afternoon with the oldest from Thursday is a desk that is keeping up. Three on Friday with one from last Friday is a ticket the whole desk has read and left five times, and the question is not about the ticket.
The Weekly Review, Part Two: Oldest
Part two is the ten oldest open tickets on the desk, regardless of owner or status, read from the oldest. Not the whole list, ten, because ten is what fits in the time and because the ten oldest are where the trouble lives. For each, three questions: is it still real, what is the next step, and when? Each ticket leaves the review with exactly one of three outcomes. Work it: a named owner and a day next week. Wait for it: a dated follow-up and a status that says so. The third outcome is to close it with a reply. That is because the requester has left, the thing was replaced, or nobody can say what it is waiting for and the requester, asked, does not either.
The honest closing is the one people avoid, so say it plainly. A ticket that is forty days old, whose last entry is the desk asking a question thirty days ago, is not being worked. Keeping it open does not make it so. Reply, say what you found, ask whether it is still needed, and close it if the answer is silence after the follow-up interval. The closing reply itself, and what it should say so the requester can reopen it if they need to, belongs to the Closing Tickets Properly series. The weekly review's job is only to make sure the decision gets made.
Age bands make the ten easier to talk about than raw days, and most tools can show a backlog-by-age report that gives you the bands directly. Where yours cannot, export the open tickets with their opened date to a spreadsheet and put the opened date in column B. Two formulas then do the work: one for the age in days in column C, one for the band in column D.
AGE BAND IN A SPREADSHEET (opened date in column B, row 2 onwards) C2: =INT(TODAY()-B2) D2: =IF(C2<=2,"0-2 days",IF(C2<=7,"3-7 days",IF(C2<=30,"8-30 days","over 30"))) Fill both down, then sort by column C, largest first.
The top ten rows after the sort are your part two. The whole export takes three minutes the first time and one the second. Reading an aging report properly, including what the bands say about the desk rather than the tickets, is in Reading an Aging Report.
The Weekly Review, Part Three: Waiting
Part three is the waiting view read in full, oldest update first, with the question "what are we waiting for, and since when?" asked of every ticket. The daily glance watches the count; the weekly review opens the tickets. That is because a waiting ticket hides its age behind its status and only a read will find it. Sort the answers into three piles. Waiting on the requester past the follow-up interval: chase, with a message that gives them a reason to answer. Waiting on a supplier past the date they promised: chase the supplier and tell the requester the new date. Waiting with no date and no clear thing being waited for: back to active, with an owner, today.
The chase message matters more than the chase. "Just checking in" produces silence; a message that says what will happen if they do not answer, and by when, produces replies. "I need the error message to go further; if I do not hear back by Wednesday I will close this and you can reopen it any time by replying." The wording that gets answers, and the number of chases before closing, is in Follow-Up Messages That Get Replies. The review's job is to make sure every waiting ticket has had one on time.
Check the clock while you are here, once, and write the answer on the card. Some tools pause the deadline clock in a waiting status, some do not, and some pause on one status and not another. Put a ticket on hold over a weekend and read the due time on Monday. If the clock runs, waiting tickets go overdue on their own and the daily overdue number will find them. If it pauses, the weekly read of the waiting view is the only thing that ever will. In that case, the weekly read cannot be skipped.
The Monthly Routing Review
The monthly routing review is fifteen minutes on the last working day. And it looks at the plumbing rather than the tickets: whether requests are landing in the right place and whether anything is leaking. Five checks. Count transfers between departments for the month, by direction; most tools show a transfer in the ticket's history. And a search plus a tally in a spreadsheet does the rest. Read the held-mail queue, if your tool screens incoming mail and holds doubtful messages for a person, and approve or discard everything in it. Count the strays in the default department, the tickets that landed there because no door routed them anywhere better. Send one test message to every address and alias and read which queue it appears in. And filter the open list by the name of anyone who left in the last ninety days.
Each check has one fix attached. Transfers that flow one way point at one door, and the door gets a clearer form choice or a poster. Held mail that contained a real request points at a screening rule that is too broad, and the rule gets narrowed or deleted. Strays in the default point at a missing door. A test message that lands in the wrong queue points at a forwarder, which gets corrected the same day. A leaver's name with tickets on it points at the exit checklist, which gets the line added. The mechanics behind all five are in Routing by Department, Form and Mailbox.
Record the five numbers on the card beside last month's, because the monthly review is the only part of the routine where the trend takes months to show. Fourteen transfers a month, then nine, then four, is a form that got better. Four, then nine, then fourteen, is a new team that nobody told about the addresses. (The review takes fifteen minutes. The meeting about whether to have the review takes forty.)
One Week at Fenwick Timber, Worked Through
Here is the routine as Priya ran it in her third week, on a desk of three: Priya, Tomas and Omar. They supported a timber merchant with two yards and an office. The numbers are from the chat posts and the Friday sheet, and they are ordinary, which is the point. Monday's glance at 08:35 showed seven unassigned, the oldest from Friday at 17:50. It showed two overdue, three due within the hour, eleven waiting on the requester, and one reopened. Priya and Tomas took three each and Omar took one. The two overdue were weekend tickets and both had a reply by 09:00. The reopened ticket, a printer that had been "fixed" on Thursday, went to Tomas, who had not touched it the first time.
Tuesday was quiet: two unassigned, the oldest forty minutes, nothing overdue, one due soon, twelve waiting, none reopened. Wednesday showed a lunchtime spike, four unassigned with the oldest at three hours, and one overdue. The overdue ticket turned out to be one Omar had taken on Monday and not opened since. Omar sent a holding reply with a time and released two other tickets he was not going to reach. The desk learned something about the holding ceiling without anybody being told off. Thursday: one unassigned, twenty-five minutes old, nothing overdue, fourteen waiting, one reopened.
Friday at 15:00 Priya ran the review from the card. Part one found one unassigned ticket, a facilities stray from Thursday about a yard gate, moved with a note. Part two read the ten oldest, aged 41, 33, 29, 22, 19, 17, 15, 12, 11 and 10 days. Three were closed with a reply, one because the requester had left and two because the thing had been replaced. Four were given a follow-up date and a chase. Three got a named owner and a day next week. Part three read all fourteen waiting tickets. Five were past the three-day follow-up interval and were chased. Two had no date and went back to active with Tomas. One waiting on a supplier was past the promised date. The supplier was chased while the requester was told the new date. Priya posted the line at 15:25: "Weekly done: 1 moved, 3 closed, 4 dated, 3 owned, 6 chased, 2 reactivated." The whiteboard got its first honest tick.
| Day | Unassigned (oldest) | Overdue | Due soon | Waiting | Reopened | What was done |
|---|---|---|---|---|---|---|
| Monday 08:35 | 7 (Fri 17:50) | 2 | 3 | 11 | 1 | Seven taken by 09:10; two overdue replied to by 09:00; reopened ticket to a fresh owner |
| Tuesday 08:30 | 2 (40 min) | 0 | 1 | 12 | 0 | Both taken; nothing else |
| Wednesday 08:40 | 4 (3 h) | 1 | 0 | 12 | 0 | Holding reply on the overdue ticket; two tickets released to the team queue |
| Thursday 08:30 | 1 (25 min) | 0 | 0 | 14 | 1 | Taken; reopened ticket read and reassigned |
| Friday 15:00 review | 1 stray | 0 | 0 | 14 read in full | 0 | 1 moved, 3 closed, 4 dated, 3 owned, 6 chased, 2 reactivated |
At the end of the month Priya ran the routing review. There were fourteen transfers, nine of them from IT to facilities, all from people who had written to the old helpdesk address about the yards. So the facilities address went on the yard noticeboards. Three messages in the held-mail queue, one of them a real request from a new supplier's domain, six days old, approved and apologised for. Eleven strays in the default department out of 187 tickets for the month. Every test message landed where it should. One leaver's account, checked, held nothing, because the exit checklist had been fixed in the spring. The whole month's hygiene came to about two hours of one person's time, spread so thinly that nobody noticed it being spent.
Remember: the routine must be short enough to do on the worst day of the quarter and written down well enough to survive the person who started it. Two minutes daily, twenty weekly, fifteen monthly, one line in the chat each time.
A Short War Story: The Quarter Nobody Looked at Tollgate Foods
Tollgate Foods ran a four-person desk whose manager, Hana, did a weekly review every Friday from a sheet in her own notebook. When Hana left in the spring the sheet left with her, because nobody else had ever seen it. The desk kept answering tickets, and the numbers on the dashboard stayed roughly where they had been. Nobody read the views that Hana had read. By the end of the quarter there were 212 open tickets, sixty-one of them waiting on the requester for more than a month. Nineteen of them were still assigned to Hana's account. One was a request from the buying team for access to a new supplier's ordering portal. It had been waiting seven weeks in a status called Pending with a note that said "chasing". The buying team found out the portal access had never been set up on the morning the old ordering method was switched off. They spent two days keying orders by hand while the desk set it up in an afternoon. The cost was two days of four buyers' time and a missed ordering window with one supplier. The buying manager described that, in a meeting the desk was invited to, as "avoidable". Tollgate wrote the routine on a card, put the three parts on a rota, and started posting the numbers in the chat. The routine is what the desk does when nobody is checking, and it has to belong to the desk, not to whoever happens to be the manager.
The Weekly Routine Card
The card is the whole routine on one page: the daily glance, the weekly review, the monthly routing check. It has blanks for the times, the names and the numbers. Fill it in, print it, and put it where the whiteboard used to be. The lines for the chat are at the bottom of each part, because the line is how a missed day becomes visible. Keep the completed Friday sheets together; after a month the trend across them is the only queue report a small desk needs.
QUEUE HYGIENE — THE ROUTINE CARD
Desk: ______________________ Rota owner: ____________ Clock pauses on hold? [ ] yes [ ] no
DAILY GLANCE (2 minutes, at ____:____, sweeper on rota)
Unassigned: ____ oldest: ________ Overdue: ____ Due within the hour: ____
Waiting on requester: ____ Reopened since yesterday: ____
Actions: [ ] oldest unassigned taken or named [ ] every overdue ticket replied to
Chat line: "____ ____:____: unassigned __ (oldest __), overdue __, due soon __,
waiting __, reopened __. Taking ______."
WEEKLY REVIEW (20 minutes, every ____________ at ____:____, by ____________)
Part 1: UNASSIGNED, every department, oldest first
Count: ____ Oldest: ____ days
[ ] moved to another department: ____ [ ] named an owner: ____ [ ] closed or merged: ____
Part 2: TEN OLDEST OPEN TICKETS, any owner, any status
Ages: ____ ____ ____ ____ ____ ____ ____ ____ ____ ____
[ ] work it (owner + day): ____ [ ] wait for it (dated): ____ [ ] close with a reply: ____
Part 3: WAITING VIEW in full, oldest update first
Count: ____ Past follow-up interval of ____ days: ____ chased
Supplier past promised date: ____ chased No date / nothing waited for: ____ reactivated
Chat line: "Weekly done: __ moved, __ closed, __ dated, __ owned, __ chased, __ reactivated."
MONTHLY ROUTING REVIEW (15 minutes, last working day, by ____________)
Transfers between departments: ____ main direction: ________ to ________ fix: __________
Held-mail queue read: [ ] real requests found: ____ rule narrowed: __________
Strays in the default department: ____ of ____ tickets missing door: __________
Test message to every address and alias: [ ] wrong landings: ____ fixed: [ ]
Leavers' accounts (last 90 days) holding tickets: ____ exit checklist updated: [ ]
Last month's five numbers: ____ ____ ____ ____ ____
THE ONE RULE
If the routine was not done today, the chat line says so. Silence is the only failure.
The last line on the card is the one that keeps the rest alive. A desk where a missed sweep is a silent chat is a desk where the sweep will stop being done and nobody will know when. A desk where a missed sweep is a line that says "no sweep today, back tomorrow" is a desk that has just told itself the truth. That is the whole of queue hygiene in one habit. Priya kept the whiteboard. She wiped the question and wrote the three times under it instead, with a box beside each. The boxes get ticked. The tick means something now.
Frequently Asked Questions
Who should run the weekly review: the lead or a rota?
We are a one-person desk. Is this routine overkill?
What if the ten oldest tickets are all genuinely waiting on something?
Should the review numbers go to management?
How long before the routine shows results?
What do we do with the review on a week when the desk is overwhelmed?
From the QuerySolv team: we build self-hosted help desk software for Windows. QuerySolv runs as one Windows service on your own network. It takes requests by web form, e-mail, live chat, social messages and REST API. It is licensed once per installation rather than per agent per month. The free trial runs the full product for 30 days.
