Benchmarks / Noise Bench

Can AI tell a real incident from alert noise?

17Scenarios20Models1020Trials92%Top pass rateJul 10, 2026Updated

Modern observability stacks don't have a data problem, they have a paging problem. Alerts fire constantly and most are noise: flaps, transients, deploy churn, duplicates of incidents already being worked. A few are real and need a human now. NoiseBench gives a model a batch of fired pages plus the context a good engineer would pull, and asks it to label each page "page" or "suppress". The cardinal rule: you may not suppress a real incident. Miss one real SEV1 and you score zero, no matter how clean the rest of your triage.

Model ranking

claude-fable-5
92%
claude-sonnet-4.6
92%
fugu-ultra
88%
gpt-5.5
88%
glm-5.2
88%
grok-4.5
86%
gpt-5.4
84%
claude-opus-4.8
82%
deepseek-v4-flash
82%
kimi-k2.5
75%
gpt-5.4-mini
76%
gemini-3.5-flash
75%
kimi-k2-thinking
67%
gemini-3.1-pro-preview
71%
gemini-3.1-flash-lite
63%
claude-haiku-4.5
47%
gpt-oss-120b
53%
qwen3-235b-a22b-2507
41%
qwen3-32b
20%
gpt-oss-20b
16%
#ModelGraded reward (95% CI)Pass rateeasymediumhard
1claude-fable-50.917 ± 0.07492%100%100%83%
2claude-sonnet-4.60.909 ± 0.07492%100%100%83%
3fugu-ultra0.882 ± 0.08988%100%100%75%
4gpt-5.50.881 ± 0.08988%100%100%75%
5glm-5.20.874 ± 0.08988%100%100%75%
6grok-4.50.863 ± 0.09586%100%100%71%
7gpt-5.40.829 ± 0.10084%100%96%71%
8claude-opus-4.80.824 ± 0.10682%100%100%62%
9deepseek-v4-flash0.820 ± 0.10582%100%100%62%
10kimi-k2.50.761 ± 0.11375%100%96%50%
11gpt-5.4-mini0.756 ± 0.11176%100%92%58%
12gemini-3.5-flash0.745 ± 0.12175%100%100%46%
13kimi-k2-thinking0.719 ± 0.11367%67%92%42%
14gemini-3.1-pro-preview0.704 ± 0.12671%100%100%38%
15gemini-3.1-flash-lite0.668 ± 0.12163%100%92%29%
16claude-haiku-4.50.543 ± 0.12147%100%62%25%
17gpt-oss-120b0.539 ± 0.13253%100%88%12%
18qwen3-235b-a22b-25070.426 ± 0.13241%100%67%8%
19qwen3-32b0.194 ± 0.10320%67%29%4%
20gpt-oss-20b0.167 ± 0.09516%67%12%12%

How graded reward is scored: a trial earns its F1 score, except it earns 0 if the model suppressed an incident that had to be paged (the one unforgivable mistake). The leaderboard ranks on the average across all 51 trials, with a 95% confidence interval, so a model that nearly gets a scenario right scores better than one that misses completely, and overlapping intervals mean the models are effectively tied.

Key finding

The easy and medium tiers are near solved; the hard tier separates the field, where alert features actively mislead. claude-fable-5 debuts at the top: it ties claude-sonnet-4.6 at 92% and edges it on mean graded reward (0.917 vs 0.909), and it is the first model to pass slow-burn-saturation, the hardest scenario on the board. v2 re-ran every model with a 3x agent timeout: claude-opus-4.8 jumped from 61% to 82% once OpenRouter-slowness timeouts stopped counting against it, while new severity-inversion traps dropped claude-haiku-4.5 to 47%. The top models clear 75% on hard; most of the pack still sits below 50%.

Scenarios

ScenarioTierThe trap
noisy-night-shiftmediumA DB cascade fires 4 correlated pages to collapse into one, plus a cert expiry, an OOM loop, and the usual flaps and transients.
deploy-stormhardA dozen services deployed at once and almost all churn self-heals. A few regressions don't. Over-suppressing kills you.
quiet-but-deadlyhardSEV1-tagged flappers that must be suppressed; quiet SEV2/SEV3 slow-burns that must page, including one that auto-resolved once before escalating.
disk-pressure-flapper-stormmediumDisk warnings recover on rotation and the [ignore] monitor flaps everywhere (one mis-routed to SEV1). Two nodes cross into real DiskPressure risk and a PVC hits 100%, tagged only SEV3.
escalation-loopback-noisemediumPagerDuty escalation meta-noise: loop-backs and missed-ack reminders on staging CI vs missed-acks on genuinely live incidents.
ci-e2e-test-noisehardCI and e2e test failures wired into PagerDuty vs real prod regressions, including a canary-fleet look-alike.
warning-spike-transientsmediumWARN spikes that self-heal in seconds. One is the leading edge of a real error cascade on http-receiver.
ai-platform-alert-noisehardLLM token-usage and spending-cap cost noise vs real AI-runtime incidents.
queue-backlog-vs-bliphardQueue blips that drain on their own vs sustained backlogs, a DLQ fill, and a consumer whose queue floor ratchets up while presenting as a flapper.
node-event-noisemediumNormal Karpenter/PDB operational events vs a real NodeNotReady capacity loss. A SEV1-tagged crashloop flapper sits next to a real crashloop tagged only SEV3.
obvious-sev1-clustereasyTwo clear SEV1 outages with symptom duplicates. Page the roots, suppress the rest.
cert-expiry-fanoutmediumOne cert-expiry SEV1 plus three duplicates in a two-minute window. Page the root, suppress the dupes.
maintenance-window-maskingmediumAn announced maintenance window explains about a dozen alerts, but not the out-of-scope CDN outage or the replication stall exceeding the expected blast.
region-failover-mixedmediumPlanned region-failover churn self-heals. The shifted traffic saturates one region's payments and replication; those don't.
mixed-triage-heavyhardThe kitchen sink: every trap class in one 32-page batch. Precision and recall stressed simultaneously.
sev1-misconfigured-rulehardA misconfigured monitor rule tags 12 benign blips SEV1. Severity, rule source, and fire counts all mislead; only the metric trajectory disambiguates.
slow-burn-saturationhardBenign plateau-under-limit vs deadly ratcheting floor: both rising-means-page and flapping-means-suppress have counterexamples. Hardest scenario at a 5% pass rate.

