Per-domain HDBSCAN drift leaderboard
Weekly unsupervised clustering of per-domain feature vectors (block rate, country footprint, dominant blocking method). Drift score = L2 distance between this week and last week in the same standardized space. A higher score means the domain's blocking footprint changed more.
Domains
—
Clusters this week
—
Clusters last week
—
New clusters this week
0
| # | Domain | Status | Last → This | Drift score | Block rate | n countries |
|---|---|---|---|---|---|---|
| 1 | wechat.com | new | C → noise | — | 100.0% | 1 |
| 2 | nytimes.com | present_both | C0 → noisemoved | 2.877 | 95.5% | 21 |
| 3 | facebook.com | present_both | C1 → C1 | 0.463 | 100.0% | 25 |
| 4 | telegram.org | present_both | C1 → C1 | 0.455 | 100.0% | 26 |
| 5 | twitter.com | present_both | C1 → C1 | 0.445 | 100.0% | 29 |
| 6 | whatsapp.com | present_both | C0 → C1moved | 0.444 | 100.0% | 23 |
| 7 | instagram.com | present_both | C1 → C1 | 0.423 | 100.0% | 26 |
| 8 | signal.org | present_both | C1 → C1 | 0.419 | 100.0% | 26 |
| 9 | youtube.com | present_both | C1 → C1 | 0.394 | 100.0% | 24 |
| 10 | protonvpn.com | present_both | noise → noise | 0.390 | 100.0% | 25 |
| 11 | huggingface.co | present_both | noise → noise | 0.385 | 94.1% | 26 |
| 12 | medium.com | present_both | C0 → C0 | 0.350 | 100.0% | 21 |
| 13 | tiktok.com | present_both | C0 → noisemoved | 0.239 | 100.0% | 24 |
| 14 | psiphon.ca | present_both | C0 → C0 | 0.238 | 100.0% | 26 |
| 15 | getlantern.org | present_both | C0 → C0 | 0.229 | 100.0% | 24 |
| 16 | bbc.com | present_both | C0 → C0 | 0.201 | 100.0% | 22 |
| 17 | google.com | present_both | noise → noise | 0.193 | 100.0% | 20 |
| 18 | chat.deepseek.com | present_both | noise → noise | 0.182 | 2.5% | 1 |
| 19 | reddit.com | present_both | C0 → C0 | 0.177 | 100.0% | 21 |
| 20 | claude.ai | present_both | noise → noise | 0.148 | 11.7% | 26 |
| 21 | chatgpt.com | present_both | noise → noise | 0.145 | 12.4% | 28 |
| 22 | chat.openai.com | present_both | noise → noise | 0.144 | 14.3% | 27 |
| 23 | substack.com | present_both | noise → noise | 0.131 | 100.0% | 21 |
| 24 | gemini.google.com | present_both | noise → noise | 0.072 | 13.0% | 27 |
| 25 | openai.com | present_both | noise → noise | 0.063 | 12.7% | 28 |
| 26 | theguardian.com | present_both | C0 → noisemoved | 0.045 | 100.0% | 21 |
| 27 | tumblr.com | present_both | noise → noise | 0.000 | 100.0% | 21 |
| 28 | chat.mistral.ai | present_both | noise → noise | 0.000 | 50.0% | 1 |
GET /v1/anomaly/domain-drift/leaderboard
Raw JSON of the same data
HDBSCAN drift finding
Methodology, weekly cron schedule, honest caveats about week-over-week stability
Why a separate domain-drift surface? The per-country DBSCAN at /atlas/anomaly catches country-day shape anomalies. HDBSCAN at the domain level catches global blocking-pattern changes — “is anyone blocking openai.com differently this week?” The two are orthogonal: one detects per-country novelty, the other detects per-domain novelty.
Generated: 2026-06-14T04:00:03.887087Z