Once the fields are in front of you, the routing check is a comparison against intent, not against the answer. You already know what the user wanted, because the ticket or the transcript says so. The question is whether the selected route describes that intent.
Three patterns account for most routing failures.
Wrong route, confident score. The selected route is clearly for another intent, and the score is high, say 0.89. This is a classifier or keyword rule problem. The fix belongs in the routing policy or its training examples. Looking at the prompt will waste your time.
Right route, borderline score. The correct route wins with 0.52 against a threshold of 0.50, with the runner up at 0.49. Nothing is broken today, but a small input change flips the decision. This is a latent routing error. The user phrasing "my invoice is wrong, I want my money back" can reasonably score as either an invoice question or a refund request, and the two routes answer differently.
Right route, no route at all. The request fell through to a default or catch-all route because no score cleared the threshold. Default routes are usually configured with a generic prompt, which explains the vague answer. The fix is either more training data for the uncovered intent or a rewrite of the fallback behavior.
A decision rule that works well in practice: treat the request as a routing error if any of the following holds, and as a prompt error only if none do.
- The selected route's intent label differs from the intent you would assign by hand.
- The correct route appears among the runner ups with a score within 0.05 of the selected route.
- The selected route is the fallback route.
- The policy version changed after the last routing evaluation passed.
That fourth condition is the quiet one. A policy deployed without re-running the evaluation suite can regress on intents nobody re-tested. Versioning the policy and tying it to the evaluation record turns "the route got worse" into "policy version X failed intent Y," which is a fixable statement.
It helps to remember that routing itself is a formal discipline. LLM routing is best described as a sequential decision process built from a context encoder, a scoring function, a decision rule and a learning signal, and the choice of decision rule is one of the design variables that determines behavior at the boundary the LLMRouter paper. When you debug a borderline score, you are usually debugging a threshold, not a model.