{
  "version": 1,
  "fictional": true,
  "software": "QuickBooks Online",
  "title": "A perfect net tie hiding two unsupported occurrences",
  "canonicalPage": "https://levelcfo.com/guides/software-integration/quickbooks-online/",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "fields": [
    "All rows and identifiers are fictional teaching data in USD, not customer results or QBO-native exports.",
    "amount is signed bank-account movement: receipts positive, payments negative. occurrence_id identifies the hypothetical bank event.",
    "review_state is a supplied teaching classification after occurrence investigation, not an amount-only automated match. The account opens at USD 2,000 in both sources."
  ],
  "calculation": "Statement movement is 500 - 200 = 300. Book movement is -200 + 500 = 300. Both end at 2,300, but statement occurrence S-01 has no supported posting and B-02 has no supported statement occurrence.",
  "files": [
    {
      "filename": "statement.csv",
      "sha256": "9215d3fa087372fbc0694ce19ce30158791530f65c6ec60924c367317fb1dfe2"
    },
    {
      "filename": "book.csv",
      "sha256": "c7f59809653f69d1dc75697a42d0a499d4a1e0250dfe1df9bdc1db9c592da8d6"
    }
  ],
  "checks": [
    {
      "id": "statement_movement",
      "operation": "sum",
      "expected": 300,
      "file": "statement.csv",
      "field": "amount"
    },
    {
      "id": "book_movement",
      "operation": "sum",
      "expected": 300,
      "file": "book.csv",
      "field": "amount"
    },
    {
      "id": "net_difference",
      "operation": "difference",
      "expected": 0,
      "operands": [
        "statement_movement",
        "book_movement"
      ]
    },
    {
      "id": "unmatched_statement",
      "operation": "count",
      "expected": 1,
      "file": "statement.csv",
      "field": "occurrence_id",
      "filter": {
        "field": "review_state",
        "equals": "unmatched"
      }
    },
    {
      "id": "unmatched_book",
      "operation": "count",
      "expected": 1,
      "file": "book.csv",
      "field": "book_id",
      "filter": {
        "field": "review_state",
        "equals": "unmatched"
      }
    }
  ],
  "expectedResults": [
    {
      "label": "Statement movement",
      "value": 300,
      "unit": "USD",
      "meaning": "Net movement in the complete fictional statement.",
      "checkId": "statement_movement"
    },
    {
      "label": "Book movement",
      "value": 300,
      "unit": "USD",
      "meaning": "Net movement in the fictional register.",
      "checkId": "book_movement"
    },
    {
      "label": "Net movement difference",
      "value": 0,
      "unit": "USD",
      "meaning": "Equality of totals does not resolve identities.",
      "checkId": "net_difference"
    },
    {
      "label": "Unmatched statement occurrences",
      "value": 1,
      "unit": "rows",
      "meaning": "S-01 requires investigation.",
      "checkId": "unmatched_statement"
    },
    {
      "label": "Unmatched booked entries",
      "value": 1,
      "unit": "rows",
      "meaning": "B-02 requires investigation.",
      "checkId": "unmatched_book"
    }
  ],
  "nextDecision": "Investigate S-01 and B-02 separately. The example supplies no authority to remove B-02, create S-01 or classify either receipt as revenue."
}
