RAIN rng-node real-network test → https://rain-rng-node-lab-polt.onrender.com  (1000 spins per run, 0 ms animation gap, from joni-user7-86dfb47d47-5q65n)

baseline GET /healthz  cold-connection  p50 111.5 · p95 315.6 · p99 367.9 · max 367.9 ms (min 91.9, σ 77.5, IQR 26.2)
baseline GET /healthz  keep-alive       p50 107.5 · p95 291.3 · p99 326.2 · max 326.2 ms (min 92.9, σ 59.0, IQR 18.5)

HTTP pipelining OFF  settled 1000/1000 replayed 0 errors 0
  spin critical path     p50 87.8 · p95 102.0 · p99 114.3 · max 315.8 ms (min 82.6, σ 12.7, IQR 13.9)
  commit→reveal (wire)   p50 87.1 · p95 101.1 · p99 113.6 · max 299.9 ms (min 81.9, σ 12.5, IQR 13.9)

HTTP pipelining ON   settled 1000/1000 replayed 0 errors 0
  spin critical path     p50 86.7 · p95 100.1 · p99 114.2 · max 323.6 ms (min 76.1, σ 11.0, IQR 10.0)
  commit→reveal (wire)   p50 85.9 · p95 99.4 · p99 109.3 · max 322.5 ms (min 75.4, σ 10.9, IQR 9.9)   ← ran during the animation gap, NOT on the critical path

WS   pipelining OFF  settled 1000/1000 replayed 0 errors 0
  spin critical path     p50 76.9 · p95 100.1 · p99 106.0 · max 401.2 ms (min 75.4, σ 13.8, IQR 13.8)
  commit→reveal (wire)   p50 76.0 · p95 99.4 · p99 105.3 · max 400.5 ms (min 74.8, σ 13.9, IQR 13.8)

WS   pipelining ON   settled 1000/1000 replayed 0 errors 0
  spin critical path     p50 72.4 · p95 83.6 · p99 90.5 · max 417.7 ms (min 71.7, σ 11.7, IQR 3.9)
  commit→reveal (wire)   p50 71.6 · p95 82.9 · p99 89.8 · max 416.8 ms (min 71.1, σ 11.7, IQR 3.6)   ← ran during the animation gap, NOT on the critical path

HTTP: pipelining removes 1.9 ms from the p95 critical path (102.0 → 100.1 ms) against a measured keep-alive RTT p50 of 107.5 ms.
