{
  "schema": "memcat-banking77-source-label-audit-v1",
  "completedAt": "2026-10-05T22:53:07.774453+00:00",
  "question": "Does the PIN-focused get_physical_card label originate in the pinned upstream dataset or from a MemCat CSV/mapping bug?",
  "conclusion": "The exact pinned upstream PolyAI train/test CSV files label PIN questions get_physical_card. No import or label-mapping error was found.",
  "passed": true,
  "readOnlyScope": "Re-fetched public original source bytes and read local artifacts/code/reports. No model inference, source changes, data changes, label changes or prompt tuning. This new audit receipt is the only written artifact.",
  "sourceRevision": "57ec275d8078af65b7731c2a98be812d844a6d6b",
  "remoteChecks": [
    {
      "url": "https://raw.githubusercontent.com/PolyAI-LDN/task-specific-datasets/57ec275d8078af65b7731c2a98be812d844a6d6b/banking_data/train.csv",
      "localPath": "artifacts/memcat03-data/source-train.csv",
      "bytes": 839073,
      "sha256": "b06e26ac675513959a63135f11b94ea7786ed02da65db93a5650d8838cbc664b",
      "remoteBytesExactlyEqualLocal": true
    },
    {
      "url": "https://raw.githubusercontent.com/PolyAI-LDN/task-specific-datasets/57ec275d8078af65b7731c2a98be812d844a6d6b/banking_data/test.csv",
      "localPath": "artifacts/memcat03-data/source-test.csv",
      "bytes": 239961,
      "sha256": "d12d6e3bc4c3103966ae786dc435913c0c563dfa328f5a3646d0e62cfeeb474d",
      "remoteBytesExactlyEqualLocal": true
    },
    {
      "url": "https://raw.githubusercontent.com/PolyAI-LDN/task-specific-datasets/57ec275d8078af65b7731c2a98be812d844a6d6b/banking_data/categories.json",
      "localPath": "artifacts/memcat03-data/source-categories.json",
      "bytes": 2036,
      "sha256": "53261da888122daf2d120d925458631d9619e15d82e56052e7a42e535ce32b63",
      "remoteBytesExactlyEqualLocal": true
    }
  ],
  "parserChecks": {
    "independentParser": "Python standard-library csv.DictReader with newline-preserving file input",
    "implementationUnderReview": "scripts/memcat-data.ts parseBankingTraining/parseCsv invoked through Node 22 native TypeScript stripping",
    "implementationSha256": "6c4b680347f7a4f616ce39c8c62a0614f99d998f67999bfd3a2c135e389077f4",
    "trainingRowsExactlyEqual": 10003,
    "testRowsExactlyEqual": 3080,
    "allFieldsChecked": [
      "stable original row id",
      "full original text including CSV quoting/newlines",
      "exact original category string"
    ],
    "mismatches": 0,
    "mappingContract": "parseBankingTraining assigns label: fields[1] directly at scripts/memcat-data.ts:93. The category list validates membership; it is not used as an integer-to-label index. evaluate-memcat-release.ts:36 changes the generated train ID prefix to test and leaves text/label unchanged."
  },
  "artifactChecks": {
    "trainingDevelopmentCalibrationRowsExactSourceMatch": 9999,
    "uniquePartitionRowIds": 9999,
    "onlyRemovedTrainingRows": 4,
    "removedRowsExactlyEqualManifestDuplicateList": true,
    "allPartitionFileHashesMatchFrozenManifest": true,
    "releaseTestRowsExactSourceMatch": 3080,
    "localLlmPlanRowsExactSourceMatch": 770,
    "mismatches": 0
  },
  "categoryEvidence": {
    "label": "get_physical_card",
    "trainingRows": 106,
    "trainingRowsContainingCaseInsensitivePin": 105,
    "testRows": 40,
    "testRowsContainingCaseInsensitivePin": 40,
    "trainingExample": {
      "dataRowOneBased": 3997,
      "physicalFileLineOneBased": 4005,
      "id": "banking77-train-03997",
      "text": "Where can I get my card PIN?",
      "category": "get_physical_card",
      "sourceUrl": "https://raw.githubusercontent.com/PolyAI-LDN/task-specific-datasets/57ec275d8078af65b7731c2a98be812d844a6d6b/banking_data/train.csv"
    },
    "testExample": {
      "dataRowOneBased": 1247,
      "physicalFileLineOneBased": 1251,
      "id": "banking77-test-01247",
      "text": "How do I find my card PIN?",
      "category": "get_physical_card",
      "sourceUrl": "https://raw.githubusercontent.com/PolyAI-LDN/task-specific-datasets/57ec275d8078af65b7731c2a98be812d844a6d6b/banking_data/test.csv"
    }
  },
  "interpretation": "The category identifier is an opaque upstream label, not a reliable natural-language definition. Humanizing underscores into a description retained this misleading name in the frozen reference prompt. This is a baseline limitation to disclose and a training/development hypothesis for a future configuration, not justification for modifying the completed scored run. The label-mapping integrity of the current release and comparison is confirmed."
}