Model-scenario matrix

Every model against every scenario. Toggle between pass rate, average cost, and average time per scenario to see which models handle specific failure patterns well, even when their overall score is lower. Hatched cells are scenarios a model never solved.

0%$0.0130s100%$1300s unsolved
obvious-sev1-cluster
escalation-loopback-noise
noisy-night-shift
region-failover-mixed
warning-spike-transients
cert-expiry-fanout
disk-pressure-flapper-storm
maintenance-window-masking
quiet-but-deadly
node-event-noise
ci-e2e-test-noise
deploy-storm
mixed-triage-heavy
ai-platform-alert-noise
sev1-misconfigured-rule
queue-backlog-vs-blip
slow-burn-saturation
claude-sonnet-4.6
claude-fable-5
glm-5.2
gpt-5.5
fugu-ultra
grok-4.5
gpt-5.4
claude-opus-4.8
deepseek-v4-flash
gpt-5.4-mini
kimi-k2.5
gemini-3.5-flash
gemini-3.1-pro-preview
kimi-k2-thinking
gemini-3.1-flash-lite
gpt-oss-120b
claude-haiku-4.5
qwen3-235b-a22b-2507
qwen3-32b
gpt-oss-20b

Cost efficiency

Average API cost per scenario against pass rate. The dashed line is the Pareto frontier: the most cost-efficient models for a given level of accuracy. 1,020 runs cost $183.8 in total.

20%40%60%80%100%$0.002$0.017$0.17$1.72claude-sonnet-4.6claude-fable-5glm-5.2gpt-5.5fugu-ultragrok-4.5gpt-5.4claude-opus-4.8deepseek-v4-flashgpt-5.4-minikimi-k2.5gemini-3.5-flashgemini-3.1-pro-previewkimi-k2-thinkinggemini-3.1-flash-litegpt-oss-120bclaude-haiku-4.5qwen3-235b-a22b-2507qwen3-32bgpt-oss-20bAverage cost per scenario (USD, log scale)

Speed vs quality

Average time per scenario against pass rate. The frontier shows the models that balance solution quality against how long they take to reason.

20%40%60%80%100%8s117s226s335sclaude-sonnet-4.6claude-fable-5glm-5.2gpt-5.5fugu-ultragrok-4.5gpt-5.4claude-opus-4.8deepseek-v4-flashgpt-5.4-minikimi-k2.5gemini-3.5-flashgemini-3.1-pro-previewkimi-k2-thinkinggemini-3.1-flash-litegpt-oss-120bclaude-haiku-4.5qwen3-235b-a22b-2507qwen3-32bgpt-oss-20bAverage time per scenario (seconds)

What we measure

The model gets a batch of fired pages plus the context a good engineer would pull: recent metrics, clustered log patterns, deploy history, auto-resolve status, fire frequency, and open incidents. It labels each page "page" or "suppress".

  • Graded reward (what the leaderboard ranks on): 0 if a must-page incident was suppressed, otherwise the F1 of that trial, so near-misses and total failures stop looking identical.
  • Scored on the page class with precision, recall, and F1.
  • Cardinal rule: you may not suppress a real incident. Suppress a must-page SEV1 and you score zero, no matter how clean the rest is.
  • Over-paging is penalized. At full recall, one false page already drops you below threshold.
  • It rewards exactly one behavior: wake a human for the real thing, and nothing else.

How scenarios are built

Each scenario is a frozen telemetry window built by fault injection. Run a microservices app under steady load, inject one real fault tied to a git commit, let it propagate, then capture the pages, metrics, patterns, deploy log, and any open incidents.

  • Inject realistic distractors: chronic flappers, sub-minute self-healing transients, and downstream symptoms of the real incident.
  • Plant an innocent deploy near onset to punish "blame the latest deploy", plus a duplicate of an already-open incident.
  • Keep timestamps internally consistent: onset always after the culprit deploy.
  • Emit per-page page/suppress labels plus the must-page list as ground truth.

Run it yourself

Requires Harbor, Docker, and an OpenRouter key. Ships only the tasks, datasets, and scoring. The harness and models are external.

git clone https://github.com/edgedelta/noise-bench.git
cd noise-bench

# put OPENROUTER_API_KEY=... in .env, then:
source .env && uv run harbor run -c configs/leaderboard-v2-docker.yaml
uv run scripts/process_results.py jobs/<run-dir>

Put a real AI Teammate on call

Edge Delta's AI Teammates triage, investigate, and find root cause in your stack.