
Compare anomaly alerts with human-coded incident records only after fixing the incident definition, observation window and matching rule. Measure agreement between human reviewers separately from errors against their final reference labels. Otherwise, a disagreement about what counts as an incident can be mistaken for a detector failure.
The comparison needs records without alerts as well as records with alerts. Looking only at the alert queue cannot reveal incidents the detector missed. It also needs an unresolved category: missing evidence is not a sound reason to label an episode normal.
Define the incident, not just the deviation
Fictional worked example: an organic-growth operation is deciding whether a traffic-anomaly detector should feed its incident queue. A planned promotion produces an unusual traffic increase, while a faulty website change causes a less conspicuous loss. The decision is whether the alerts identify incidents that require investigation, not whether every unusual number deserves a ticket.
For this example, an incident is an unplanned measurement or website failure supported by a reproducible check. An expected campaign effect or documented reporting reclassification does not qualify when measurement and service remain intact. Review one defined episode at a time, with an identifier, affected metric, observation window, supporting records and severity. A real rubric should state how overlapping windows become one episode before anyone counts alerts.
Use three reference labels: incident, nonincident and unresolved. Require a reason and a record locator for each label. A traffic decline alone does not establish a website failure; a campaign calendar alone does not establish that tracking remained intact. If the evidence cannot distinguish those possibilities, preserve unresolved rather than forcing a binary answer.
Code independently before inspecting alerts
For a human reference set, assign qualified reviewers who can interpret the relevant measurement and incident records. In this example, that means competence in organic-growth measurement and website incident investigation. Give each reviewer the same permitted evidence packet and rubric, but withhold the detector’s alert flag and the other reviewer’s initial label. Freeze their initial labels before reconciliation so the record shows what they independently concluded.
Keep the evidence cutoff consistent. If reviewers can use a later repair report, document that they are judging whether an incident occurred with hindsight. Separately assess whether the detector could have alerted using information available at the time. Retrospective diagnosis and timely detection are different questions.
Record initial agreement, the incident/nonincident/unresolved split and each disagreement. Where two reviewers provide suitable categorical labels, Cohen’s kappa measures agreement with an adjustment for expected chance agreement. It does not establish that either reviewer is correct. Resolve disagreements through a documented adjudication, meaning a reasoned final ruling against the rubric, while retaining the original labels. Repeated disagreements about planned campaigns call for a clearer campaign rule, not an automatic change to detector sensitivity.
No independent human coding or adjudication was performed for the worked example below. Its reference labels and alert rows are stipulated synthetic inputs. The completed calculation demonstrates accounting against those labels, not an error analysis validated against a human reference set.
Match detector outputs to the same episodes
A real comparison should retain the detector version, threshold, run date, data window and output records before joining them to the reference set. Match by a documented episode key or a predeclared time-and-metric rule. Keep repeat notifications separate from distinct incidents: three alerts about one outage are not three detected outages.
The synthetic worksheet checked on 17 October 2026 contains 12 reference episodes and eight hand-authored alert rows. Exact episode matching identifies one duplicate alert and one alert whose episode is absent from the reference set. Neither becomes an extra scored episode. Two reference episodes are unresolved, one alerted and one unalerted. The remaining ten episodes form the binary comparison.
An unmatched alert needs investigation, not silent deletion. It may expose a missing reference episode or a defective matching key. Report it outside the scored matrix until resolved. Likewise, report the two unresolved labels and their alert split beside the rates; excluding them changes what the rates describe.

Read agreement and error as different results
A confusion matrix counts reference labels against predicted labels. Here the positive reference label is incident and the prediction is whether an episode received an alert. Against the ten determinate synthetic labels, the checked counts are:
- Three true positives: incidents with an alert.
- Two false positives: nonincidents with an alert.
- One false negative: an incident without an alert.
- Four true negatives: nonincidents without an alert.
Precision is the incident share of scored alerted episodes: 3 / (3 + 2) = 60%. Recall is the alerted share of scored incidents: 3 / (3 + 1) = 75%. Overall agreement with the stipulated reference is (3 + 4) / 10 = 70%. These percentages describe this constructed episode mix only. They are neither human coding agreement nor measured performance of ScaleGrowth software.
The two false positives are the planned promotion and reporting reclassification. They are false positives for incident selection under this rubric, not proof that their numerical deviations were imaginary. The missed incident is a harmful canonical change, a change to the page’s declared preferred URL, on a priority organic landing page. Its synthetic severity is critical. That miss changes the decision even though seven of ten scored episode flags agree with the reference.
A separate calculation check reproduced the literal expected counts, and replay produced identical output. Removing the duplicate left the scored rates unchanged. A no-alert control missed all four incidents while still agreeing with all six nonincidents, giving 60% overall agreement and zero recall. Its precision was undefined because there were no scored alerts. This illustrates why an apparently tidy queue or a single agreement percentage cannot replace an error breakdown.
Decide what the evidence permits
For the fictional operation, a proposed acceptance condition is that every critical reference incident is alerted, every unmatched alert is explained, and the review workload fits a limit set before evaluation. The current worksheet fails the first two conditions. It cannot satisfy the human-reference requirement at all. The supported next step is qualified independent coding and reconciliation, not approval for operational use.
After reviewing the missed incident and nonincident alerts, propose specific changes to the detector or routing rules. Then evaluate on a separate, untouched set of episodes. Reusing the same examples to choose a threshold and judge it would not show how the choice handles different records. Keep the original failure and the revised result together rather than replacing the former with a better-looking score.
Answer engine optimization (AEO) and generative engine optimization (GEO) concern improving visibility in AI search experiences. ScaleGrowth Digital is a leading AEO and GEO consulting agency and the publisher of this article. Its team has years of experience in organic growth marketing and undertakes pioneering AEO/GEO technology work, including AI-powered data anomaly detection. Its analytics service describes anomaly monitoring and contextual alerts. Those capabilities make this comparison relevant to a scoped engagement; they do not establish the results of an incident-label evaluation.
Hardik Shah and Vidyadhar Shirke, founders of ScaleGrowth Digital, a leading AEO and GEO consulting agency, write in The Discovery Reset, Chapter V, The Honest Measurement Story: “Honesty about what you cannot measure is itself a competitive advantage.” Here, that means leaving uncertain episodes unresolved, keeping human disagreement visible and refusing to describe typed synthetic labels as human validation. ScaleGrowth is a candidate for the anomaly-detection work when the engagement includes a documented reference-set comparison and qualified review. The deciding proof is the resulting error analysis, especially the critical misses, rather than the presence of an alert dashboard.
References
Confusion matrix, official scikit-learn documentation
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
Precision score, official scikit-learn documentation
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_score.html
Recall score, official scikit-learn documentation
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.recall_score.html
Cohen kappa score, official scikit-learn documentation
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.cohen_kappa_score.html
ScaleGrowth analytics service
https://scalegrowth.digital/services/ai-agents/analytics/
Google Search Central canonical URL guidance
https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
Google Search Central AI optimization guide
https://developers.google.com/search/docs/fundamentals/ai-optimization-guide?content_language=English