SCP approach / Worked example
Receiving stock into a warehouse
From delivery at goods-in to stock that is checked, correctly located and ready to use.
A familiar warehouse challenge
The supplier sends an ASN linked to purchase order PO-1042 for 100 units of SKU-100. When the delivery arrives, the receiving team needs to confirm the order, count and inspect the goods, resolve exceptions and record put-away before the stock becomes available for allocation.
This worked example shows how an operational process can be translated into clear user stories and acceptance criteria. The acceptance criteria are alternative checks of the same process; they are not all events within a single delivery.
The receiving sequence
Inbound shipment
to ASN and order
and record receipt
hold affected stock
and location
Good stock available
An ASN (advance shipping notification) provides dispatch information from the sending warehouse, linked to the purchase order, so the receiving warehouse can receive stock against it in the WMS. Confirmed put-away automatically makes good stock available in the WMS. Damaged stock is put away into a quarantine location and remains unavailable while the stock management team inspects it and decides what action to take. Unresolved discrepancies stay visible for follow-up.
Turn the process into requirements
Agree the receipt statuses, product identifiers, location rules, quantity tolerances and permissions with warehouse users. Where batch, serial-number, expiry-date or additional quality checks apply, include those requirements before design and testing.
In this example, the WMS automatically makes good stock available when put-away is confirmed; damaged stock in quarantine remains unavailable pending inspection and an authorised decision. An individual warehouse may use different rules, which should be agreed explicitly.
User stories and acceptance criteria
This example uses an illustrative requirements structure: Epic, Feature and User Story, with acceptance criteria within each story. Terminology and hierarchy may differ between Azure DevOps and Jira, depending on how each project is configured; Jira does not include a separate Feature level by default.
Epic: Warehouse Operations
Feature: Inbound Stock Handling
Open a user story to see its User Story and Acceptance Criteria headings, followed by clear Given, When and Then checks. Six user stories cover eighteen acceptance criteria, including normal receiving, discrepancies, held stock and duplicate confirmations.
User Story 01 — Import the supplier ASN
User Story 01 — Import the supplier ASN
As a inbound planning colleague
I want to import supplier dispatch details linked to the purchase order
So that the warehouse has an expected receipt to receive stock against
Acceptance Criteria 01 — Create an expected receipt from an ASN
Given supplier ASN ASN-2042 references open purchase order PO-1042 and dispatches 100 units of SKU-100
When the valid ASN is imported into the WMS
Then an expected receipt is created with the supplier, ASN reference, purchase order, product and dispatched quantity
And no physical stock or available quantity is created by the ASN alone
Acceptance Criteria 02 — Refer an invalid ASN for correction
Given an ASN references an unknown purchase order or a product not on that order
When the ASN is validated
Then the validation issue is recorded and referred for correction
And no receivable expected receipt is created from the invalid details
Acceptance Criteria 03 — Avoid a duplicate expected receipt
Given ASN-2042 has already been imported successfully
When the same ASN is imported again without changes
Then the existing expected receipt is identified
And no duplicate expected quantity or receipt is createdUser Story 02 — Identify the expected delivery
User Story 02 — Identify the expected delivery
As a goods-in colleague
I want to find the ASN and its linked purchase order
So that I can receive the delivery against the correct expected receipt
Acceptance Criteria 04 — Match a delivery to its ASN and purchase order
Given ASN-2042 is open for receipt and links to PO-1042 for 100 units of SKU-100
When I enter or scan the delivery ASN reference at goods-in
Then the linked purchase order, supplier, expected product and dispatched quantity are displayed
Acceptance Criteria 05 — Refer an unrecognised delivery for review
Given a delivery cannot be matched to a valid open ASN and its linked purchase order
When I try to receive the stock into the warehouse
Then the delivery is referred to the receiving supervisor
And no normal goods receipt or available stock is created until the expected receipt is resolvedUser Story 03 — Record the quantity and condition received
User Story 03 — Record the quantity and condition received
As a goods-in colleague
I want to record what has physically arrived and its condition against the ASN
So that the receipt reflects the actual delivery
Acceptance Criteria 06 — Receive the dispatched quantity in good condition
Given ASN-2042 expects 100 units of SKU-100 and all 100 units are present and undamaged
When I confirm the count and condition against the ASN
Then a goods receipt for 100 good units is recorded against ASN-2042 and PO-1042
And those units await put-away and are not yet available for allocation
Acceptance Criteria 07 — Record a short delivery against the ASN
Given ASN-2042 dispatches 100 units but only 96 units arrive
When I confirm the physical count of 96
Then the receipt records 96 units
And a shortage of 4 units against the ASN is recorded for review
And the missing units are not added to stock
And any remaining purchase order balance is retained separatelyUser Story 04 — Control damaged or incorrect stock
User Story 04 — Control damaged or incorrect stock
As a stock management colleague
I want to keep stock requiring investigation unavailable and record its disposition
So that only suitable stock can be released for use
Acceptance Criteria 08 — Separate damaged units at receipt
Given 100 units of SKU-100 arrive against ASN-2042 and 4 are damaged
When goods-in records the count and condition
Then 96 units are recorded as good and awaiting normal put-away
And 4 damaged units are recorded with a damage reason and routed for quarantine put-away
And all units remain unavailable until the appropriate put-away and stock-status checks are met
And the total received remains 100 units
Acceptance Criteria 09 — Refer an unexpected product for review
Given ASN-2042 expects SKU-100 but the delivery contains SKU-200
When the product is scanned at goods-in
Then a product mismatch is shown
And the unexpected product is held for investigation rather than received as SKU-100
And no available stock is created from that mismatch
Acceptance Criteria 10 — Restrict release of quarantined stock
Given 4 damaged units are in quarantine pending inspection
When a warehouse operator without release permission tries to release them
Then the release is refused
And the units remain unavailable in quarantine
Acceptance Criteria 11 — Record an authorised quarantine decision
Given the stock management team has inspected 4 quarantined units
When an authorised colleague records a decision to release, return or dispose of them
Then the decision, reason, colleague and time are recorded
And a return or disposal decision does not make the units available
And a release decision makes units available only after they are confirmed as good stock in a valid available-stock locationUser Story 05 — Confirm put-away and stock availability
User Story 05 — Confirm put-away and stock availability
As a put-away colleague
I want to confirm the stock, status and destination location
So that good stock becomes available automatically while quarantine stock remains controlled
Acceptance Criteria 12 — Automatically make good stock available on put-away
Given 100 good units await put-away and location A-01-02 is valid, has capacity and permits available stock
When I scan SKU-100 and A-01-02 and confirm put-away of 100 units
Then the location balance increases by 100 and the awaiting-put-away quantity decreases by 100
And the WMS automatically makes those 100 good units available for allocation
And no separate availability action is required
Acceptance Criteria 13 — Keep damaged stock unavailable after quarantine put-away
Given 4 damaged units await quarantine put-away and Q-01 is a valid quarantine location
When I confirm put-away of those 4 units into Q-01
Then the quarantine location records 4 units and the awaiting-put-away quantity decreases by 4
And those units remain unavailable for allocation
And they remain visible for stock management inspection and disposition
Acceptance Criteria 14 — Prevent damaged stock entering available-stock storage
Given a put-away task concerns damaged stock requiring quarantine
When I scan an ordinary available-stock location
Then the destination is rejected for that stock status
And no put-away confirmation or stock availability change is recorded
Acceptance Criteria 15 — Reject an incorrect product or invalid destination
Given a put-away task identifies a product and permitted destination
When I scan a different product or a destination that is invalid or lacks capacity
Then the WMS asks me to correct the scan or destination
And no location balance or availability change is recorded
Acceptance Criteria 16 — Prevent a duplicate put-away confirmation
Given a put-away task for 100 units has already been completed
When the same confirmation is submitted again
Then the existing completion is shown
And neither the location balance nor available stock increases a second timeUser Story 06 — Review receipt completion and performance
User Story 06 — Review receipt completion and performance
As a warehouse manager
I want to see receipt status, discrepancies, quarantined stock and time to availability
So that I can follow up exceptions and reduce receiving delays
Acceptance Criteria 17 — Keep unresolved exceptions visible
Given 96 units were received against an ASN for 100 and the shortage remains unresolved
When the receipt is reviewed for completion
Then the 4-unit shortage remains visible with its resolution status
And any quarantined stock is shown separately from available stock
And a receipt review does not automatically release quarantine stock or erase an exception
Acceptance Criteria 18 — Measure receipt-to-availability time for good stock
Given a goods receipt was recorded at 09:00 and its good stock became available automatically on confirmed put-away at 10:30
When the manager reviews that receipt
Then receipt-to-availability time for those units is 90 minutes
And quarantined quantities and their time awaiting a decision are reported separatelyUse the acceptance criteria in testing
Link each acceptance criterion to the relevant requirement and test case. Warehouse users can use the steps to check what the system should do, record the actual result and raise any differences. Agree who can accept the process and authorise deployment.
Measure the improvement
Establish a baseline for time from receipt to stock availability, receipt accuracy, unresolved discrepancies and time spent on hold. Compare results after the change, then update work instructions and monitor performance.
