# Performance Report — Cycle 13 **Date**: 2026-06-26 **Cycle**: 13 (AZ-1126 capturedAt DateTimeOffset) **Runner**: `scripts/run-performance-tests.sh` (default: `PERF_REPEAT_COUNT=20`, `PERF_UAV_BATCH_SIZE=10`, `PERF_PT10_SLOW_MS=50`) **Stack**: `docker compose -f docker-compose.yml -f docker-compose.perf.yml up -d --build` **API_URL**: `https://localhost:18980` **Verdict**: **PASS** (11/11 thresholds; exit 0) ## Notes First perf attempt failed at PT-01 (exit 7) because the perf stack was not running — resolved by starting the compose overlay before re-run. ## REST scenarios (PT-01..PT-08) | Scenario | Result | Key metric | |----------|--------|------------| | PT-01 cold tile | Pass | 1519 ms | | PT-02 cached tile | Pass | 230 ms | | PT-03 region 200m | Pass | 2433 ms | | PT-04 region 500m stitch | Pass | 2158 ms | | PT-05 concurrent regions | Pass | 2378 ms | | PT-06 route create | Pass | 203 ms | | PT-07 cold/warm | Pass | warm p95 54 ms vs cold 2148 ms | | PT-08 UAV batch | Pass | batch p95 225 ms | AZ-1126 does not change perf probe payloads (PT-08 still uses offset-aware `capturedAt` from fixture generator). ## PT-10 (gRPC stream) | Metric | p50 | p95 | Threshold | Verdict | |--------|-----|-----|-----------|---------| | first_batch_ms | 43 ms | 63 ms | ≤ 30000 ms | Pass | | total_stream_ms | 43 ms | 64 ms | ≤ 120000 ms | Pass | | slow-consumer | — | — | completes without DeliveryError | Pass | Iteration 1 cold path ~3950 ms first batch (empty volume); iterations 2–20 warm cached.