PalmStat ERP · Operations
Palm Stationery Manufacturers (Pty) Ltd · Cape Town
12 Industria Crescent, Epping 2, Cape Town, 7460
Tel +27 21 534 0000 · ops@palmstat.co.za

Finished Goods Receipt Note · Standard Operating Procedure

Step 7 of 8 · closes the production order, posts FG into stock, stamps QC verdict
APPROVED
SOP-FGRN-006
v1.0 · Last reviewed 2026-05-08
← Previous: Tally Sheet · Index · Next: Delivery Note + POD →
Lifecycle step
Step 7 of 8
Module owner
Finished Goods · Storeroom
Trigger event
Tally CONFIRMED + QC PASS
Approval matrix
Storeman + Supervisor + Finance

1. Purpose

The Finished Goods Receipt Note (FGRN) is the document that formally moves a completed production batch from work-in-progress into finished-goods inventory. Once the operator's tally is CONFIRMED and the QC inspector has stamped a PASS verdict, the storeman receives the pallets, the supervisor releases them, and finance authorises the cost roll-up. Posting the FGRN closes the production order in production_batches.status = 'COMPLETED' and creates a PROD_IN inventory transaction against the FG warehouse for each FG line.

This document mirrors Sage X3 "Manufacturing Receipt", Syspro "Job Receipt", SAP S/4HANA "Goods Receipt for Production Order" (MIGO 101 with mvt 101) and NetSuite "Work Order Completion". It is the document that turns RM cost + labour cost + machine cost into a finished-goods unit-cost on the GL.

Without an FGRN posted, no FG is visible in the v_warehouse_value view, no stock can be picked for dispatch, and no Sales Order can move to COMPLETE. Like the GRN, this is a blocking step — this time for the order-to-cash flow.

2. When to use

3. Data sources

The FgrnDoc spec (frontend/js/erp-templates/fgrn-doc.js) is built from the completed batch + tally sheet + FG inventory snapshot. Each row below is wired to a real column.

Field on documentAPI endpointDB table.columnExample value
FGRN Ref No.generated client-side · buildRef()(stamped on print)FGRN-2026-0481
Receipt dateauto-stamped on completeproduction_batches.completed_at2026-05-08
Production order refderived from batchproduction_batches.batch_refBATCH-2026-0481
Batch refsame sourceproduction_batches.batch_refBATCH-2026-0481
Tally refFK from upstreamtally_sheets.tally_ref WHERE batch_id matchesTALLY-260508-4218
FG product code & nameGET /api/productsproducts.code & products.nameA4_72PG_FM · A4 72-page FM
UoMmaster dataproducts.code → FG items.uomEA / REAM
Lot / serialderivedproduction_batches.batch_ref as lotLOT-BATCH-2026-0481
Planned qtypreservedproduction_batches.planned_qty5 000
Actual qtyposted on completeproduction_batches.actual_qty (= tally_sheets.net_qty)4 940
Yield %computedproduction_batches.yield_pct98.80
Wastage qtycomputed(planned − actual)60
Wastage %computedproduction_batches.wastage_pct1.20
Scrap qty (from tally)denormalisedtally_sheets.scrap_total40
Unit costmaster dataitems.std_cost for the FG itemR 8.4500
Line valuecomputedactual_qty × std_costR 41 743.00
FG warehouse / binGET /api/warehouses?type=FGwarehouses.code + warehouse_locations.bin_codeFG-MAIN / FG-A1
BOM consumption recap · std costderivedSUM(bom_lines.qty_per_unit × items.std_cost) × planned_qtyR 23 100.00
BOM consumption recap · actual costderived from issuesSUM(inventory_transactions.qty × unit_cost) WHERE reference_type='production_batch'R 23 380.00
Cost variance %derived((actual − std) / std) × 100+1.21
QC verdictcaptured manuallypassed via tally_sheets.notes / batch fieldsPASS / FAIL / REWORK
QC inspectorcapturedcross-ref to employees.clock_noQC-1101
Storeman receivingreq.userusers.email via FKfg-store@palmstat.co.za
Inventory postingPOST /api/inventory/transactionsinventory_transactions.txn_type='PROD_IN'+4 940 EA into FG-MAIN

