{
  "generatedAt": "2026-07-29T02:18:55.493Z",
  "provenance": {
    "provisions": 4330,
    "withSourceRecord": 4330,
    "authoritativeShare": 1
  },
  "classification": {
    "tagsByMethod": {
      "model": 315,
      "keyword": 2050,
      "source": 6624
    },
    "vsPublisher": [
      {
        "method": "keyword",
        "measuredWorks": 1,
        "classifierTags": 387,
        "confirmedViaHierarchy": 82,
        "confirmedStrict": 81,
        "agreementRate": 0.21188630490956073,
        "officialDescriptorPairs": 8,
        "officialRecovered": 3,
        "workLevelRecall": 0.375
      },
      {
        "method": "model",
        "measuredWorks": 1,
        "classifierTags": 315,
        "confirmedViaHierarchy": 104,
        "confirmedStrict": 47,
        "agreementRate": 0.33015873015873015,
        "officialDescriptorPairs": 8,
        "officialRecovered": 7,
        "workLevelRecall": 0.875
      }
    ],
    "notice": "method='source' tags are the publisher's own EuroVoc descriptors (work-level, from the CELLAR notice); classifiers tag at provision level. agreementRate credits a classifier tag whose concept, or any broader ancestor, is in the publisher's set for that work; confirmedStrict requires the same concept. Publisher descriptors describe works, not provisions — this measures consistency with the publisher, not provision-level correctness, which has no published ground truth. One comparison row per classifier method. Known bias: storage keeps one method per (provision, concept) — the best-evidence row wins — so a classifier tag that AGREES with a publisher tag on the same provision is absorbed into the source row and leaves the classifier's surviving tags skewed toward disagreement; classifier agreement rates here are therefore lower bounds."
  }
}