Production Workflow (Partial Issuance)

The Scenario: “Mama T’s Kitchen”

To demonstrate exactly how StoreHarmony’s Production Module handles the messy reality of a factory floor โ€” including partial material issuance, supplementary pulls, scrap, and returns โ€” let’s walk through an actual manufacturing run for a catering business.

Mama T’s Kitchen needs to produce a batch of Large Chicken Pies for a Saturday catering order. Their expected Target Yield is 200 Pies. Here is the theoretical Bill of Materials (BOM):

Raw Material Per Unit Required Total Unit Cost Total Expected Cost
Flour (kg) 0.50 100 kg โ‚ฆ850 โ‚ฆ85,000
Chicken (kg) 0.20 40 kg โ‚ฆ4,240 โ‚ฆ169,600
Seasoning (kg) 0.05 10 kg โ‚ฆ2,500 โ‚ฆ25,000
Cooking Oil (L) 0.10 20 L โ‚ฆ1,200 โ‚ฆ24,000
Expected Totals โ€” โ€” โ€” โ‚ฆ303,600

The problem: The chicken supplier is late. Flour, seasoning, and oil are in stock, but the 40 kg of chicken won’t arrive until tomorrow morning. Mama T can’t wait โ€” she needs to start prepping the dough today.

This is where partial material issuance comes in. StoreHarmony lets her issue what’s available now and issue the chicken tomorrow.


Step-by-Step Software Execution

Step 1: Creation โ€” the Draft Stage

The manager opens StoreHarmony, navigates to Production โ†’ Create production order, selects “Large Chicken Pie”, sets the Target Qty to 200, selects the production location, and clicks Submit.

The system resolves the product’s formula (stored in the product’s composition data) and shows the material requirements table:

Material Per Unit Total Needed In Stock Status
Flour 0.50 kg 100 kg 150 kg โœ… Sufficient
Chicken 0.20 kg 40 kg 0 kg โŒ Shortage
Seasoning 0.05 kg 10 kg 12 kg โœ… Sufficient
Cooking Oil 0.10 L 20 L 25 L โœ… Sufficient
  • Order Status: DRAFT
  • All Lines: PENDING
  • Ledger Impact: None.

info No Inventory Impact Yet
A draft order is just a plan. No stock has been touched and no costs have been committed. You can edit, add lines, adjust quantities, or cancel freely at this stage.


Step 2: First Issuance โ€” Partial (Day 1, Thursday)

The chicken hasn’t arrived, but Mama T needs to start the dough. The manager opens the draft order and goes to Issue Materials.

The Issue Materials Panel shows all four lines with a “Remaining to issue” column and an editable “Issue now” column:

Material Required Issued So Far Remaining Issue Now Available
Flour 100 kg 0 100 kg [100] 150 kg
Chicken 40 kg 0 40 kg [0] 0 kg
Seasoning 10 kg 0 10 kg [10] 12 kg
Cooking Oil 20 L 0 20 L [20] 25 L

The manager sets Chicken to 0 (skip โ€” not available yet) and leaves the others at their full required amounts. Clicks “Issue Materials”.

  • Order Status: DRAFT โ†’ ISSUED (first issuance transitions automatically)
  • Ledger Impact: โ‚ฆ134,000 of raw materials deducted from inventory.
Material Line Status Issued Qty Cost
Flour FULLY_ISSUED 100 kg โ‚ฆ85,000
Chicken PENDING 0 kg โ‚ฆ0
Seasoning FULLY_ISSUED 10 kg โ‚ฆ25,000
Cooking Oil FULLY_ISSUED 20 L โ‚ฆ24,000
Totals โ‚ฆ134,000

info Deduction Strategy
Each raw material is deducted using its own declared strategy. Flour uses FIFO (oldest batch first). If chicken were a FEFO product, it would use expiry-first ordering. The manager doesn’t choose โ€” the product declares its own rule.


Step 3: Second Issuance โ€” Chicken Arrives (Day 2, Friday)

The chicken delivery arrives Friday morning. The supplier invoice is processed through the normal receiving flow (50 kg received at โ‚ฆ4,240/kg). The production order is still in ISSUED status โ€” and it can still accept more materials.

The manager opens the production order and clicks “Issue Materials” again. This time the panel shows:

Material Required Issued So Far Remaining Issue Now Available
Flour 100 kg 100 0 kg โ€” (fully issued)
Chicken 40 kg 0 40 kg [40] 50 kg
Seasoning 10 kg 10 0 kg โ€” (fully issued)
Cooking Oil 20 L 20 0 L โ€” (fully issued)

