{
  "catalogId": "mint-shadow-cohorts",
  "version": "0.1.0",
  "scope": "definition-discovery",
  "records": [
    {
      "id": "return-window-survivors",
      "version": "0.1.0",
      "name": "Return-window survivors",
      "assetStructure": "Return-resolved receivable",
      "definition": "Separate obligations that remain after the relevant return window from the amounts still exposed to returns.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "01"
      },
      "evidenceToInspect": [
        "Return policy and dates",
        "accepted invoice",
        "recorded returns and credits"
      ],
      "decisionQuestion": "Which amount survives the return treatment, and when does that treatment become known?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Return window closes; actual returns reconcile",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:return-window-survivors",
          "sha256": "0b0a505f0cf6e6a0918a409d9eac3753e2ad9bf22d19808322ea7f61e543a0e9",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 153,
          "endLine": 166
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "late-delivery-claims",
      "version": "0.1.0",
      "name": "Late-delivery claims",
      "assetStructure": "Penalty-bounded receivable",
      "definition": "Separate a supported payable amount from delivery penalties or a disputed adjustment.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "02"
      },
      "evidenceToInspect": [
        "Promised and actual delivery dates",
        "contract penalty terms",
        "acceptance and adjustment records"
      ],
      "decisionQuestion": "What portion can be bounded by the contract rather than guessed from the gross invoice?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Delivery timestamp fixes final penalty",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:late-delivery-claims",
          "sha256": "86df33ab74cc5fbf8b992b43f30aba92f8c4d4a130dbf5400f1316dbf5bd44ac",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 183,
          "endLine": 196
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "partially-fulfilled-pos",
      "version": "0.1.0",
      "name": "Partially fulfilled purchase orders",
      "assetStructure": "Line-item microreceivables",
      "definition": "Inspect accepted fulfilled lines independently from the unfulfilled balance of an order.",
      "aliases": [
        "Partially fulfilled POs"
      ],
      "legacyIds": {
        "shadowDashboard": "03"
      },
      "evidenceToInspect": [
        "Purchase-order lines",
        "fulfillment events",
        "acceptance",
        "invoice allocation"
      ],
      "decisionQuestion": "Which line items represent completed obligations today?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Remaining line items accept or cancel",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:partially-fulfilled-pos",
          "sha256": "964e7595085887a03061ad94746cede3d98c6bd4b24933c51985652461e71c1d",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 213,
          "endLine": 226
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "delivered-awaiting-acceptance",
      "version": "0.1.0",
      "name": "Delivered, awaiting acceptance",
      "assetStructure": "Event-vested receivable",
      "definition": "Track delivered obligations whose next material event is customer acceptance.",
      "aliases": [
        "Delivered but awaiting acceptance"
      ],
      "legacyIds": {
        "shadowDashboard": "04"
      },
      "evidenceToInspect": [
        "Delivery event",
        "acceptance rules",
        "customer acknowledgment",
        "dispute status"
      ],
      "decisionQuestion": "What event changes the obligation, and has that event occurred?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Inspection or buyer acceptance posts",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:delivered-awaiting-acceptance",
          "sha256": "baf2760ad108dd7761ec000bc005ebe4dc59ae273130683b3ba1cc44c8642bc3",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 243,
          "endLine": 256
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "retail-chargebacks",
      "version": "0.1.0",
      "name": "Retail chargebacks",
      "assetStructure": "Clean base and recovery strip",
      "definition": "Separate the undisputed base from a claim to recover a retail chargeback.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "05"
      },
      "evidenceToInspect": [
        "Invoice and settlement",
        "chargeback codes",
        "supporting documents",
        "recovery history"
      ],
      "decisionQuestion": "Which amount is undisputed, and which amount still depends on recovery?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Recovery evidence is accepted",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:retail-chargebacks",
          "sha256": "42a4fd51f45d5bd22525060623e9fbf7471d930fc18e86aa2bbdb6cd7740ccfe",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 268,
          "endLine": 281
        }
      ],
      "assetStructureAliases": [
        "Clean base claim plus recovery strip"
      ]
    },
    {
      "id": "volume-rebates",
      "version": "0.1.0",
      "name": "Volume rebates",
      "assetStructure": "Net-of-rebate receivable",
      "definition": "Account for a contractual rebate when defining the amount due.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "06"
      },
      "evidenceToInspect": [
        "Rebate agreement",
        "eligible volume",
        "measurement period",
        "accrued and settled rebates"
      ],
      "decisionQuestion": "What rebate applies to this obligation under the stated contract?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Period-end rebate true-up",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:volume-rebates",
          "sha256": "eb0f212f809b3cab628713f2a4218dc122f0191a10a950fd7643c13b5307aae6",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 298,
          "endLine": 311
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "promotional-allowances",
      "version": "0.1.0",
      "name": "Promotional allowances",
      "assetStructure": "Promotion-normalized claim",
      "definition": "Separate supported payment from promotional allowances and their settlement treatment.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "07"
      },
      "evidenceToInspect": [
        "Promotion agreement",
        "qualifying activity",
        "invoice",
        "allowance and settlement records"
      ],
      "decisionQuestion": "Which allowance is earned, expected, disputed, or already settled?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Allowance ledger closes",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:promotional-allowances",
          "sha256": "4f39b90f2ea0de156df3766c65550c621f28992007bb22013cea943546d2930c",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 323,
          "endLine": 336
        }
      ],
      "assetStructureAliases": [
        "Promotion-normalized settlement claim"
      ]
    },
    {
      "id": "predictable-short-pays",
      "version": "0.1.0",
      "name": "Predictable short-pays",
      "assetStructure": "Empirically netted receivable",
      "definition": "Use documented short-pay behavior as a model input while retaining the gross obligation and adjustment basis.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "08"
      },
      "evidenceToInspect": [
        "Payment history",
        "reason codes",
        "customer terms",
        "open disputes"
      ],
      "decisionQuestion": "What evidence supports the adjustment, and how much uncertainty remains?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Settlement confirms modeled short-pay",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:predictable-short-pays",
          "sha256": "c1e94e282f99746e076eb6899e8c2dc2b6f380f11e41c3265158a06f21440149",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 348,
          "endLine": 361
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "delivered-not-invoiced",
      "version": "0.1.0",
      "name": "Delivered, not yet invoiced",
      "assetStructure": "Verified unbilled receivable",
      "definition": "Inspect completed delivery or performance before an invoice has been issued.",
      "aliases": [
        "Delivered but not yet invoiced"
      ],
      "legacyIds": {
        "shadowDashboard": "09"
      },
      "evidenceToInspect": [
        "Delivery or service evidence",
        "contract",
        "acceptance",
        "expected billing event"
      ],
      "decisionQuestion": "What completed performance supports the claim before billing?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Invoice record matches earned amount",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:delivered-not-invoiced",
          "sha256": "a8d80a78bedb82e866616d8a3c73c28f8b06887615d6060d656f803ee8bc5d36",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 373,
          "endLine": 386
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "milestones-retainage",
      "version": "0.1.0",
      "name": "Milestones and retainage",
      "assetStructure": "Progress claim and retainage strip",
      "definition": "Separate supported milestone amounts from retained amounts with a later release condition.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "10"
      },
      "evidenceToInspect": [
        "Milestone schedule",
        "completion evidence",
        "certification",
        "retainage and release terms"
      ],
      "decisionQuestion": "Which amount is due now, and which remains dependent on release?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Retainage milestone certifies",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:milestones-retainage",
          "sha256": "a3a027f63b69105968e3c3f12382748f43663379debf30fceab5451bb4b5ca74",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 398,
          "endLine": 411
        }
      ],
      "assetStructureAliases": [
        "Progress claim plus retainage strip"
      ]
    },
    {
      "id": "formula-priced-shipments",
      "version": "0.1.0",
      "name": "Formula-priced shipments",
      "assetStructure": "Formula-reset receivable",
      "definition": "Model an obligation whose final price is set by a contractual formula.",
      "aliases": [],
      "legacyIds": {
        "shadowDashboard": "11"
      },
      "evidenceToInspect": [
        "Pricing formula",
        "reference dates and inputs",
        "shipment quantity",
        "final price record"
      ],
      "decisionQuestion": "Which inputs are fixed, and which can still change the amount?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Reference price resets",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:formula-priced-shipments",
          "sha256": "1b2ebd67993f56746d3aa6dfd603e217e7ee71b0dd04a560af2e9dd972912798",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 428,
          "endLine": 441
        }
      ],
      "assetStructureAliases": []
    },
    {
      "id": "setoff-netting",
      "version": "0.1.0",
      "name": "Setoff and netting",
      "assetStructure": "Obligor-level net-settlement claim",
      "definition": "Inspect reciprocal obligations and the stated netting treatment without assuming a legal right from matching names.",
      "aliases": [
        "Setoff and netting relationships"
      ],
      "legacyIds": {
        "shadowDashboard": "12"
      },
      "evidenceToInspect": [
        "Contractual setoff terms",
        "counterparty identity",
        "reciprocal balances",
        "settlement evidence"
      ],
      "decisionQuestion": "What supported obligations and rights establish the net amount?",
      "entryRule": null,
      "exclusionRule": null,
      "amountRule": null,
      "releaseRule": null,
      "referenceScenario": {
        "nextReleaseEvent": "Netting statement closes",
        "sourceId": "shadow-dashboard"
      },
      "sourceRefs": [
        {
          "sourceId": "docs:setoff-netting",
          "sha256": "10deea88d8ef7630db2e4426874b1ba03c336b014d21448dd38d57175260a3f9",
          "startLine": 1,
          "endLine": 31
        },
        {
          "sourceId": "shadow-dashboard",
          "sha256": "a9143a735d64a35a18ef49f0d8f24a091815927646d0b2d2780778e360cb1c26",
          "startLine": 458,
          "endLine": 471
        }
      ],
      "assetStructureAliases": []
    }
  ]
}
