Método aberto
Como chegamos ao veredito
Tudo roda no navegador. Nada sai do aparelho até você apertar Compartilhar relatório. A lógica abaixo é completa — nada oculto.
Por que isto é diferente?
O Speedtest mede um servidor próximo. Este teste verifica rotas próximas, rotas distantes e seus apps — e mostra o que funciona e o que não.
Speedtest
My ISP Sucks
Um teste cobre
Um servidor próximo
Um teste cobre
Rotas próximas, distantes e seus apps
Download, upload, ping
Sim
Download, upload, ping
Sim
Streaming, jogos, nuvem
Estimado a partir do número
Streaming, jogos, nuvem
Verificado nesses serviços
O que funciona e o que não
Não mostra
O que funciona e o que não
Mostra
Quem é o responsável
Não diz
Quem é o responsável
Wi‑Fi, operadora ou um serviço
Você pode enviar
O número
Você pode enviar
Uma reclamação
Sem ligação com a Ookla ou com o Speedtest.
Fazer este teste1 · O que medimos
Quatro camadas, do aparelho para fora:
Gateway local (preflight)
10 HEAD ao PoP Cloudflare mais perto (600 ms). Mede perda e jitter. ≥ 2 timeouts ou σ > 30 ms → caminho instável.
Nós do país (near)
AWS S3 no seu país (código do IP). Score baixo = ISP doméstico ou roteamento.
Nós internacionais (far)
16 regiões AWS S3 no mundo. Score alto com near ok = gateway internacional.
Serviços do perfil (profile)
15–25 HEAD a streaming/jogos/tech. Detecta peering e bloqueios que o ping não vê.
2 · Saúde do nó
Score de 0 (perfeito) a 1 (quebrado). Médias near e far separadas.
score = 0.7 × (packetLoss / 100)
+ 0.3 × clamp((actualMs − expectedMs) / (expectedMs × 3), 0, 1)
expectedMs = max(10, distanceKm / 50) ← speed-of-light RTT baselineExemplo — Tel Aviv → N. Virginia (9 500 km)
expectedMs = max(10, 9 500 ÷ 50) = 190 ms
actualMs = 219 ms, packetLoss = 0 %
score = 0 + 0.3 × clamp((219 − 190) / (190 × 3), 0, 1) = 0.015 → saudável
nearScore < 0.25
Near: saudável
farScore > 0.35
Far: dispara regra 6
farScore > 0.45
Far: degradado (5b)
3 · Serviço fora da curva
outlier if: status = "fail"
OR status = "slow" AND latencyMs ≥ cohortMedian × 2.5
slow = probe latency above 1 000 ms
ok under that line is not an outlierExemplo
Netflix 95 ms ✓ YouTube 88 ms ✓ Twitch 1 240 ms
cohortMedian = 88 ms → 1 240 ≥ 88 × 2.5 (220) → Twitch é outlier
4 · Cadeia de regras
Primeiro match vence. DevTools → Console mostra cada regra.
Offline
connectivity = fail, and no other check reached the internet
→ down / local_issue
Caminho local instável
Wi-Fi or cellular AND (preflight unstable OR jitter > 40 ms) AND farScore < 0.40
→ local_issue
DNS quebrado
device is online AND dns = fail
→ isp_issue
Serviço outlier específico
core healthy AND 1 ≤ outliers ≤ 40 % of services
→ service_issue
Maioria dos serviços ruim
core healthy AND badServiceFraction ≥ 50 %
→ isp_issue (peering)
Tráfego intl. bloqueado
preflight loss = 0 AND nearScore < 0.25 AND farScore > 0.45 AND ≥ 3 far nodes
→ isp_issue (gateway)
Núcleo / far degradado
any test = fail OR farScore > 0.35
→ isp_issue
Degradação leve
any test = warn (no harder rule fired)
→ local_issue or isp_issue (medium)
Tudo certo
→ healthy
5 · Entrega do plano
ratio = measuredDown / promisedDown ≥ 0.80 → "As advertised" ✓ ≥ 0.50 → "Underdelivering" ~ < 0.50 → "Far below plan" ✗
Só anota o relatório — não muda o culpado.
6 · Privacidade
Todas as sondas no navegador. Nada vai ao servidor até você apertar Compartilhar relatório.
Ao compartilhar: veredito, scores, ISP, país, meio. Nenhum IP é guardado.