Only the Chicken line is actionable. The manager issues 40 kg. Clicks “Issue Materials”.

  • Order Status: ISSUED (unchanged โ€” already issued)
  • Ledger Impact: Additional โ‚ฆ169,600 deducted from inventory.
Material Line Status Issued Qty Weighted Avg Cost
Flour FULLY_ISSUED 100 kg โ‚ฆ850/kg
Chicken FULLY_ISSUED 40 kg โ‚ฆ4,240/kg
Seasoning FULLY_ISSUED 10 kg โ‚ฆ2,500/kg
Cooking Oil FULLY_ISSUED 20 L โ‚ฆ1,200/L

All lines are now FULLY_ISSUED. Total issued value: โ‚ฆ303,600.

info Additive Issuance
Each issuance adds to the line’s issued quantity โ€” it doesn’t replace it. If chicken had been partially available (say 20 kg on Day 1, 20 kg on Day 2), the line would have been PARTIALLY_ISSUED after Day 1 and FULLY_ISSUED after Day 2. The unit cost is recalculated as a weighted average across all issuance events.


Step 4: Start Production

All materials are on the factory floor. The manager clicks Start Production.

  • Order Status: ISSUED โ†’ IN_PROGRESS
  • Ledger Impact: None. This is a status gate โ€” it signals that production has begun.

warn Supplementary Issuance Still Allowed
Even after production starts, the manager can issue additional materials if needed. If the dough is too dry and needs 5 kg more flour, they can increase the flour requirement and issue more โ€” all while the order is IN_PROGRESS.


Step 5: Work In Progress โ€” the Reality of the Kitchen

Production runs for 8 hours on Friday and Saturday morning. Two significant events occur that must be recorded:

Event A: The Dough Disaster (Supplementary Issuance)

The first batch of dough is too dry. The baker needs 5 kg more flour. The manager:

  1. Opens the production order (status: IN_PROGRESS)
  2. Increases flour’s Required Total from 100 to 105
  3. Clicks “Issue Materials”
  4. Issues 5 kg flour (the new remaining amount)
Material Required Issued Remaining Issue Now
Flour 105 kg 100 5 kg [5]
  • Flour Line Status: FULLY_ISSUED (105 kg total issued)
  • Flour Cost: Weighted average of Day 1 batches + Day 3 batch
  • Order Status: IN_PROGRESS (unchanged)

Event B: Burnt Trays (Scrap)

A tray of 8 pies burns in the oven. The raw materials in those 8 pies are lost. The manager clicks Record Scrap and enters scrap by material:

Material Scrap Qty Scrap Value
Flour 4.0 kg (8 ร— 0.5) โ‚ฆ3,400
Chicken 1.6 kg (8 ร— 0.2) โ‚ฆ6,784
Seasoning 0.4 kg (8 ร— 0.05) โ‚ฆ1,000
Cooking Oil 0.8 L (8 ร— 0.1) โ‚ฆ960
Total Scrap โ‚ฆ12,144

Event C: Unused Seasoning (Return)

The seasoning was more potent than expected. Only 9 kg was used โ€” 1 kg remains unopened. The manager clicks Record Return โ†’ Selects Seasoning (Qty: 1).

  • Ledger Impact: 1 kg seasoning (โ‚ฆ2,500) returns to store inventory. A new batch is created and a flow IN entry is recorded.

The WIP Table at End of Production

Material Issued Scrap Returned Consumed
Flour 105 kg 4.0 kg 0 101 kg
Chicken 40 kg 1.6 kg 0 38.4 kg
Seasoning 10 kg 0.4 kg 1 kg 8.6 kg
Cooking Oil 20 L 0.8 L 0 19.2 L

warn Safety Verification
StoreHarmony prevents users from logging Consumed + Scrap + Returned quantities that exceed the Issued limit. You can never over-consume. The invariant issuedQty = consumedQty + scrapQty + returnedQty is enforced at completion time.


Step 6: Completion โ€” Final Yield and True Costing

The kitchen produced 192 pies (target was 200, but 8 burnt). The manager clicks Complete Production and enters the Actual Final Yield: 192.

Before transitioning to COMPLETED, StoreHarmony processes the financial reality:

Total Issued Value       = โ‚ฆ303,600 + โ‚ฆ4,250 (supplementary flour)
                         = โ‚ฆ307,850

