Skip to main content

Knowledge Domain Database - Supply Chain Management

How does the domain work before writing a line of code? Choose a document from the left tree: each page explains part of the model.

Business Rules - Supply Chain

This document lists the core business rules of the Supply Chain domain, each with a unique BR-NNN code. Every rule is technology-independent and describes an invariant constraint on the behaviour of the domain.

---

BR-001 - Purchase order only to a qualified supplier

Code: BR-001 Name: Every PurchaseOrder must reference a Supplier in qualified state Description: A PurchaseOrder cannot be issued to a Supplier that is not certified or active. Supplier qualification (audit, documentary compliance, performance review) always precedes the first order. Rationale: Ensure supply continuity, quality and compliance; reduce stock-out risk from unreliable suppliers. Priority: HIGH Actors: Buyer, Quality Control Traceability: glossary.md Supplier; ASCM SCOR Source; events/domain-events.md SupplierCertified.

---

BR-002 - Delivery terms only in Incoterms 2020

Code: BR-002 Name: Every IncotermsContract uses the Incoterms 2020 revision Description: Delivery terms must use a valid Incoterms 2020 rule (EXW, FCA, CPT, CIP, DAP, DPU, DDP for any mode; FAS, FOB, CFR, CIF for sea only). The DAT acronym is replaced by DPU and must not appear. Rationale: Remove ambiguity on the split of cost, risk and customs responsibility between seller and buyer. Priority: HIGH Actors: Buyer, Supplier Traceability: glossary.md Incoterms 2020, DPU; D-37-02 (DPU replaces DAT); ICC Incoterms 2020.

---

BR-003 - OTIF measured at order-line level

Code: BR-003 Name: The OTIF metric is evaluated per single line of the OTIFShipment Description: On-Time-In-Full performance is measured line by line: a line is OTIF only if delivered by the promised date (On-Time) and in full quantity (In-Full). A partial or late delivery on a single line makes the whole line non-OTIF. Rationale: Prevent averaged partial deliveries from masking real service failures to the customer. Priority: HIGH Actors: Warehouse Manager, Buyer Traceability: glossary.md OTIF; D-37-02 (line-level OTIF); events/domain-events.md OTIFFailed.

---

BR-004 - Quarantined batch is not shippable

Code: BR-004 Name: A GoodsBatch in quarantine cannot be picked for shipment Description: Every received GoodsBatch enters quarantine until inbound quality control is complete. While the batch is blocked (BatchQCBlocked), no shipment line can pick its units. Rationale: Prevent defective or non-conforming goods from being shipped downstream. Priority: CRITICAL Actors: Quality Control, Warehouse Manager Traceability: state-machines/purchase-order-lifecycle.md; events/domain-events.md BatchQCBlocked.

---

BR-005 - Reorder point triggers replenishment

Code: BR-005 Name: Reaching the reorder point generates a purchase proposal Description: When available stock in the CentralWarehouse drops below the reorder point computed on average demand and lead time, the system generates a PurchaseOrder proposal to restore safety stock. Rationale: Prevent stock-outs while keeping tied-up capital within defined limits. Priority: HIGH Actors: Buyer, Warehouse Manager Traceability: glossary.md (safety stock, lead time); events/domain-events.md StockOutDetected.

---

BR-006 - Goods receipt reconciled (3-way match)

Code: BR-006 Name: Every GoodsReceived is matched against PurchaseOrder and packing list Description: On receipt, quantities and item codes must be reconciled against PurchaseOrder lines and the transport document. Differences (shortages, overages, wrong items) raise a receiving non-conformance before accounting acceptance. Rationale: Ensure inventory accuracy and correctness of the procure-to-pay cycle (order-DN-invoice match). Priority: HIGH Actors: Warehouse Manager, Buyer Traceability: workflows/procurement-management.md; events/domain-events.md GoodsReceived.

---

BR-007 - Risk transfer follows the Incoterms term

Code: BR-007 Name: The risk transfer point follows the contract Incoterms term Description: The moment risk of loss or damage passes from seller to buyer is determined by the active Incoterms 2020 term on the IncotermsContract (with FCA on hand-over to the carrier; with DPU on unloading at destination). Insurance and customs responsibility follow the same split. Rationale: Correctly assign responsibility and insurance cover in case of an incident during transport. Priority: HIGH Actors: Buyer, Supplier Traceability: glossary.md Incoterms 2020; events/domain-events.md IncotermsTermActivated.

---

BR-008 - Safety stock sized on target service level

Code: BR-008 Name: Safety stock covers demand and lead-time variability Description: Safety stock must be sized on target service level, demand variability and supplier lead-time variability. Zero safety stock is not allowed for critical items with variable demand. Rationale: Balance holding cost and stock-out risk against explicit service objectives. Priority: MEDIUM Actors: Buyer, Warehouse Manager Traceability: glossary.md (service level, safety stock); BR-005.

---