01must proveProposed | An obligation cannot open until its order is accepted, including when the policy has no financial condition. | policy | service | test |
02must proveProposed | A staff hold, unfulfilled migrated line, absent required approval or failed prerequisite produces a block requiring staff attention, and approval is checked before financial eligibility. | policy | service | test |
03must proveProposed | Full payment requires paid money plus applied credits minus refunds to cover the invoiced amount with no pending capture; write-offs contribute nothing. ✓ invoiced 100, paid 60, credit applied 40: open✗ invoiced 100, paid 60, written off 40: closed | calculation | service | test |
04must proveProposed | Bank-debit money contributes when the processor accepts it unless the policy requires settlement first. | calculation | service | test |
05must proveProposed | Amount and percentage conditions compare effective payments with their thresholds, immediate delivery requires billing, no financial condition requires acceptance alone, and a deposit condition requires the plan's initial amount to be paid. | calculation | service | test |
06must proveProposed | A policy allowing approved terms can satisfy full payment for a console order billed on terms, while portal terms orders and merely submitted or declined terms tenders do not qualify through that console rule. origin: COMM-M2 D6 (a), Andrew 2026-10-21: services-commerce:docs/milestones/plans/COMM-M2-plan.md#D6; docs/milestones/COMM-M2-take-a-staff-order.md#W4-2 | policy | service | test |
07must proveProposed | A child obligation waits for its parent's open gate unless configured otherwise, and required application readiness must be reported before delivery opens. | policy | service | test |
08Proposed | Each gate verdict retains the financial condition, amounts and invoice references used to reach it. | invariant | service | test |
09must proveProposed | Financial-event receipts prevent duplicate evaluation by event identity, while failed evaluation leaves no receipt and permits another attempt on redelivery. | invariant | service, database | test |
10must proveProposed | A financial event identifies candidate lines, whose current positions determine eligibility; unknown workspaces, orders and lines return success without changing records. origin: D-P4-04 (build decision, not a product ruling): services-commerce:docs/migrations/obligation-register/README.md#D-P4-04 | policy | service | test |
11must proveProposed | Gate opening creates the authorization and delivery-queue entry atomically, with only one authorization surviving concurrent evaluations. | invariant | service, database | test |
12must proveProposed | Each minute the sweep can revisit a bounded page of pending obligations on accepted orders after ten minutes without evaluation; backlog and execution failures can extend recovery time. | lifecycle | service | observed |
13Proposed | The deployed financial-facts provider reads Accounting's line-position view and supplies no approved-customer-terms fact until Accounting exposes one. | policy | service | observed |
14must proveProposed | A percentage threshold is the invoiced amount multiplied by the configured percentage and rounded upward to a whole minor currency unit. | calculation | service | observed |