{
  "generated_at": "2026-08-24T06:31:11.332716+00:00",
  "method_version": 4,
  "title": "Information Erasure Observatory",
  "thesis": "The field measures access in the present tense. We measure erasure across time — what was removed or rewritten — on three layers, and we seal our own record so it cannot be quietly rewritten in turn.",
  "erasure_index": 41.6,
  "index_scale": "0-100; higher = more of the observed record removed or rewritten",
  "layers_contributing": [
    "network",
    "model"
  ],
  "layers": [
    {
      "layer": "network",
      "title": "Network erasure",
      "detail": "reachability that disappeared — sites, messengers and tools blocked at the wire",
      "value": 58.3,
      "source": "OONI aggregation (probe_cc=CN)",
      "reading": "ooni-gfw-latest.json",
      "as_of": "2026-08-24T02:00:59.167017+00:00",
      "age_days": 0.19,
      "age_hours": 4.5
    },
    {
      "layer": "model",
      "title": "Model erasure",
      "detail": "answers a state-aligned model will no longer give — refusals and party-line substitution",
      "value": 25.0,
      "source": "Generative Firewall (aligned LLM panel)",
      "reading": "latest.json",
      "as_of": "2026-08-23T08:02:43.590725+00:00",
      "age_days": 0.94
    },
    {
      "layer": "narrative",
      "title": "Narrative erasure",
      "value": null,
      "status": "STALE",
      "detail": "encyclopedia entries rewritten to the state line — sensitive terms excised, sourcing collapsed to state media",
      "reason": "Baike narrative layer unavailable: Baike collection is disabled pending authorized access; no new observation was made. Source path readings/baike-redaction-latest.json is 24.4 days old (as of 2026-07-30T20:31:16.856256+00:00), beyond the 36.0-hour freshness bound",
      "reading": "baike-redaction-latest.json",
      "as_of": "2026-07-30T20:31:16.856256+00:00",
      "age_hours": 586.0,
      "collector_status": "disabled_no_authorized_access",
      "collector_reason": "Baike collection is disabled pending authorized access; no new observation was made",
      "pipeline_checked_at": "2026-08-24T04:52:24.235554+00:00"
    }
  ],
  "cross_checks": [
    {
      "name": "Censored Planet interference",
      "value": 4.27,
      "unit": "%",
      "as_of": "2026-08-24T06:07:17.858453+00:00",
      "age_hours": 0.4,
      "note": "independent DNS/HTTP side-channel, confirms network layer"
    },
    {
      "name": "Firewall event velocity",
      "value": 1.08,
      "unit": "x",
      "as_of": "2026-08-24T02:10:22.786113+00:00",
      "age_hours": 4.3,
      "note": "community-logged blocking/circumvention rate vs baseline"
    }
  ],
  "cross_checks_withheld": [],
  "integrity": {
    "ledger": "readings/erasure-ledger.jsonl",
    "entries": 247,
    "verified": true,
    "merkle_root": "6a59f7002aa2ddbcdbd5f136f02e83763ef195bde5df370eda6f7881dfbfd4d6",
    "head_hash": "d29ce3030beb724fdecab9d96ffb9955b83e2d23522aaa91bac3a7efafbb07c9",
    "first_ts": "2026-07-11T15:18:29.250178+00:00",
    "head_ts": "2026-08-24T06:31:11.332716+00:00",
    "by_source": {
      "ooni-gfw": 142,
      "generative-firewall": 22,
      "censored-planet": 36,
      "baike-redaction": 47
    },
    "sealed_this_run": [
      {
        "source": "censored-planet",
        "seq": 246,
        "entry_hash": "d29ce3030beb724fdecab9d96ffb9955b83e2d23522aaa91bac3a7efafbb07c9"
      }
    ],
    "verify_cmd": "python3 scripts/verify_ledger.py",
    "note": "every source reading above is hash-chained into the ledger at capture time; recompute the chain yourself to prove no past reading was altered or dropped"
  },
  "vs_access_indices": "Access observatories answer 'is X reachable now'. This answers 'what did the record lose, and can you prove our measurement of the loss was not itself edited afterward'.",
  "last_changed_at": "2026-08-24T06:31:11.332716+00:00"
}