Less: Returned Materials = โ‚ฆ2,500 (1 kg seasoning)
Less: Scrap Value        = โ‚ฆ12,144

Effective Material Cost  = โ‚ฆ307,850 โˆ’ โ‚ฆ2,500 โˆ’ โ‚ฆ12,144
                         = โ‚ฆ293,206

Unit Production Cost     = โ‚ฆ293,206 รท 192 pies
                         = โ‚ฆ1,527 per pie
Metric Value
Theoretical unit cost (200 pies, no waste) โ‚ฆ1,518
Scrap write-off โ‚ฆ12,144
Returned to inventory โ‚ฆ2,500
True final unit cost โ‚ฆ1,527 / pie
  • Order Status: IN_PROGRESS โ†’ COMPLETED

Step 7: Post to Inventory

The manager clicks Post to Inventory. StoreHarmony:

  1. Creates a new inventory batch for “Large Chicken Pie”:
    • Batch ref: PROD:PO-2026-0042
    • Quantity: 192 pies
    • Unit cost: โ‚ฆ1,527 (the true production cost)
    • Expiry date: based on the pie’s shelf life configuration
  2. Increases the finished product’s aggregate stock by 192
  3. Creates an IN flow entry (type: production receipt)
  4. Creates an audit document linking the production order
  • Order Status: COMPLETED โ†’ POSTED

tip Inventory Updated
192 pies of Large Chicken Pie are now in inventory at a true cost of โ‚ฆ1,527 each. When sold at โ‚ฆ2,500 retail, the profit margin is โ‚ฆ973 per pie (38.9%). This margin is accurate because it reflects actual material costs, scrap, and returns โ€” not theoretical estimates.


The Partial Issuance Timeline

Here’s a summary of all inventory movements across the three-day production run:

Day Event Materials Qty Direction Order Status
Thursday First issuance Flour, seasoning, oil 130 kg/L OUT DRAFT โ†’ ISSUED
Friday AM Chicken arrives (supply receipt) Chicken 50 kg IN (receiving) โ€”
Friday AM Second issuance Chicken 40 kg OUT ISSUED
Friday AM Start production โ€” โ€” โ€” ISSUED โ†’ IN_PROGRESS
Friday PM Supplementary flour Flour 5 kg OUT IN_PROGRESS
Saturday Record scrap Mixed 6.8 kg/L (write-off) IN_PROGRESS
Saturday Return seasoning Seasoning 1 kg IN (return) IN_PROGRESS
Saturday Complete production โ€” โ€” โ€” IN_PROGRESS โ†’ COMPLETED
Saturday Post to inventory Chicken pies 192 pies IN (production) COMPLETED โ†’ POSTED

Why Partial Issuance Matters

In the old design, all materials had to be issued at once from the DRAFT state. That meant Mama T would have had to wait until Friday for the chicken before issuing anything โ€” losing an entire day of prep time.

With partial issuance:

  • Issue what’s available now. Flour, seasoning, and oil on Thursday. Chicken on Friday. No waiting.
  • Issue more during production. The extra 5 kg flour was pulled mid-production without stopping the order or creating a new one.
  • Each line tracks independently. Flour was FULLY_ISSUED on Thursday. Chicken was PENDING on Thursday, FULLY_ISSUED on Friday. The order status (ISSUED) tells you “at least one material has been pulled” โ€” the line statuses tell you exactly which ones.
  • Costs stay accurate. Each issuance records the actual batch cost at the time of deduction. The weighted average across multiple issuance events gives the true material cost for the production run.

Line Status Reference

Status Meaning When it changes
PENDING Material required but nothing issued yet Set at order creation
PARTIALLY_ISSUED Some quantity issued, more still needed After partial issuance
FULLY_ISSUED All required material pulled from inventory When issued qty โ‰ฅ required qty
CONSUMED Material used up during production After recording consumption
RETURNED Unused material sent back to inventory After recording return
SCRAPPED Material wasted/damaged during production After recording scrap

Order Status Reference

Status What can happen Material issuance allowed?
DRAFT Edit lines, issue materials, cancel โœ… Yes
ISSUED Issue more materials, start production, cancel โœ… Yes
IN_PROGRESS Issue supplementary materials, record consumption/scrap/return, complete โœ… Yes
COMPLETED Post finished goods to inventory, cancel (reversal) โŒ No
POSTED Read-only โ€” production is done โŒ No
CANCELLED Read-only โ€” may require reversal of issued materials โŒ No