Guides
Knowledge gap analysis: let the queue tell you what to write
Maya Rao, Solutions Engineer · August 11, 2026 · 7 min read
The documentation backlog assembled in a planning meeting is a list of guesses. The ranked list of what is actually missing already exists, in your ticket queue.
The standard way to decide what to document is a meeting. Everyone lists what they think is missing, the list gets prioritised by whoever argued hardest, and a quarter later half of it is written and none of it has moved resolution time. The list was a set of guesses about what other people find difficult, made by the people who find it easiest.
The non-guessing version is available to any team with a ticket history. Your queue is a continuous record of questions people could not answer themselves, with the cost of each one attached. Read it properly and it produces a ranked backlog rather than a wish list.
Sources
FlowTux
One ranked list of missing answers
Out
Signal one: cluster the handoffs
Every ticket an AI declined to resolve and passed to a human is a labelled example of the knowledge base failing. That is a far better dataset than anything a survey produces, because it is unprompted, complete, and generated by the exact system whose accuracy you are trying to improve.
Cluster by intent rather than keyword — "cannot connect to the VPN", "VPN says connected but nothing loads", and "which VPN do I use from home" are three different articles wearing similar words, and keyword grouping merges them into one useless bucket. Then rank the clusters by volume multiplied by the human time each one consumed. A cluster of forty tickets that a human closes in ninety seconds matters less than a cluster of eight that takes half an hour each, and a raw frequency count will get that backwards.
Before writing anything, separate two causes that look identical from the outside. Some clusters are genuinely missing: nothing in the knowledge base covers the question, so write it. Others are present but unretrievable, buried in section four of a mega-article or titled in internal vocabulary nobody types. Tell them apart by searching your own knowledge base with the requester’s phrasing from the cluster. If the right article comes back and the AI still handed off, you have a structure problem, and writing a second article about the same thing makes retrieval worse rather than better.
Signal two: the long custom human replies
This is the richest signal and almost nobody mines it. Find the resolutions where a human wrote several original paragraphs — not a link, not a canned response, but genuine composed prose. Each of those is an article that has already been written. It just got filed in a ticket thread where exactly one person will ever read it.
Group them by similarity. Any shape that recurs three times is at the top of your backlog, and the cost is already quantified: you can see how many minutes went into writing the same explanation repeatedly. This signal finds a category the handoff clusters miss — questions that never reach automation at all because they arrive addressed to a named person, and questions humans answer so readily that nobody notices they are being answered from scratch every time.
When you write the article, start from the reply that actually worked. Agents writing to a real person under time pressure produce better instructional prose than the same agents writing a document for an imagined audience: shorter, more concrete, correctly assuming what the reader knows. Editing a real reply into an article takes minutes. Writing the article from nothing takes an afternoon and comes out worse.
Two smaller signals are worth wiring up alongside these. Reopened self-served answers, which are the most urgent category of all — the article is not missing, it is wrong, and it is actively producing bad outcomes right now. And searches that returned nothing or returned results nobody clicked, which give you the exact phrasings your titles fail to match.
Review cycles tied to use, not the calendar
Annual review of everything is a ritual that produces rubber-stamps. Faced with four hundred articles and a deadline, people confirm rather than read, and the review date advances by a year on documents nobody opened. Worse, a calendar treats all articles as equally likely to have rotted, which is not remotely true: the article about a system that has been stable for three years needs less attention than one covering a tool you migrated last month.
Tie review to events instead. An article retrieved on a ticket that then reopened goes to the front of the queue, because something in it is wrong. An article whose underlying system changed gets reviewed when it changes, which means the release or vendor migration carries the doc update as part of its definition of done rather than leaving it to a later sweep. An article that gets retrieved constantly deserves more scrutiny than the tail, not the same treatment — it is doing the most work and its errors are the most expensive. And an article that has not been retrieved in six months is not a review candidate at all; it is a deletion candidate.
The prerequisite is knowing what gets retrieved, which most knowledge bases do not report. If your system can tell you which articles were used to answer which tickets, you already have the input. If it cannot, that reporting is a higher-value investment than the next batch of articles.
Why deleting matters more now
Under human retrieval, a stale article is a nuisance. It appears on page two, a reader glances at it, notices the old interface in the screenshot, and routes around it. The cost is a few seconds of confusion and it stays local to that reader.
Under machine retrieval the same article is a competitor. It sits in the index with equal standing to the correct one and gets selected on phrasing — and stale articles are often phrased better, because they were written when the process was new and someone cared. Two articles that contradict each other are worse than one article plus a gap, because a retrieval system has no basis for preferring the true one, and the resulting answer is confidently wrong rather than honestly absent. A missing answer produces a handoff to a human. A wrong answer produces a resolution that reopens and a requester who stops trusting the system.
So delete. One canonical article per question, retired and replaced rather than forked into a second version; the old article removed when the process changes, as part of the change rather than after it; and a periodic sweep of everything unretrieved for a year, on the principle that an article nobody and nothing has used is not an asset you are keeping, it is a liability you are storing. This is uncomfortable in a culture that measures knowledge by article count, which is one more reason not to measure it that way.
Making the loop cheap
The reason gap analysis usually stays theoretical is that assembling the data is a project: exporting tickets, joining them to knowledge base events, clustering them by hand in a spreadsheet, and doing it again next quarter. Anything that takes a quarter to produce will be done once, presented, and never repeated. This analysis is only useful if it is closer to a routine query than a study.
That is easier when triage and knowledge share a system rather than sitting on either side of an export. FlowTux grounds triage in your resolved ticket history and linked codebase, collapses recurring asks with semantic deduplication so a repeated question is visibly repeated rather than four unrelated tickets, and writes every triage decision, handoff, and allow-listed autonomous action to the ticket timeline as an audit trail — which is the same record this analysis reads. Intake arrives from Slack, Teams, email, and WhatsApp into one queue, so the signal is not split across four systems that each hold a quarter of the evidence. The gap list becomes something you look at on a Monday, not a project you schedule.
Frequently asked questions
How do you find knowledge base gaps from ticket data?
Cluster the tickets an AI handed off to a human — each cluster is a missing or unfindable article — and cluster the resolutions where a human wrote several original paragraphs, since each recurring one is an article already written inside a ticket thread. Rank clusters by volume multiplied by human time spent, not by raw frequency, and add reopened self-served answers plus searches that returned nothing.
How often should knowledge base articles be reviewed?
On events rather than on a calendar. Review when an article was used on a ticket that reopened, when the system it describes changes, and more often for the articles retrieved most, since their errors are the most expensive. Annual review of everything produces rubber-stamps, and an article nobody has retrieved in six months is a deletion candidate rather than a review candidate.
Why does deleting stale articles matter more with AI retrieval?
A human sees a stale article on page two and routes around it. A retrieval system treats it as an equal candidate and may select it on phrasing alone — stale articles are often well written, because they were written when the process was new. Two contradictory articles are worse than one plus a gap: a missing answer produces an honest handoff, while a wrong one produces a confident resolution that reopens.
Related on FlowTux
Further reading
- Incident management — Wikipedia ↗
- IT service management — Wikipedia ↗
- Service-level agreement — Wikipedia ↗
- Google SRE: Managing Incidents ↗
- Atlassian: Incident Management guide ↗
Follow FlowTux
Ready to let Tux AI run your queue?
Flat pricing from $49/month. Every team, no per-agent fees.
Start free trial →