{
  "rows": 555,
  "unique_documents": 127,
  "cache_sha256": "66ed25a1d7a030a7a803eeb6b4e5b48e220f9784e48cf5357d2a3d8a65a753bd",
  "small_model_version": "3.7.1",
  "ner": [
    {
      "model": "spacy_small",
      "gold_set": "masked",
      "tp": 4442,
      "fp": 12516,
      "fn": 1642,
      "precision": 0.26194126665880413,
      "recall": 0.7301117685733071,
      "f1": 0.38555680930474784
    },
    {
      "model": "spacy_small",
      "gold_set": "all",
      "tp": 8817,
      "fp": 8141,
      "fn": 3212,
      "precision": 0.519931595707041,
      "recall": 0.7329786349655001,
      "f1": 0.6083416704039742
    },
    {
      "model": "roberta_names_only",
      "gold_set": "masked",
      "tp": 5120,
      "fp": 1250,
      "fn": 964,
      "precision": 0.8037676609105181,
      "recall": 0.84155161078238,
      "f1": 0.8222257909105508
    },
    {
      "model": "roberta_names_only",
      "gold_set": "all",
      "tp": 5766,
      "fp": 604,
      "fn": 6263,
      "precision": 0.9051805337519623,
      "recall": 0.4793415911547095,
      "f1": 0.6267731941953367
    }
  ],
  "policies": [
    {
      "policy": "roberta_spans",
      "gold_set": "masked",
      "mentions": 6084,
      "fully_removed": 4824,
      "rows": 555,
      "clean_rows": 277,
      "removed_chars": 250359,
      "total_chars": 2646610,
      "non_target_removed": 177993,
      "non_target_chars": 2554933,
      "person_n": 4138,
      "person_full": 3681,
      "org_n": 1946,
      "org_full": 1143,
      "full_removal": 0.7928994082840237,
      "clean_rate": 0.4990990990990991,
      "text_removed": 0.09459610596196644,
      "non_target_removal": 0.06966640612493556
    },
    {
      "policy": "roberta_spans",
      "gold_set": "all",
      "mentions": 12029,
      "fully_removed": 5347,
      "rows": 555,
      "clean_rows": 0,
      "removed_chars": 250359,
      "total_chars": 2646610,
      "non_target_removed": 168533,
      "non_target_chars": 2431595,
      "person_n": 4685,
      "person_full": 4037,
      "org_n": 7344,
      "org_full": 1310,
      "full_removal": 0.4445091030010807,
      "clean_rate": 0.0,
      "text_removed": 0.09459610596196644,
      "non_target_removal": 0.06930965066139715
    },
    {
      "policy": "majority_spans",
      "gold_set": "masked",
      "mentions": 6084,
      "fully_removed": 5071,
      "rows": 555,
      "clean_rows": 311,
      "removed_chars": 254946,
      "total_chars": 2646610,
      "non_target_removed": 180872,
      "non_target_chars": 2554933,
      "person_n": 4138,
      "person_full": 3870,
      "org_n": 1946,
      "org_full": 1201,
      "full_removal": 0.8334976988823143,
      "clean_rate": 0.5603603603603604,
      "text_removed": 0.09632926649563026,
      "non_target_removal": 0.07079324585028257
    },
    {
      "policy": "majority_spans",
      "gold_set": "all",
      "mentions": 12029,
      "fully_removed": 5700,
      "rows": 555,
      "clean_rows": 0,
      "removed_chars": 254946,
      "total_chars": 2646610,
      "non_target_removed": 170075,
      "non_target_chars": 2431595,
      "person_n": 4685,
      "person_full": 4274,
      "org_n": 7344,
      "org_full": 1426,
      "full_removal": 0.47385485077728823,
      "clean_rate": 0.0,
      "text_removed": 0.09632926649563026,
      "non_target_removal": 0.06994380231905395
    },
    {
      "policy": "union_spans",
      "gold_set": "masked",
      "mentions": 6084,
      "fully_removed": 5187,
      "rows": 555,
      "clean_rows": 348,
      "removed_chars": 268128,
      "total_chars": 2646610,
      "non_target_removed": 192127,
      "non_target_chars": 2554933,
      "person_n": 4138,
      "person_full": 3934,
      "org_n": 1946,
      "org_full": 1253,
      "full_removal": 0.8525641025641025,
      "clean_rate": 0.6270270270270271,
      "text_removed": 0.10130997766954708,
      "non_target_removal": 0.07519844943096356
    },
    {
      "policy": "union_spans",
      "gold_set": "all",
      "mentions": 12029,
      "fully_removed": 5931,
      "rows": 555,
      "clean_rows": 0,
      "removed_chars": 268128,
      "total_chars": 2646610,
      "non_target_removed": 178203,
      "non_target_chars": 2431595,
      "person_n": 4685,
      "person_full": 4367,
      "org_n": 7344,
      "org_full": 1564,
      "full_removal": 0.49305844209826255,
      "clean_rate": 0.0,
      "text_removed": 0.10130997766954708,
      "non_target_removal": 0.07328646423438114
    },
    {
      "policy": "union_sentences",
      "gold_set": "masked",
      "mentions": 6084,
      "fully_removed": 5854,
      "rows": 555,
      "clean_rows": 485,
      "removed_chars": 1689869,
      "total_chars": 2646610,
      "non_target_removed": 1601657,
      "non_target_chars": 2554933,
      "person_n": 4138,
      "person_full": 4050,
      "org_n": 1946,
      "org_full": 1804,
      "full_removal": 0.9621959237343852,
      "clean_rate": 0.8738738738738738,
      "text_removed": 0.6385032173232928,
      "non_target_removal": 0.6268880632094853
    },
    {
      "policy": "union_sentences",
      "gold_set": "all",
      "mentions": 12029,
      "fully_removed": 10581,
      "rows": 555,
      "clean_rows": 131,
      "removed_chars": 1689869,
      "total_chars": 2646610,
      "non_target_removed": 1498090,
      "non_target_chars": 2431595,
      "person_n": 4685,
      "person_full": 4541,
      "org_n": 7344,
      "org_full": 6040,
      "full_removal": 0.8796242414165766,
      "clean_rate": 0.23603603603603604,
      "text_removed": 0.6385032173232928,
      "non_target_removal": 0.6160935517633488
    },
    {
      "policy": "suppress_all",
      "gold_set": "masked",
      "mentions": 6084,
      "fully_removed": 6084,
      "rows": 555,
      "clean_rows": 555,
      "removed_chars": 2646610,
      "total_chars": 2646610,
      "non_target_removed": 2554933,
      "non_target_chars": 2554933,
      "person_n": 4138,
      "person_full": 4138,
      "org_n": 1946,
      "org_full": 1946,
      "full_removal": 1.0,
      "clean_rate": 1.0,
      "text_removed": 1.0,
      "non_target_removal": 1.0
    },
    {
      "policy": "suppress_all",
      "gold_set": "all",
      "mentions": 12029,
      "fully_removed": 12029,
      "rows": 555,
      "clean_rows": 555,
      "removed_chars": 2646610,
      "total_chars": 2646610,
      "non_target_removed": 2431595,
      "non_target_chars": 2431595,
      "person_n": 4685,
      "person_full": 4685,
      "org_n": 7344,
      "org_full": 7344,
      "full_removal": 1.0,
      "clean_rate": 1.0,
      "text_removed": 1.0,
      "non_target_removal": 1.0
    }
  ],
  "notes": [
    "NER: PERSON/ORG only, DIRECT+QUASI gold, typed partial matching; small model run live, RoBERTa replayed at 512 tokens.",
    "Redaction uses predictions of ALL entity types; union combines character coverage without dropping overlaps.",
    "Full removal means every gold mention character removed; clean rate is over annotation rows, not unique judgments.",
    "Text removed measures all characters, including whitespace; non-target means outside the selected PERSON/ORG gold, not necessarily harmless text.",
    "Sentence policy removes punctuation/newline-delimited segments containing any prediction. Suppress-all is a zero-utility bound.",
    "Exploratory held-out replay, no new external validation, speed benchmarks or confidence-threshold sweep."
  ]
}
