SMARTER SUPPLY CHAINS. STRONGER BUSINESS.
Supply Chain Partners — Connecting People, Process, Technology

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

Start
Inbound shipment
1 ASNDispatch details imported from supplier
2. IdentifyMatch delivery
to ASN and order
3. CheckCount, inspect
and record receipt
4. Handle exceptionsRecord issues;
hold affected stock
5. Put awayConfirm stock
and location
End
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 created
User 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 resolved
User 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 separately
User 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 location
User 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 time
User 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 separately

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