4. Step-by-step workflow

  1. Tally CONFIRMED, QC PASS — preconditions. The Tally Sheet is locked at CONFIRMED and the QC inspector has signed the Job Card checklist.
  2. Supervisor calls complete endpointPOST /api/production-batches/:id/complete with actual_qty = tally_sheets.net_qty. The endpoint:
    • Posts a PROD_IN inventory transaction for the FG into the configured FG warehouse.
    • Computes yield_pct = actual / planned × 100, wastage_pct = (planned − actual) / planned × 100.
    • Sets completed_at = NOW() and flips status to COMPLETED.
  3. Generate FGRN PDF — from the batch detail or Finished Goods view, click Print FGRN. Frontend calls FgrnDoc.build(batch, tally, fgInventory).print().
  4. Storeman receives physical pallets — the storeman in the FG warehouse takes physical receipt of the pallets, cross-checks the count vs the FGRN, and signs the storeman line.
  5. Lot label — storeman stamps the pallet with the FGRN ref + lot number; barcode scan posts a barcode_scans row for traceability.
  6. Supervisor releases — production supervisor signs to release the goods from production responsibility into FG storeroom responsibility.
  7. Finance authorises — finance reviews the BOM cost variance (std vs actual). For variance > +5%, finance investigates before signing. Standard practice is to authorise within 24 hours of completion.
  8. FG inventory visiblev_warehouse_value view now reflects the new FG units & rand value. Sales Orders pegged to this FG can pick from the new stock.
  9. Realtime broadcast — the production + inventory realtime channels signal: WIP Tracking removes the batch tile, Finished Goods view adds it, dashboard counters tick over.
  10. Archive — printed FGRN is scanned, uploaded to POST /api/documents with kind=OTHER; document_links ties it to entity_type='production_batch'. Retained 7 years.

5. Roles & permissions

ActionAdminStoreman / WarehouseSupervisorFinanceOperator
Generate this doc
Complete the batch (POST ·/complete)
Sign storeman line
Sign supervisor release
Authorise finance line
Reprint after archive
Email externally
Reverse / void (after post)✓ (with audit reason)

Permission gate enforced by requireRole('admin','planner','supervisor') on POST /api/production-batches/:id/complete. Reversal requires admin role & audit reason.

6. Common scenarios

Scenario A · Clean close, QC PASS

Happy path: 4 940 units posted, yield 98.8%, BOM cost variance +1.2% (within tolerance). Storeman, supervisor, finance all sign within 4 hours. FG visible in v_warehouse_value, ready for dispatch.

Scenario B · QC FAIL on a sample line

Happy path: 200 units fail QC inspection (visual defect). FGRN is posted with two lines: 4 740 to FG-MAIN (verdict PASS), 200 to FG-QUARANTINE (verdict REWORK). Status reflects the split. Reworked stock either re-receives or is scrapped within 30 days.

Sad path: All 4 940 posted to FG-MAIN as PASS, defect noticed only after dispatch. Recovery: customer return, reverse FGRN line, post SCRAP txn, root-cause investigation.

Scenario C · Co-product batch (multi-SKU)

Happy path: One BOM produces 2 000 of A4 + 1 500 of A5 from the same paper reel. FGRN carries 2 lines, each with its own qty, lot, unit cost, destination bin. The FGRN total reconciles to the planned BOM yield.

Scenario D · Cost variance > 5%

Happy path: Actual RM cost runs 7% over standard because supplier glue lot was off-spec and required higher dosage. Finance investigates, accepts the variance as a one-time event, signs. The variance is captured for next-month BOM review.

Sad path: Variance signed off without investigation. Trend obscured. Recovery: variance KPI dashboard auto-flags, monthly review forces back-investigation.

7. Related documents

Upstream  ·  STEP 2: Material Requisition (RM consumed)
Upstream  ·  STEP 3: Job Card (master production trail)
Upstream  ·  STEP 5: Tally Sheet (CONFIRMED net_qty)
Upstream  ·  QC Inspection (PASS verdict)
   →  STEP 6: Finished Goods Receipt Note · this document
Downstream  ·  inventory_transactions rows of type PROD_IN
Downstream  ·  STEP 7: Delivery Note (picks from posted FG)
Cross-ref  ·  fg_stock_snapshots for month-end FG valuation

8. Approval signatures

Document Owner
Storeman receiving — ____________
Signed: ____ / ____ / ______
Quality Lead
Production Supervisor — ____________
Signed: ____ / ____ / ______
Operations Director
Finance Controller — ____________
Signed: ____ / ____ / ______

9. SLA & escalation

Stage Target Owner Escalation
Tally CONFIRMED → FGRN print 15 min Supervisor Production Manager
Storeman receive & sign 30 min after pallets land FG Storeman Warehouse Manager
Supervisor release 30 min after storeman sign Supervisor Production Manager
Finance authorise 24h Finance Controller CFO if cost variance > +5%
Reverse / void Admin only · with audit reason Admin Operations Director sign-off

10. Glossary