# Record scrap and rejects (/docs/production/scrap-and-rejects)

Parts that fail are held, verified by QC and then reworked or scrapped. The default roles are Technician
(Ahmad Faizal), QC inspector (Siti Rahmah), Supervisor (Hafiz Rosli) and Store (Farah Hanim).

```mermaid
%% title: Rejects from the line to disposition
flowchart LR
  A[Transfer with rejects] --> B[Reject verification raised, QC called]
  B --> C[QC picks up and scans the station]
  C --> D[Verify rejects]
  D --> E[Rework plus scrap equals held quantity]
  E --> F[NCR raised or linked]
```

## Record rejects on the traveller [#record-rejects-on-the-traveller]

<Steps>
<Step>

Record a transfer as described in [Work from your phone](/docs/production/run-on-phone#follow-the-traveller).
Enter **Counted qty**, then **Good** and **Reject**. Good plus reject must equal the counted quantity.

</Step>
<Step>

Pick a **Reject reason · QC is called to the station to verify**: **Short shot**, **Flash**, **Dimension
out of tolerance**, **Visual defect** or **Contamination**.

</Step>
<Step>

Confirm and sign. The page reads "\{transfer\} checked in · QC called for \{n\} rejects". The rejects are
held at the station in location RJ-01. The panel **Rejects held at station** shows "\{n\} awaiting QC". A
reject verification (for example `RV-1127-02`) is raised.

</Step>
</Steps>

<GuideStep
  title="The rejects panel on the traveller"
  description="Rejects held at a station, waiting for QC."
  src="/guide/scrap-and-rejects/1.png"
  alt="Traveller screen on desktop with the rejects held at station panel"
  width={1440}
  height={1000}
  callouts={[
    { x: 30, y: 22, caption: "Traveller card and route." },
    { x: 60, y: 50, caption: "Rejects held at station." },
    { x: 80, y: 78, caption: "Movement history." },
  ]}
/>

## Verify and disposition the rejects (QC) [#verify-and-disposition-the-rejects-qc]

Only quality control can verify held rejects.

<Steps>
<Step>

On the traveller, under the held rejects, choose **Pick up · go to station**. The acknowledgement timer
starts.

</Step>
<Step>

At the station choose "Scan \{station\} on arrival" and scan the station QR. A scan at any other station
is refused and logged.

</Step>
<Step>

Choose **Verify rejects**. Enter **Rework** and **Scrap** so they add up to the held quantity. If
**Rework** is more than zero, choose **Rework goes to**: **same station** or **rework station**.

</Step>
<Step>

Choose **Verify · sign disposition** and sign. An NCR is raised, or linked when one exists. The scrap is
posted to stock. The page reads "\{reject verification\} dispositioned · \{NCR\}".

</Step>
</Steps>

## Move nonconforming stock [#move-nonconforming-stock]

Held or rejected lots in stock are handled on **Inventory > Nonconforming** (`/inventory/mrb`). The status
moves **Draft > Submitted > Approved > Completed**, or **Rejected**.

<Steps>
<Step>

The lot must already be on hold or in quarantine. Create a disposition: choose the **Lot**, describe the
**Nonconformity**, choose **Disposition** (**Return to supplier**, **Scrap**, **Rework**, **Use as is** or
**Shelf-life extension**) and write the **Justification / evidence**. Add the **NCR**.

</Step>
<Step>

Choose **Submit for QA** and sign.

</Step>
<Step>

A QA manager other than the requester chooses **Approve disposition** or **Reject**. **Use as is** is a
concession and needs its NCR. For customer-owned stock it also needs the **Customer concession ref.**

</Step>
<Step>

Choose **Complete disposition**. For **Return to supplier** or **Rework**, first fill in **Completion
record** (the return or debit note, or the rework record). The disposition is applied to the lot and its
movement is posted. A finished lot that is released under a concession goes back to quarantine for a
new lot release.

</Step>
</Steps>

<GuideStep
  title="Nonconforming stock"
  description="Dispositions with their status."
  src="/guide/scrap-and-rejects/2.png"
  alt="Nonconforming stock list on desktop with dispositions and status chips"
  width={1440}
  height={1000}
  callouts={[
    { x: 25, y: 16, caption: "Search." },
    { x: 55, y: 40, caption: "Lot, quantity and disposition." },
    { x: 88, y: 40, caption: "Status chip." },
  ]}
/>

## Reconcile labels [#reconcile-labels]

At the end of a run, the issued labels must be accounted for. Open **Production > Label reconciliation**.
The formula is **Issued** minus **Applied** minus **Spoiled** minus **Returned**. Zero is a match.

<Steps>
<Step>

Enter **Issued**, then **Applied**, **Spoiled** and **Returned** (type 0 if none). The record shows the
**Variance**.

</Step>
<Step>

Choose **Reconcile labels** and sign. You are recorded as **Reconciled by**. With a variance of zero the
status is **Reconciled**. Otherwise it becomes **Discrepancy** and the page reads "Variance \{n\} · raise an
NCR". **Verified by** is filled only when the QA manager closes a discrepancy.

</Step>
<Step>

For a discrepancy, link the NCR, write the **Investigation** (where the labels went) and choose **Close
with NCR**. A QA manager signs it. The status becomes **Reconciled**.

</Step>
</Steps>

<GuideStep
  title="Label reconciliation"
  description="Label counts of each lot and their status."
  src="/guide/scrap-and-rejects/3.png"
  alt="Label reconciliation list on desktop with issued, applied, spoiled and returned counts"
  width={1440}
  height={1000}
  callouts={[
    { x: 25, y: 16, caption: "Search." },
    { x: 55, y: 45, caption: "Label counts and variance." },
    { x: 88, y: 45, caption: "Status: Open, Reconciled or Discrepancy." },
  ]}
/>

## If the system refuses [#if-the-system-refuses]

Messages shared by every flow are in
[Signatures and refusals](/docs/get-started/signatures-and-refusals). Messages for this page are in
[Checks and completion refusals](/docs/production/checks-and-completion-refusals#record-scrap-and-rejects).
Examples:

- `Only quality control can verify held rejects.`
- `Rework + scrap must equal {n} pcs.`
- `Link the NCR and record the investigation (where the labels went)`
- `The QA approver must be someone other than the requester`

<NextSteps>

<NextStep href="/docs/production/complete-and-lots" title="Complete the run and create lots" description="Close the run after rejects are handled." />

<NextStep href="/docs/production/in-process-checks" title="Record in-process checks" description="Suspect ranges from a failed check." />

<NextStep href="/docs/production/checks-and-completion-refusals" title="Checks and completion refusals" description="Every message and what to do." />

</NextSteps>
