{
  "tool": "catalog-price-preview",
  "version": "0.2.1",
  "source_files": {
    "current.csv": {
      "sha256": "0fbb9c69e5c5db5f1516e6584f5f5dbd47fe275bf6f7157cfe7b440912e65932",
      "bytes": 69,
      "data_rows": 3
    },
    "supplier.csv": {
      "sha256": "5fbaf74e226e1ab59ea992f18826093a5256036d4d2431ac6031394f9eab194e",
      "bytes": 69,
      "data_rows": 3
    }
  },
  "rows": [
    {
      "sku": "0007",
      "old_price": "1.23",
      "new_price": "1.25",
      "difference": "0.02",
      "disposition": "CHANGED",
      "source_rows": [
        "current.csv:2",
        "supplier.csv:2"
      ],
      "related_rows": [],
      "codes": []
    },
    {
      "sku": "7",
      "old_price": "0.00",
      "new_price": "0.00",
      "difference": "0.00",
      "disposition": "UNCHANGED",
      "source_rows": [
        "current.csv:3",
        "supplier.csv:3"
      ],
      "related_rows": [],
      "codes": []
    },
    {
      "sku": "CURRENT-ONLY",
      "old_price": "10.00",
      "new_price": null,
      "difference": null,
      "disposition": "MISSING",
      "source_rows": [
        "current.csv:4"
      ],
      "related_rows": [],
      "codes": []
    },
    {
      "sku": "SUPPLIER-ONLY",
      "old_price": null,
      "new_price": "3.50",
      "difference": null,
      "disposition": "NEW",
      "source_rows": [
        "supplier.csv:4"
      ],
      "related_rows": [],
      "codes": []
    }
  ],
  "summary": {
    "current_rows": 3,
    "supplier_rows": 3,
    "preview_rows": 4,
    "accounted_input_rows": 6,
    "CHANGED": 1,
    "UNCHANGED": 1,
    "NEW": 1,
    "MISSING": 1,
    "INVALID": 0
  },
  "rules": {
    "currency": "USD",
    "rounding": "ROUND_HALF_UP per price to cents; difference=new-old after rounding",
    "status_meaning": "All rows are preview-only; NEW/MISSING never create/delete; INVALID blocks comparison; UNCHANGED means rounded prices match only."
  }
}
