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.
---