Receipt Exceptions
Receipt exceptions surface on the actionable inbox whenever a receiving action looks off. They target the Receiving audience by default (Admins also see them).
Kinds
Over-receipt / Short-receipt
The posted quantity on a receipt line differs from the PO-line expected quantity by more than 1%. The 1% threshold is currently system-wide. The exception includes received quantity, expected quantity, and computed variance.
How to resolve: post a correcting adjustment on the line (bring variance back inside tolerance), or mark the inbox item resolved with a note.
Lot without number
A posted receipt line was saved without a lot number. The system normally auto-generates a LOT-... fallback, so this exception is mainly a safeguard for malformed input.
How to resolve: update the lot number on the receipt line, or explicitly resolve with a note.
Duplicate lot number
Two or more ingredient_lots rows share the same (productId, lotNumber). Duplicates create traceability risk because consumption can point to the wrong physical stock.
How to resolve: rename or remove the incorrect lot. The safety-net predicate auto-resolves once only one lot remains for that product+lot number.
Unplanned receipt
A lot was inserted via POST /inventory/lots without an open PO line for that product. This can be intentional (for example, samples), but should be reviewed.
How to resolve: create/link an open PO line for the product, or resolve with a note if the direct receipt was intentional.
Threshold Configuration
The 1% tolerance is intentionally conservative. Some materials have higher natural variance, so this value may become product-specific after enough historical receipt data exists.