This article is published in English.
Measuring Real Value From an AI Incident Assistant, Not Guesswork ROI
Why AI-estimated savings mislead, and how baselines, controlled failures, evidence checks and blocked unsafe actions show whether an ops assistant helps.
Teams building an incident-analysis assistant tend to fixate on reliability. Can it gather the right evidence, add relevant context, return structured output, validate its own answer and steer clear of unsafe advice? Those checks are necessary. Yet a system that passes every one of them still leaves a bigger question open: is it creating value that can be measured?
A technically polished AI reply doesn't automatically reduce operational effort. A tidy root-cause analysis doesn't automatically shorten an incident, and a recommended action doesn't automatically make response safer. Output can look useful while contributing little. That gap separates an AI tool from an AI system. A tool produces an answer. A system has to help someone reach a better decision and supply evidence that the decision process improved.
Value that looks like nothing happening
Operational systems often earn their keep by preventing things: noisy alerts, repeated investigation, wrong escalation, unsafe remediation, longer disruption, wasted engineering hours. When such a system works, the visible result is that nothing dramatic occurred. No big outage, no extra engineer paged, no needless restart, no customer-facing escalation. That makes the benefit hard to see.
The tempting fix is to stick a financial estimate on every result.
{
"toil_saved": "1.5 hours",
"estimated_savings": "$150"
}
Numbers like those look exact, but where do they come from? Was a normal investigation really an hour and a half? Did the assistant remove all of that effort? Is the labor rate drawn from real company data? Does the estimate count the time humans spent reviewing the output? A precise-looking figure builds confidence without evidence. That's an assumption dressed up as a measurement.
Why the model shouldn't price its own work
A common first move is to treat value as one more output field next to probable cause, impact, urgency and recommended action. Adding saved time and saved money looks like the next logical step. But value differs from explanation. A model can help interpret technical evidence, yet it shouldn't invent the financial impact of its own answer.
A claim of 1.5 hours saved needs a baseline. A claim of prevented downtime needs evidence that downtime was likely and that the advice helped avoid it. A claim of reduced cost needs a calculation that exposes its assumptions. Without those, an ROI field is simply another unsupported AI output.
Start with decisions, not dollars
The first useful measurement often isn't monetary. A better starting point is whether the operational decision improved. Questions worth asking:
- Did the engineer find the relevant subsystem sooner?
- Did the assistant surface evidence that would otherwise take manual searching?
- Did the recommendation cut unnecessary investigation?
- Did it flag missing information before anyone acted?
- Did it stop an unsupported remediation?
- Did it send a higher-risk action to a human for approval?
- Did it reduce repeated work during a recurring incident?
Such outcomes tie more directly to system behavior, and they lay a foundation for later estimates of time and cost. Instead of asking how much money was saved, begin by asking which part of the investigation changed because the assistant was there.
Comparing assisted and unassisted work
A straightforward measurement sets the normal investigation against an AI-assisted one.
Baseline investigation duration
minus
AI-assisted investigation duration
equals
estimated time saved
With concrete numbers it might read like this.
Baseline investigation: 45 minutes
AI-assisted investigation: 28 minutes
Estimated time saved: 17 minutes
That is more believable than asking a model to generate a savings figure, but even this deserves care. Two incidents can look alike while differing in complexity. One engineer may know the system well while another needs more time with the evidence. The assisted path also adds new tasks: reading the generated analysis, checking its supporting evidence, correcting an unsupported conclusion and judging whether the suggested action is safe. The measurement must count that effort. A fuller comparison looks like this.
Baseline investigation time
compared with
AI-assisted investigation time
plus validation and review time
The point isn't to produce the biggest possible savings number. It's to learn whether the whole assisted workflow beats the existing one.
Speed is one axis of several
A fast but wrong diagnosis can create more work than a slower, careful investigation. The assistant should be judged on several dimensions:
- Evidence: did it find material connected to the incident?
- Cause: did the probable cause match the known or injected failure?
- Citations: did the response point to the important observations?
- Faithfulness: did the model add information absent from the evidence?
- Action fit: was the recommendation suitable for the environment and its risk level?
- Gaps: did it notice missing or conflicting evidence?
- Usefulness: did the output reduce the work needed to reach the next supported decision?
Taken together, these form a more meaningful definition of value than response quality alone.
Confidence scores prove little
A confidence number can make a result seem measurable.
{
"probable_cause": "Connection-pool saturation",
"confidence": 0.91
}
But 0.91 says nothing about whether time was saved, an error avoided or a decision improved. It may not even reflect evidence quality. A more helpful response lays out its reasoning, with the supporting evidence listed next to the conclusion.
{
"probable_cause": "Connection-pool saturation",
"supporting_evidence": [
"connection wait time increased",
"database timeouts increased",
"request latency crossed the threshold"
],
"missing_evidence": [
"current database server health"
],
"requires_human_review": true
}
An engineer can inspect that, and it makes evaluation possible. The system can be tested on whether each cited observation really existed, whether important evidence got left out, whether missing evidence justified human review, and whether the final diagnosis matched the actual failure. Visible evidence beats unexplained confidence.
A real test bed instead of simulations
Simulated incidents helped early on, but they made it too easy to shape the evidence around the answer everyone expected. What's needed is a real application where controlled failures can be created and the resulting behavior measured.
A small FastAPI service fits. It runs on PostgreSQL with SQLAlchemy, async request handling, validation, caching and concurrency controls, and it lets a tester introduce conditions such as:
- slow database queries
- connection-pool pressure
- saturation from concurrent requests
- cache misses
- validation failures
- dependency timeouts
- application exceptions
- rising request latency
Because the failure is injected on purpose, the true cause is known. The assistant can analyze application evidence without being handed the right answer, which gives an evaluation loop.
Introduce a known failure
→ collect application evidence
→ generate structured analysis
→ validate the output
→ compare the diagnosis with the known cause
→ review the recommended action
→ measure investigation effort
So the service is more than another backend project. It's the environment that shows whether the assistant produces evidence-supported value.
Worked example: connection-pool trouble
Take a controlled incident in which connection checkout waits grow, request latency climbs, database timeout errors appear, HTTP 503 responses increase, and CPU and memory stay normal. The assistant might return a structured analysis.
{
"observations": [
"connection checkout wait time increased",
"database timeout errors increased",
"request latency crossed the configured threshold"
],
"probable_cause": "Connection-pool pressure",
"impact": "Some requests could not access the database within the expected time",
"recommended_action": "Inspect active database connections and long-running queries before changing pool size",
"missing_evidence": [
"database server health",
"current long-running query details"
],
"requires_human_review": true
}
A good-looking reply shouldn't end the evaluation. The checks that follow are:
- Does the diagnosis line up with the failure that was injected?
- Can each listed observation be found in the telemetry?
- Was any contradicting evidence left out?
- Is the suggested action safe?
- Does it resist the reflex of recommending a larger pool?
- Are the gaps in evidence named correctly?
- Does the engineer know what to look at next?
Only after those passes does it make sense to measure whether investigation time changed.
Value that comes from preventing actions
AI systems are usually judged by what they produce. Operational value can also come from what they stop. Suppose the model advises enlarging the database connection pool right away. That sounds sensible under connection pressure, but raising the application pool without checking database capacity could worsen things. A validation layer might block the advice because database health is unknown, current active connections are unavailable, the server's connection limit isn't included, long-running queries haven't been examined, or the action needs human approval.
The incident wasn't resolved automatically, yet an unsupported action was prevented. That's real value. Measurements can count unsafe recommendations blocked, high-risk actions sent for review, unsupported diagnoses rejected, incidents where abstaining was correct, and missing evidence found before remediation. These look less impressive than autonomous execution and may matter more.
Tool versus system
The difference doesn't come down to whether software calls an API, a database or an agent. A tool helps a person generate or interpret something: summarizing logs, explaining an error, suggesting causes, drafting a remediation plan.
A system carries extra responsibilities. It must:
- decide what information the model gets to see
- keep evidence and interpretation apart
- hold the output to a defined contract
- check the result before trusting it
- point out what information is absent
- respect policy limits
- hand risky choices to a person
- watch how it behaves itself
- measure whether the workflow got better
The underlying model can be identical in both cases. The engineering around it is what differs.
Many layers, not one hero
It's easy to credit the model for the final answer, but usefulness depends on several layers working together, from collecting signals to storing state.
Signal collection
→ provides observable facts
State
→ preserves what already happened
Context selection
→ supplies relevant evidence
AI interpretation
→ forms a possible explanation
Structured output
→ makes the result inspectable
Validation
→ checks whether the response can be used
Human review
→ protects higher-risk decisions
Measurement
→ determines whether the workflow improved
No single layer creates all the value. It emerges when the whole workflow helps somebody reach a safer, better-supported decision with less wasted effort.
Being honest about maturity
Early prototypes rarely have enough data for strong ROI claims, and that's fine. The answer isn't to skip measurement. It's to state how mature the measurement is. A first-stage label might read as follows.
Directional estimate based on a small number of controlled incidents.
A middle stage would say this.
Comparison across repeated incidents with baseline and assisted workflows.
A strong one would describe results like this.
Measured across different incident types, environments, and engineer experience levels.
Labels like these make clear what a number represents. "17 minutes saved" may be useful in a controlled test. It shouldn't be promoted to "the system saves 17 minutes on every incident." Assumptions, sample size and limitations should stay visible.
Where this leaves the work
Both the assistant and the test service are evolving prototypes. Claiming proven enterprise-scale ROI before an evaluation environment exists would be premature, so the current direction is to build that environment carefully. The test service contributes a real backend workflow, measurable behavior, controlled failures, structured telemetry and known causes to compare against. The assistant contributes evidence selection, context-aware interpretation, structured analysis, validation, uncertainty reporting and safe-action boundaries.
Pairing them makes a sharper question possible. When conditions are controlled and measurable, do operational decisions get better with AI help? That beats wondering if a model can write a convincing explanation.
Value shown across the whole pipeline
An earlier idea was to attach value at the very end of the pipeline.
Technical decision
→ estimated time saved
→ estimated cost saved
A sounder view is that value has to be shown from start to finish. A system worth trusting lays out the evidence it used, the conclusion it reached, what stayed uncertain, the recommendation it made, whether that recommendation was safe, how much human effort remained and whether the assisted workflow improved the result. That's harder to evaluate, and also more honest.
Producing an answer isn't where AI creates value. The value shows up later, when that answer leads somebody to a better decision. The decision needs evidence behind it, the output needs validation, uncertainty has to stay visible, the action must match the risk, and any claim about time or money must show where the number came from. Speed and a confident tone aren't the best test. A system earns its place when people using it act with less doubt, skip actions nothing supports, and can point to a measurable improvement.
The path runs from AI-generated output, to evidence-supported decisions, to measurable operational value.