{
  "tool_id": "art-519-payment-data-migration-completeness",
  "tool_version": "1.0.0",
  "display_name": "Payment Data Migration Completeness",
  "mcp_name": "verify_migration_completeness",
  "mandate_type": "attestation_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-519-payment-data-migration-completeness.html",
  "description": "Verifies that data moved from a legacy system to a successor is complete, value-preserving, and reconcilable, using caller-declared per-partition source and target record counts and control totals rather than reading any dataset. Checks each declared partition for count and value completeness against a declared tolerance and known exclusions, and separately checks the aggregate (the sum of every partition) against the individual partitions -- a grand total that reconciles while one or more partitions underneath do not is flagged as the inconsistency it is, not passed silently. Also checks transformation coverage (fields observed to change value with no declared transformation rule) and flags any partition verified by sampling only as a residual-risk statement, never as equivalent to a full completeness verdict. Region-portable: every fact is a caller-declared input, with no country, currency, agency, or rail hardcoded. Deterministic arithmetic only. Zero data ingestion, zero PII.",
  "input_schema_ref": "chaingraph/art-519-payment-data-migration-completeness.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d9e4f0984fd3d85463ece41f052a47bf3b98fed2df72e38ab131273cacd5d587",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IayhBMIZghIXpHNBnax5guNGDTXKcbpMdWG86CFK0K0SjnxmkrplkZTg5BtRE8RwmvVpoBmplBz/osDS0DHMbS4xVYLFLt9fCLgf60c/we38Tj8/PNakKyywLC45cS8qBj/sovG0UBbZ5MjKQJS3cAmNFOtY69cB4gEjobVMDH0RPdo02D2gB2KRPLmVQem834DnS5d9y9tu5OUTfDFGpi/OvRyj7zKlCIfwIAy8LAFm2+kk0hP4NiKYcemsUAzkGZGYtIHVnFqaYd5DB0isfQDSO+tabNCuHC9szH3MGCsBB2i24T0MKoUAEigQZRgjytfFwPMQTeE59YHy4ZzL9Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d9e4f0984fd3d85463ece41f052a47bf3b98fed2df72e38ab131273cacd5d587",
      "output": {
        "aggregate_complete": true,
        "aggregate_count_variance": 0,
        "aggregate_value_variance_display": "0.00",
        "aggregate_value_variance_minor_units": 0,
        "all_partitions_complete": true,
        "any_sampled_only": false,
        "as_of": "2026-07-31",
        "currency": "PAGES",
        "declared_transformation_rules": [],
        "migration_complete": true,
        "migration_id": "MIGR-2026-CASEDOCS-01",
        "note": "Deterministic payment data migration completeness verifier over caller-declared per-partition source/target record counts and control totals, known exclusions with reasons, declared transformation rules, and observed changed fields. Checks per-partition and aggregate-vs-partition completeness (a reconciling aggregate over broken partitions is the finding), transformation coverage, and flags any partition verified by sampling only as a residual-risk statement rather than a completeness verdict. Never reads a source or target dataset.",
        "observed_changed_field_count": 0,
        "partition_count": 2,
        "partition_inconsistent": false,
        "partitions": [
          {
            "count_complete": true,
            "count_variance": 0,
            "excluded_record_count": 5,
            "excluded_value_display": "15.00",
            "excluded_value_minor_units": 1500,
            "expected_target_record_count": 3995,
            "expected_target_value_display": "12485.00",
            "expected_target_value_minor_units": 1248500,
            "known_exclusions": [
              {
                "excluded_record_count": 5,
                "excluded_value_display": "15.00",
                "excluded_value_minor_units": 1500,
                "reason_code": "duplicate_scan_deduplicated_pre_migration"
              }
            ],
            "partition_complete": true,
            "partition_label": "CONTRACTS",
            "sample_discrepancies_found": 0,
            "sample_size": 0,
            "sampled": false,
            "source_control_total_display": "12500.00",
            "source_control_total_minor_units": 1250000,
            "source_record_count": 4000,
            "target_control_total_display": "12485.00",
            "target_control_total_minor_units": 1248500,
            "target_record_count": 3995,
            "value_complete": true,
            "value_variance_display": "0.00",
            "value_variance_minor_units": 0
          },
          {
            "count_complete": true,
            "count_variance": 0,
            "excluded_record_count": 0,
            "excluded_value_display": "0.00",
            "excluded_value_minor_units": 0,
            "expected_target_record_count": 8000,
            "expected_target_value_display": "9600.00",
            "expected_target_value_minor_units": 960000,
            "known_exclusions": [],
            "partition_complete": true,
            "partition_label": "CORRESPONDENCE",
            "sample_discrepancies_found": 0,
            "sample_size": 0,
            "sampled": false,
            "source_control_total_display": "9600.00",
            "source_control_total_minor_units": 960000,
            "source_record_count": 8000,
            "target_control_total_display": "9600.00",
            "target_control_total_minor_units": 960000,
            "target_record_count": 8000,
            "value_complete": true,
            "value_variance_display": "0.00",
            "value_variance_minor_units": 0
          }
        ],
        "partitions_with_variance_count": 0,
        "rationale": [
          "2 declared partitions evaluated; 2 of 2 reconcile in both count and value within the declared 0.00 PAGES tolerance.",
          "Aggregate (sum of declared partitions) reconciles: count variance 0, value variance 0.00 PAGES.",
          "This is a deterministic reconciliation over caller-declared source/target counts and control totals. It does not read the source or target dataset and is not a determination that any underlying data quality control has been met."
        ],
        "reconciliation_tolerance_minor_units": 0,
        "rejected_inputs": [],
        "sample_discrepancies_total": 0,
        "sampled_partition_count": 0,
        "undeclared_transformed_fields": []
      }
    }
  }
}
