Rebuffer ratio 45% above baseline on Revolut BR through the GRU edge
2.81%
from 1.34% · +3.4σ
214,800
Android 14 · Revolut BR · GRU · app 3.4.1
8,900
Modelled over 30 days
3h 42m ago
28 Aug 10:38 UTC
CDN edge, origin, cache. Attributing here is what makes the other two stick.
Triage
What is happening
Rebuffering in this cohort has been outside its seasonal band for 3h 42m and is still rising. The movement is not platform-wide: automatic cohort decomposition attributes 88% of the change to Android 14 devices on Revolut BR served by the São Paulo POP since app release 3.4.1. CloudWatch shows GRU cache hit ratio down 12.5pp over the same window, which is the likeliest cause rather than a client regression. Engagement in the cohort is already responding — minutes per session down 11.4% — and cancellations are up 6.2% on a four-day lag.
Ask SimpleStream to confirm GRU origin-shield configuration after the 3.4.1 rollout, and to compare segment sizes served from GRU against QRO.
What fired, and against what
Each signal names the detector that produced it, the value it saw and the value it expected. This is the part a vendor will try to take apart, so it is stated in full.
- S-8841
Rebuffer ratio
NPAW2.81%expected 1.34%+3.4σ- Slice
- Android 14 · Revolut BR · GRU
- Detector
- Seasonal baseline
- Confidence
- 97%
- Users
- 214,800
- Detected
- 3h 42m ago
- S-8843
CDN cache hit ratio
CW81.6%expected 94.1%−12.5pp- Slice
- GRU edge · all tenants
- Detector
- Threshold rule
- Confidence
- 99%
- Users
- 341,200
- Detected
- 3h 56m ago
- S-8847
Minutes per session
FIRE18.4expected 20.8−11.4%- Slice
- Android 14 · Revolut BR · GRU
- Detector
- Cohort decomposition
- Confidence
- 91%
- Users
- 214,800
- Detected
- 2h 48m ago
- S-8852
Cancellation rate
RSHFT4.14%expected 3.90%+6.2%- Slice
- Revolut BR · rebuffer-exposed users
- Detector
- Churn model
- Confidence
- 74%
- Users
- 8,900
- Detected
- 1h 34m ago
Evidence
The governed query each detector ran, the rows it returned, and the fact grain underneath. Every table exports.
Rebuffer ratio vs. seasonal baseline, hourly
SELECT hour, metric('rebuffer_ratio') AS observed, baseline('rebuffer_ratio', season => 'hour_of_week') AS expected
FROM semantic.playback
WHERE tenant_id = 'revolut-br' AND os_version LIKE 'Android 14%' AND cdn_pop = 'GRU'
AND hour >= now() - interval '6 hours'
GROUP BY hour ORDER BY hour| hour | observed | expected | dev |
|---|---|---|---|
| 08:00 | 1.41% | 1.36% | +0.3σ |
| 09:00 | 1.58% | 1.39% | +0.9σ |
| 10:00 | 2.02% | 1.41% | +2.1σ |
| 11:00 | 2.44% | 1.38% | +2.9σ |
| 12:00 | 2.67% | 1.33% | +3.2σ |
| 13:00 | 2.81% | 1.34% | +3.4σ |
Cohort decomposition of the movement
SELECT dimension, slice, contribution_pct FROM detect.decompose(metric => 'rebuffer_ratio', window => '6 hours') ORDER BY contribution_pct DESC LIMIT 5
| dimension | slice | share of change |
|---|---|---|
| cdn_pop | GRU | 88.0% |
| os_version | Android 14 | 84.2% |
| tenant_id | revolut-br | 79.6% |
| app_version | 3.4.1 | 71.4% |
| device_model | Moto G84 | 22.8% |
GRU edge cache hit ratio
SELECT hour, metric('cache_hit_ratio') AS observed
FROM semantic.cdn_edge
WHERE cdn_pop = 'GRU' AND hour >= now() - interval '6 hours'
GROUP BY hour ORDER BY hour| hour | cache hit | 5xx rate | p95 latency |
|---|---|---|---|
| 08:00 | 94.1% | 0.04% | 148ms |
| 10:00 | 89.4% | 0.11% | 214ms |
| 12:00 | 83.2% | 0.28% | 396ms |
| 13:00 | 81.6% | 0.34% | 441ms |
Route an evidence ticket
Pre-filled from the finding and addressed by fault domain. Editable before it goes.
- Rebuffer ratio vs. seasonal baseline, hourly (6 rows)
- Cohort decomposition of the movement (5 rows)
- GRU edge cache hit ratio (4 rows)
Timeline
- Detected28 Aug 10:38 UTC
Seasonal baseline on Rebuffer ratio — 2.81% against 1.34%
Detection engine - Routed28 Aug 10:52 UTC
Sony — infrastructure — SONYINF-8841
T. Cseh - Response28 Aug 12:44 UTC
Infra confirmed a shield config change on 26 Aug and is rolling it back. Attributed to Sony, not SimpleStream.
Sony — infrastructure
Related findings
Nothing related. For a first occurrence that is expected; for a recurring defect it usually means the related-findings link has not been established rather than that none exists.
Clustered support tickets
- Video keeps stopping to load3h 6m ago
ZD-48120 · Revolut BR
- Constant buffering on my phone2h 34m ago
ZD-48134 · Revolut BR
- Unwatchable this evening2h 1m ago
ZD-48141 · Revolut BR
- Cannot finish an episode1h 36m ago
ZD-48150 · Revolut BR
- Buffering — want to cancel1h 2m ago
ZD-48166 · Revolut BR