{
  "kind": "executed synthetic JSON reconciliation model",
  "run_on": "2026-11-05",
  "runtime": "Python standard library; no Odoo or database connection",
  "case_count": 9,
  "all_expected_observations_matched": true,
  "fixture_policy": {
    "snapshot": "2026-10-31T23:59:59Z",
    "companies": [
      "A",
      "B"
    ],
    "records": "all five specified source order revisions",
    "amount_basis": "source-document amount, no currency conversion",
    "attachment_policy": "original bytes retained"
  },
  "cases": [
    {
      "case": "unchanged_baseline",
      "expected_finding_kinds": {},
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": []
      },
      "interpretation": "A control demonstrates that unchanged input is accepted by the comparison, not that a real ERP migration is approved."
    },
    {
      "case": "offsetting_amount_errors",
      "expected_finding_kinds": {
        "field_difference": 2
      },
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": [
          {
            "kind": "field_difference",
            "key": [
              "A",
              "O100"
            ],
            "field": "amount",
            "expected": "100.00",
            "actual": "110.00",
            "variance": "10.00"
          },
          {
            "kind": "field_difference",
            "key": [
              "A",
              "O101"
            ],
            "field": "amount",
            "expected": "200.00",
            "actual": "190.00",
            "variance": "-10.00"
          }
        ]
      },
      "interpretation": "Five rows and every company/currency total match, while two document amounts are wrong."
    },
    {
      "case": "partial_delivery_changed",
      "expected_finding_kinds": {
        "field_difference": 1
      },
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": [
          {
            "kind": "field_difference",
            "key": [
              "A",
              "O100"
            ],
            "field": "delivered_qty",
            "expected": "6",
            "actual": "10",
            "variance": "4"
          }
        ]
      },
      "interpretation": "Header counts and amounts cannot prove remaining fulfillment quantities."
    },
    {
      "case": "customer_link_changed",
      "expected_finding_kinds": {
        "field_difference": 2
      },
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": [
          {
            "kind": "field_difference",
            "key": [
              "A",
              "O100"
            ],
            "field": "customer_ref",
            "expected": "C-A",
            "actual": "C-B"
          },
          {
            "kind": "field_difference",
            "key": [
              "A",
              "O100"
            ],
            "field": "customer_company",
            "expected": "A",
            "actual": "B"
          }
        ]
      },
      "interpretation": "An apparently valid related customer can belong to the wrong company."
    },
    {
      "case": "attachment_replaced",
      "expected_finding_kinds": {
        "field_difference": 1
      },
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": [
          {
            "kind": "field_difference",
            "key": [
              "A",
              "O100"
            ],
            "field": "attachment_digest",
            "expected": "original-A100",
            "actual": "different-bytes"
          }
        ]
      },
      "interpretation": "The attachment count may remain unchanged while content identity is wrong. Fixture digest labels stand in for a verified content hash."
    },
    {
      "case": "draft_state_changed",
      "expected_finding_kinds": {
        "field_difference": 1
      },
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": [
          {
            "kind": "field_difference",
            "key": [
              "B",
              "O103"
            ],
            "field": "state",
            "expected": "draft",
            "actual": "sale"
          }
        ]
      },
      "interpretation": "State transitions require separate approval even when the monetary total is unchanged."
    },
    {
      "case": "source_identifier_replaced",
      "expected_finding_kinds": {
        "missing": 1,
        "unexpected": 1
      },
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": [
          {
            "kind": "missing",
            "key": [
              "A",
              "O101"
            ]
          },
          {
            "kind": "unexpected",
            "key": [
              "A",
              "O999"
            ]
          }
        ]
      },
      "interpretation": "Matching record counts can conceal one missing and one unplanned document."
    },
    {
      "case": "duplicate_composite_key",
      "expected_finding_kinds": {
        "duplicate_key": 1,
        "missing": 1,
        "field_difference": 6
      },
      "observed": {
        "comparable": true,
        "row_counts": {
          "source": 5,
          "target": 5
        },
        "counts_match": true,
        "source_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "target_totals": {
          "A/EUR": "300.00",
          "A/USD": "50.00",
          "B/EUR": "150.00"
        },
        "totals_match": true,
        "findings": [
          {
            "kind": "duplicate_key",
            "side": "target",
            "key": [
              "B",
              "O100"
            ],
            "count": 2
          },
          {
            "kind": "missing",
            "key": [
              "B",
              "O103"
            ]
          },
          {
            "kind": "field_difference",
            "key": [
              "B",
              "O100"
            ],
            "field": "amount",
            "expected": "100.00",
            "actual": "50.00",
            "variance": "-50.00"
          },
          {
            "kind": "field_difference",
            "key": [
              "B",
              "O100"
            ],
            "field": "state",
            "expected": "sale",
            "actual": "draft"
          },
          {
            "kind": "field_difference",
            "key": [
              "B",
              "O100"
            ],
            "field": "ordered_qty",
            "expected": "10",
            "actual": "1",
            "variance": "-9"
          },
          {
            "kind": "field_difference",
            "key": [
              "B",
              "O100"
            ],
            "field": "delivered_qty",
            "expected": "6",
            "actual": "0",
            "variance": "-6"
          },
          {
            "kind": "field_difference",
            "key": [
              "B",
              "O100"
            ],
            "field": "invoiced_qty",
            "expected": "4",
            "actual": "0",
            "variance": "-4"
          },
          {
            "kind": "field_difference",
            "key": [
              "B",
              "O100"
            ],
            "field": "attachment_digest",
            "expected": "original-B100",
            "actual": "original-B103"
          }
        ]
      },
      "interpretation": "Duplicate keys are reported before a dictionary lookup could conceal them."
    },
    {
      "case": "different_snapshot",
      "expected_finding_kinds": {
        "scope_mismatch": 1
      },
      "observed": {
        "comparable": false,
        "findings": [
          {
            "kind": "scope_mismatch"
          }
        ]
      },
      "interpretation": "A later target snapshot is not silently compared with an earlier source baseline."
    }
  ],
  "limits": [
    "No Odoo migration ran.",
    "No ledger, valuation, tax, legal retention or accounting sign-off is established.",
    "The zero-tolerance and immutable-attachment policies are fixture choices; actual exceptions require approved rules and evidence.",
    "The fixture compares named fields only and does not model line-table structure, posting logic or integration delivery."
  ]
}
