{
  "schema": "smartadvisor-lab-route-report",
  "schema_version": "1.0",
  "generated_at": "2026-07-05T15:11:33Z",
  "region_id": "fr",
  "region_name": "France",
  "latest_run": {
    "run_id": "9a5a2146b21079f4e6aa5fda",
    "region": "fr",
    "checked_at": "2026-07-05T15:11:28Z",
    "ts": 1783264288,
    "exit_ip": "149.102.245.161",
    "provider": "Proton VPN",
    "protocol": "WireGuard",
    "config": "proton-fr-a.conf",
    "peer": "DG6UsR8aCBawKEw9FQoGDBIxJHinM7oedppLYZFxA0o=",
    "endpoint": "DG6UsR8aCBawKEw9FQoGDBIxJHinM7oedppLYZFxA0o=\t149.102.245.156:51820",
    "evidence_level": "full"
  },
  "latest_platform_checks": [
    {
      "platform_id": "apple_tv_plus",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 403,
      "checked_at": "2026-07-05T15:11:24Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "bbc_iplayer",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 344,
      "checked_at": "2026-07-05T15:11:21Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "channel_4",
      "status": "blocked",
      "http_code": 403,
      "latency_ms": 252,
      "checked_at": "2026-07-05T15:11:27Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "crunchyroll",
      "status": "blocked",
      "http_code": 403,
      "latency_ms": 106,
      "checked_at": "2026-07-05T15:11:27Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "dazn",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 592,
      "checked_at": "2026-07-05T15:11:26Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "disneyplus",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 440,
      "checked_at": "2026-07-05T15:11:21Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "espn_plus",
      "status": "blocked",
      "http_code": 403,
      "latency_ms": 416,
      "checked_at": "2026-07-05T15:11:25Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "fubo_tv",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 614,
      "checked_at": "2026-07-05T15:11:27Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "hulu_us",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 710,
      "checked_at": "2026-07-05T15:11:20Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "max",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 1314,
      "checked_at": "2026-07-05T15:11:23Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "netflix_us",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 1421,
      "checked_at": "2026-07-05T15:11:18Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "paramount_plus",
      "status": "blocked",
      "http_code": 406,
      "latency_ms": 293,
      "checked_at": "2026-07-05T15:11:26Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "peacock",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 466,
      "checked_at": "2026-07-05T15:11:25Z",
      "evidence_level": "full"
    },
    {
      "platform_id": "prime_video",
      "status": "ok",
      "http_code": 200,
      "latency_ms": 1595,
      "checked_at": "2026-07-05T15:11:21Z",
      "evidence_level": "full"
    }
  ],
  "latest_browser_by_platform": [],
  "latest_leak_evidence": {
    "run_id": "2bd48e169638481fb0863da7c4f2650a",
    "region": "fr",
    "interface": "wg-proton-fr",
    "observed_at": "2026-07-05T02:02:40Z",
    "host_public_ip": "46.224.56.53",
    "ipv4_ip": "149.102.245.161",
    "ipv4_state": "vpn_exit_observed",
    "ipv4_error": null,
    "dns_resolver_ip": "109.200.199.201",
    "dns_state": "resolver_observed",
    "dns_rtt_ms": 62.71,
    "dns_error": null,
    "ipv6_ip": null,
    "ipv6_state": "no_ipv6_result",
    "ipv6_error": "curl: (7) Failed to connect to api64.ipify.org port 443 after 9 ms: Couldn't connect to server",
    "stun_mapped_ip": "149.102.245.161",
    "stun_state": "mapped_to_vpn_exit",
    "stun_rtt_ms": 29.23,
    "stun_error": null,
    "evidence_scope": "Route-bound HTTP, DNS and UDP STUN evidence. STUN mapping is not a browser WebRTC test. No IPv6 result is not proof that every client blocks IPv6 leaks."
  },
  "latest_browser_webrtc": {
    "run_id": "90620fea318d4dfbbffacab605757a7a",
    "region": "fr",
    "observed_at": "2026-07-05T05:02:53Z",
    "browser_exit_ip": "149.102.245.161",
    "expected_exit_ip": "149.102.245.161",
    "public_candidate_ips": [
      "149.102.245.161"
    ],
    "candidate_count": 2,
    "state": "vpn_exit_only",
    "evidence_scope": "Chromium ICE candidates collected from a process fully routed through the regional WireGuard table. A clean server harness does not prove that every user browser or operating system has the same behaviour."
  },
  "latest_route_guard": {
    "run_id": "f3ad97f580ef4a11b0dc4a0844053520",
    "region": "fr",
    "interface": "wg-proton-fr",
    "observed_at": "2026-07-05T05:03:05Z",
    "expected_exit_ip": "149.102.245.161",
    "state": "blocked",
    "observed_ip": "",
    "elapsed_ms": 9,
    "evidence_scope": "Lab namespace route guard, not a provider application kill switch"
  },
  "open_incidents": [],
  "latest_performance": {
    "profile_id": "vpn-fr",
    "region": "fr",
    "checked_at": "2026-07-05T03:03:24Z",
    "exit_ip": "149.102.245.161",
    "ping_ms": 188.38,
    "jitter_ms": 55.44,
    "packet_loss_pct": 0.0,
    "download_mbps": 255.97,
    "upload_mbps": 32.33,
    "method_version": "2026-06-20.2",
    "target": "SmartAdvisor external Lab target on Hostinger, served through its CDN edge"
  },
  "latest_baseline": {
    "profile_id": "baseline",
    "region": null,
    "checked_at": "2026-07-05T03:02:39Z",
    "exit_ip": "46.224.56.53",
    "ping_ms": 171.11,
    "jitter_ms": 36.35,
    "packet_loss_pct": 0.0,
    "download_mbps": 361.42,
    "upload_mbps": 42.13,
    "method_version": "2026-06-20.2",
    "target": "SmartAdvisor external Lab target on Hostinger, served through its CDN edge"
  },
  "exit_ips_30d": [
    {
      "exit_ip": "149.102.245.161",
      "run_count": 2005,
      "first_seen": "2026-06-20T17:41:40Z",
      "last_seen": "2026-07-05T15:11:28Z"
    },
    {
      "exit_ip": "149.102.245.150",
      "run_count": 3,
      "first_seen": "2026-06-28T09:52:39Z",
      "last_seen": "2026-07-05T08:11:19Z"
    },
    {
      "exit_ip": "149.102.245.154",
      "run_count": 26,
      "first_seen": "2026-06-21T13:21:44Z",
      "last_seen": "2026-07-02T22:51:28Z"
    }
  ],
  "windows": {
    "24h": {
      "from": "2026-07-04T15:11:33Z",
      "to": "2026-07-05T15:11:33Z",
      "samples": 2016,
      "full_evidence_samples": 2016,
      "latency_samples": 2016,
      "public_page_reached": 1435,
      "request_rejected": 576,
      "endpoint_error": 1,
      "no_response": 4,
      "http_response_rate_pct": 99.8,
      "public_page_reached_rate_pct": 71.18,
      "median_latency_ms": 445,
      "p95_latency_ms": 1671
    },
    "7d": {
      "from": "2026-06-28T15:11:33Z",
      "to": "2026-07-05T15:11:33Z",
      "samples": 12558,
      "full_evidence_samples": 12558,
      "latency_samples": 12558,
      "public_page_reached": 8960,
      "request_rejected": 3588,
      "endpoint_error": 4,
      "no_response": 6,
      "http_response_rate_pct": 99.95,
      "public_page_reached_rate_pct": 71.35,
      "median_latency_ms": 474,
      "p95_latency_ms": 2312
    },
    "30d": {
      "from": "2026-06-05T15:11:33Z",
      "to": "2026-07-05T15:11:33Z",
      "samples": 28476,
      "full_evidence_samples": 28476,
      "latency_samples": 28476,
      "public_page_reached": 20306,
      "request_rejected": 7906,
      "endpoint_error": 234,
      "no_response": 30,
      "http_response_rate_pct": 99.89,
      "public_page_reached_rate_pct": 71.31,
      "median_latency_ms": 457,
      "p95_latency_ms": 2340
    }
  },
  "evidence_coverage": {
    "public_endpoint": "active",
    "browser_landing": "no_data",
    "performance_snapshot": "active",
    "leak_suite": "active",
    "browser_webrtc": "active",
    "route_guard": "active",
    "account_session": "not_enabled",
    "playback": "not_enabled"
  },
  "limitations": [
    "Performance results are short operational snapshots against one external target.",
    "Browser evidence covers landing pages only and does not prove sign-in or playback.",
    "STUN mapping is route-bound UDP evidence and is not a browser WebRTC test."
  ]
}
