Root Cause Analysis

Last updated on August 14, 2026

An alert tells you a line degraded. A root cause analysis tells you why. Launched in one click from the alert, it combs through the runs behind the incident, tests candidate causes against your data, and returns a verdict backed by evidence, with concrete next steps. It follows the 6M method — man, machine, material, method, measurement, environment — testing each probable cause statistically against a baseline, and digging deeper into the branches the evidence supports.

Supported alerts

An analysis starts from an alert — one of the two trend types:

Alert typeThe analysis asks
Yield dropWhich units failed, and what do the failures have in common?
Measurement driftWhich factor does the shift in the drifting measurement follow?

Other alert types can't be analyzed yet.

Analyzed runs

The analysis looks at the runs behind the alert: the degraded stretch, plus the healthy runs before it as a baseline to compare against. On a drift alert, it focuses on the measurement that moved. If your own rule fired the alert, your threshold is what the conclusion answers to.

The verdict

Every finished analysis lands on one of seven verdicts.

VerdictMeaning
Single probable causeOne cause explains the incident.
Independent causesSeveral causes, each acting on its own.
Interaction of factorsCauses that only bite in combination.
Confounded causesProbable causes that cannot be separated with this data.
Partial explanationA finding that does not cover the whole incident.
InconclusiveNo probable cause could be isolated.
Not enough dataNot enough data and/or metadata to explore the possible causes.

The hypothesis tree

Results are organized like a fishbone diagram from a quality review: possible causes branch out from the incident, and each branch is tested against your data. Each cause carries a status:

StatusMeaning
ProbableThe evidence supports it. A probable cause with no probable child is a candidate cause.
Unlikely / RejectedThe evidence points away from it, or rules it out.
Not enough dataUntestable with today's runs.

Click any cause to see the evidence — the checks and charts behind it.

Next steps

A finished analysis ends with two lists:

  • To solve the issue — what to check or fix for the causes found.
  • To improve the analysis — what to add in TofuPilot so the next analysis can test more.

Visibility

An analysis belongs to the alert, not to the person who ran it: anyone who opens the alert sees the latest result, signed with the name of whoever launched it. A teammate's re-run replaces yours, and vice versa.

Roles and permissions. An analysis runs with the access of the person who launched it: it reads only the data their role and access group allow. Two teammates with different scopes can therefore reach different results on the same alert.

How is this guide?

On this page