The correct choice needs a place in the candidate set.
An investigator can rank every available hypothesis perfectly and still fail when the causal mechanism is absent. Begin with the affected user contract and a scoped dependency graph. For incorrect quotes, candidate domains include application arithmetic, database inputs, supplier responses, cache behavior, network delivery, and effective configuration. A recent deployment is one branch of that tree, rather than the definition of the whole search space.
Make leaves concrete enough to predict an observation. “The database is broken” does not distinguish a stale replica, lock contention, or an incorrect query. “The quote reads a replica that is twenty minutes behind” predicts a version difference between primary and replica for the same record. Keep the scope, proposed mechanism, expected observation, and falsifying observation together.
Coverage and precision create different engineering pressures.
Coverage asks whether the candidate set includes the causal mechanisms needed to explain the incident. Precision asks how much of the candidate space is useful. A huge list can hide a real cause under dozens of irrelevant theories, while a tidy list of three popular failure modes can omit a configuration change. Start with a small, diverse set, record why each candidate is in scope, and reserve an explicit expansion path.
Do not assign the absence of a candidate the meaning “impossible.” In this track, a service-catalog check can expose a separately managed cache dependency. The engine then permits adding the cache hypothesis. This is a limited teaching mechanism with an authored registry; a production expansion process needs topology ownership, scoped discovery permissions, and validation of any newly proposed diagnostic contract.
Build a tree that preserves useful distinctions.
Use the top level for failure domains and the leaves for mechanisms. Put the new-binary hypothesis under service changes; put omitted key dimensions under configuration; put supplier throttling under an external dependency. A change can cross domains, so the tree is an organizing aid rather than proof of independence. If two leaves describe the same mechanism, merge them before they compete for budget.
Attach expected evidence to every leaf. This makes candidate generation reviewable and gives the check selector a discriminative target. When all surviving candidates predict something different from the user experience, mark candidate coverage as suspect. Revisit topology, recent effective configuration, and the original contract before inventing a more elaborate story.
Preserve the boundary between gaps and explanations.
A known unknown is a gap you can name, such as an unavailable configuration history. An unknown unknown becomes visible when an unexpected observation exposes a missing dependency or failure mode. Record both without assigning invented probabilities. Your hypothesis tree should include an “unexplained / expand” condition so that elimination of current candidates leads to discovery or escalation instead of forced selection.
| Domain | Mechanism | Discriminating prediction |
|---|---|---|
| Service / change | New binary changes arithmetic | Only the new build fails a matched replay |
| Dependency | Database causes initial incorrect totals | The relevant database failure precedes wrong quotes |
| Infrastructure | Packet loss corrupts this path | Scoped network evidence and a replay match impact |
| External dependency | Supplier throttles APAC prices | Current APAC calls and a route replay reproduce failure |
| Configuration | Key omits currency | Different currencies collide and a key-only change fixes the replay |
LLMs make uncertain judgments. Software controls state, authority, verification, and stopping.