{
  "generated_at": "2026-08-01T08:57:31.927857+00:00",
  "signals": {
    "ooni_gfw": {
      "n_pairs": 93,
      "metric_now": 59.8,
      "denominator_now": 225541.0,
      "metric_robust_z": 0.3,
      "denominator_robust_z": -1.52,
      "denominator_change_pct": -16.5,
      "verdict": "NO_MOVE",
      "note": "the metric has not departed from its own history",
      "denominator_is": "OONI probe measurements in the rolling window"
    },
    "ddti_threat": {
      "n_pairs": 180,
      "metric_now": 2.8581,
      "denominator_now": 199.0,
      "metric_robust_z": 0.89,
      "denominator_robust_z": 6.97,
      "denominator_change_pct": 18.5,
      "verdict": "NO_MOVE",
      "note": "the metric has not departed from its own history",
      "denominator_is": "distinct terms extracted from the CDT deletion stream"
    },
    "ddti_novelty": {
      "n_pairs": 180,
      "metric_now": 16.0,
      "denominator_now": 199.0,
      "metric_robust_z": null,
      "denominator_robust_z": 6.97,
      "denominator_change_pct": 18.5,
      "verdict": "NO_MOVE",
      "note": "the metric has not departed from its own history",
      "denominator_is": "distinct terms extracted from the CDT deletion stream"
    },
    "gdelt_containment": {
      "n_pairs": 102,
      "metric_now": 4.0,
      "denominator_now": 25.0,
      "metric_robust_z": -0.34,
      "denominator_robust_z": null,
      "denominator_change_pct": 0.0,
      "verdict": "NO_MOVE",
      "note": "the metric has not departed from its own history",
      "denominator_is": "terms carried into the GDELT cross-signal"
    },
    "weibo_suppression": {
      "n_pairs": 52,
      "metric_now": 0.0,
      "denominator_now": 0.0,
      "metric_robust_z": null,
      "denominator_robust_z": null,
      "denominator_change_pct": null,
      "verdict": "NO_MOVE",
      "note": "the metric has not departed from its own history",
      "denominator_is": "DDTI terms available to join against the hot-search board"
    },
    "github_refuge": {
      "n_pairs": 52,
      "metric_now": 4.0,
      "denominator_now": 7.0,
      "metric_robust_z": 2.02,
      "denominator_robust_z": null,
      "denominator_change_pct": 0.0,
      "verdict": "INCONCLUSIVE",
      "note": "denominator is constant across the reference; cannot condition",
      "denominator_is": "repositories under watch"
    }
  },
  "confounded": [],
  "headline": "no signal's movement is explained by its own measurement coverage",
  "method": "for each signal with a recorded sample size: robust (MAD) z of the metric and of its denominator, then least-squares metric ~ a + b*denominator over the reference readings and the latest residual scored against reference residuals. CONFIRMED when the departure survives conditioning (>= 0.5 of the raw z and >= 2); COVERAGE_CONFOUNDED when it does not; INCONCLUSIVE when the fit cannot support either call",
  "caveats": [
    "conditioning is linear and the histories are short — the fit correlation and pair count are published with every verdict, and |r| < 0.3 is treated as uninformative rather than as licence to conclude",
    "CONFIRMED rules out the COVERAGE confound specifically, not every confound; it is not a causal claim about censorship",
    "signals whose sample size is not recorded in their history cannot be guarded at all and are absent here rather than assumed clean"
  ]
}
