Alert Latency Evidence
Production-benchmarked alert delivery latency for critical risk threshold notifications. Supports Test 4.2. For term definitions, see the Glossary. For benchmark conditions, see Data Provenance.
End-to-End Delivery Latency
50 consecutive runs on 2026-03-30 17:44-17:48 UTC. Each run processed 9 vaults and 50 users.
| Quantile | Latency |
|---|---|
| p50 | 5,624 ms |
| p90 | 6,342 ms |
| p99 | 8,475 ms |
Alerts are reliably delivered within a ~6 second window end-to-end. This is the unoptimized baseline — no caching or query consolidation applied.
Benchmark Run Log
| Run | Timestamp (UTC) | Total (ms) | Send Wall (ms) |
|---|---|---|---|
| 1 | 2026-03-30 17:44:09 | 5,837 | 1,616 |
| 2 | 2026-03-30 17:44:15 | 5,485 | 1,616 |
| 3 | 2026-03-30 17:44:21 | 6,229 | 1,614 |
| 4 | 2026-03-30 17:44:26 | 5,341 | 1,610 |
| 5 | 2026-03-30 17:44:32 | 5,478 | 1,616 |
| 6 | 2026-03-30 17:44:40 | 8,475 | 1,612 |
| 7 | 2026-03-30 17:44:46 | 5,628 | 1,611 |
| 8 | 2026-03-30 17:44:51 | 5,487 | 1,613 |
| 9 | 2026-03-30 17:44:58 | 6,289 | 1,623 |
| 10 | 2026-03-30 17:45:04 | 6,072 | 1,614 |
| 11 | 2026-03-30 17:45:10 | 5,758 | 1,614 |
| 12 | 2026-03-30 17:45:15 | 5,619 | 1,616 |
| 13 | 2026-03-30 17:45:21 | 5,467 | 1,615 |
| 14 | 2026-03-30 17:45:27 | 6,421 | 1,612 |
| 15 | 2026-03-30 17:45:34 | 6,705 | 1,609 |
| 16 | 2026-03-30 17:45:40 | 5,890 | 1,611 |
| 17 | 2026-03-30 17:45:45 | 5,753 | 1,611 |
| 18 | 2026-03-30 17:45:52 | 6,342 | 1,614 |
| 19 | 2026-03-30 17:45:57 | 5,359 | 1,613 |
| 20 | 2026-03-30 17:46:03 | 5,754 | 1,614 |
| 21 | 2026-03-30 17:46:09 | 6,005 | 1,615 |
| 22 | 2026-03-30 17:46:15 | 5,879 | 1,615 |
| 23 | 2026-03-30 17:46:21 | 6,045 | 1,613 |
| 24 | 2026-03-30 17:46:27 | 5,699 | 1,615 |
| 25 | 2026-03-30 17:46:32 | 5,321 | 1,612 |
| 26 | 2026-03-30 17:46:38 | 5,889 | 1,612 |
| 27 | 2026-03-30 17:46:43 | 5,338 | 1,612 |
| 28 | 2026-03-30 17:46:49 | 5,767 | 1,608 |
| 29 | 2026-03-30 17:46:54 | 5,278 | 1,613 |
| 30 | 2026-03-30 17:47:01 | 6,436 | 1,611 |
| 31 | 2026-03-30 17:47:06 | 5,603 | 1,613 |
| 32 | 2026-03-30 17:47:13 | 6,270 | 1,611 |
| 33 | 2026-03-30 17:47:18 | 5,280 | 1,615 |
| 34 | 2026-03-30 17:47:23 | 5,199 | 1,614 |
| 35 | 2026-03-30 17:47:29 | 5,759 | 1,610 |
| 36 | 2026-03-30 17:47:34 | 5,254 | 1,617 |
| 37 | 2026-03-30 17:47:39 | 5,300 | 1,616 |
| 38 | 2026-03-30 17:47:45 | 5,300 | 1,618 |
| 39 | 2026-03-30 17:47:51 | 5,989 | 1,614 |
| 40 | 2026-03-30 17:47:56 | 5,169 | 1,614 |
| 41 | 2026-03-30 17:48:01 | 5,060 | 1,615 |
| 42 | 2026-03-30 17:48:06 | 5,172 | 1,613 |
| 43 | 2026-03-30 17:48:12 | 6,057 | 1,612 |
| 44 | 2026-03-30 17:48:18 | 5,570 | 1,614 |
| 45 | 2026-03-30 17:48:24 | 6,159 | 1,612 |
| 46 | 2026-03-30 17:48:29 | 5,237 | 1,610 |
| 47 | 2026-03-30 17:48:35 | 5,523 | 1,619 |
| 48 | 2026-03-30 17:48:40 | 5,043 | 1,612 |
| 49 | 2026-03-30 17:48:45 | 5,508 | 1,612 |
| 50 | 2026-03-30 17:48:51 | 5,414 | 1,613 |
Send wall-clock time is extremely stable across all 50 runs (1,608-1,623 ms, CV < 0.3%). Total latency variance comes from metric computation, not delivery.
Phase Breakdown
| Phase | What It Does | Median |
|---|---|---|
| Load vaults | Fetch vault metadata from database | 286 ms |
| Compute metrics | Vault score (geometric mean of market, protocol, oracle) + liquidation probability | 3,394 ms |
| Load subscriptions | Alert templates + user subscription configs | 289 ms |
| Load user data | Active users, preferences, delivery channels | 1 ms |
| Evaluate & send | Decision tree evaluation + Telegram delivery | 1,613 ms |
Metric computation is the dominant phase (~60% of total time). All other phases combined account for ~2 seconds.
Interpretation
For institutional monitoring workflows — where the comparison point is dashboard polling intervals (typically 30-60 seconds) or email-based alerts (minutes) — sub-10-second delivery is well within acceptable bounds. Alert evaluation runs on each data snapshot cycle.