{
      "name": "commission-integrity-and-amortization",
      "domain": "Corporate Treasury & FX",
      "title": "Commission Integrity and Amortization",
      "spec_version": "0.8.0",
      "wave": 45,
      "description": "Gated three-step chain for commission STP under ASC 606/340-40. Step 1 validates commission hierarchy structure (BFS orphan/cycle/split-sum). Step 2 reconciles commission statement line items; gate on /has_discrepancy: true exits early (discrepancy found -- correct base before amortizing). Default (clean statement) proceeds to Step 3: ASC 340-40 amortization with practical expedient check. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/commission-integrity-and-amortization.html",
      "regulatory_refs": [
        "ASC 340-40-25-4 (FASB incremental costs of obtaining a contract, 12-month practical expedient)",
        "ASC 606 (Revenue from Contracts with Customers)"
      ],
      "steps": [
        {
          "tool_id": "art-264-validate-commission-hierarchy",
          "handoff": "BFS hierarchy validation: is_valid (bool), violations[], orphan_count, circular_count, split_violations. Passes structural summary to statement reconciliation."
        },
        {
          "tool_id": "art-266-reconcile-commission-statement",
          "handoff": "Statement reconciliation: variance_amount and variance_pct per line. Sets has_discrepancy. GATE: has_discrepancy=true -> END (discrepancy found). Default (false) -> Step 3.",
          "gate": {
            "input": "/has_discrepancy",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "art-265-amortize-asc606-commissions"
          }
        },
        {
          "tool_id": "art-265-amortize-asc606-commissions",
          "handoff": "ASC 340-40 amortization: apply_expedient (bool), monthly_amortization, cumulative_amortized_pct, remaining_book_value. Final stage."
        }
      ]
    }
