Production

Factory WIP per PO line, held in the IN_PRODUCTION stock type against the destination location · 14 runs · 5,565 units · AED 1.21M committed · replaces INV1's Excel "In Prodn" tab, which had 5,565 rows and posted no ledger entries at all

VJ Jewels is over-committed in week 33. 900 units of stone-setting scheduled against a declared capacity of 640. Two runs (PRD-2026-0498, PRD-2026-0499) are already 4 days behind at the casting milestone. Their IN_PRODUCTION balance stays posted, but the ETA on PO-2026-114 should be revised before the replenishment planner treats it as supply. Supplier →

Milestone Gantt · materials → cutting → assembly → finishing → packing

Outline is planned, fill is actual · the red overhang is slippage · milestones cannot be skipped or reordered, exactly as the ledger's movement chain cannot

3 runs overhanging today
JUNJULAUGSEP Today · 29-07-2026 Dubai today 29-07 PRD-0501 MSR31-07PRD-0502 MSR31-08PRD-0503 CDW01 PRD-0498 JRY01PRD-0499 FYN01PRD-0488 XTRA-STR PRD-0489 MSR31-07PRD-0494 PP02PRD-0495 ALM02 PRD-0506 MIN-2159PRD-0507 MST-CRMPRD-0508 CDW01 PRD-0491 JRY02PRD-0492 LBA01 PRD-2026-0501 · materials · planned 02-07, actual 02-07 · 0d cutting · planned 09-07, actual 09-07 · 0d assembly · planned 20-07, in progress 62% · on track finishing · planned 02-08 · not started packing · planned 12-08, ship 18-08 PRD-2026-0502 · materials 02-07 on time cutting 09-07 on time assembly in progress 58% finishing planned 02-08 packing planned 12-08 PRD-2026-0503 · materials 02-07 on time · 1,200 units cutting planned 11-07, actual 13-07 · +2d assembly planned 24-07, started 26-07 · +2d · at risk slippage overhang · 2 days beyond today finishing planned 05-08 packing planned 14-08 PRD-2026-0498 · materials planned 18-07, actual 18-07 casting planned 26-07, still running · +4d and counting · VJ Jewels over-committed in w33 projected overhang 4d stone setting planned 08-08 · at risk from the casting slip finishing planned 20-08 packing planned 28-08 PRD-2026-0499 · materials 18-07 on time casting +4d projected overhang 4d stone setting planned 08-08 finishing planned 20-08 packing planned 28-08 PRD-2026-0488 · materials 05-07 on time · 960 units cutting 12-07 on time assembly 19-07 on time finishing planned 28-07, started 29-07 · +1d packing planned 04-08 · ship 14-08 PRD-2026-0489 · 240 units · materials 05-07 cutting 12-07 assembly 19-07 finishing +1d packing planned 04-08 PRD-2026-0494 · materials 10-07 · 180 units · complete cutting 16-07 complete assembly 21-07 complete finishing 23-07 complete packing 25-07 complete · shipped, now GIT_INBOUND PRD-2026-0495 · 120 units · materials 10-07 cutting 16-07 assembly 21-07 finishing 23-07 packing 25-07 · shipped PRD-2026-0506 · 400 units · materials planned 08-08 · blocked, PI not issued cutting planned 16-08 assembly planned 25-08 finishing planned 05-09 packing planned 14-09 PRD-2026-0507 · 90 units · blocked, PI not issued cutting planned 16-08 assembly planned 25-08 finishing planned 05-09 packing planned 14-09 PRD-2026-0508 · 130 units · blocked, PI not issued cutting planned 16-08 assembly planned 25-08 finishing planned 05-09 packing planned 14-09 PRD-2026-0491 · 85 units · materials 21-07 on time casting blocked · sample QC gate not passed, bulk cutting cannot start stone setting planned 05-08 · at risk finishing planned 14-08 packing planned 19-08 PRD-2026-0492 · 60 units · PO-2026-122 still draft, no IN_PRODUCTION balance posted cutting planned 20-08 assembly planned 27-08 finishing planned 05-09 packing planned 12-09
Actual, on schedule At risk Slipping past today Complete, now GIT_INBOUND Planned 3 runs blocked because PO-2026-123 has no PI yet, so no IN_PRODUCTION balance is posted for them
All runs 14
On track 8
At risk 2
Late 3
Blocked 4
Sample gate open 1
CIC 6
VJ Jewels 3
LC Straps 2
ORO Leather 3
Destined HQ_319 13
Destined HQ_325 1
POs →

Production runs

IN_PRODUCTION stock type · destination location 14 rows · 5,565 units
RunPOPI SupplierSKUBatch DestinedQty MilestonesStarted Current stagePlannedSlip Ship ETAHealthSample gateAED est
PRD-2026-0501 PO-2026-121PI-902 CICMSR31-07B-2711 HQ_319600 MCAFP 02-07Assembly 62%20-070d 18-08on trackpassed129,600
PRD-2026-0502 PO-2026-121PI-902 CICMSR31-08B-2711 HQ_319600 MCAFP 02-07Assembly 58%20-070d 18-08on trackpassed129,600
PRD-2026-0503 PO-2026-121PI-902 CICCDW01B-2712 HQ_3191,200 MCAFP 02-07Assembly 18%24-07+2d 18-08at riskpassed154,800
PRD-2026-0498 PO-2026-114PI-903 VJ JewelsJRY01B-2698 HQ_319480 MCSFP 18-07Casting stalled26-07+4d 02-09latepassed158,400
PRD-2026-0499 PO-2026-114PI-903 VJ JewelsFYN01B-2698 HQ_319420 MCSFP 18-07Casting stalled26-07+4d 02-09latepassed110,500
PRD-2026-0488 PO-2026-113PI-885 LC StrapsXTRA-STRAPB-2680 HQ_319960 MCAFP 05-07Finishing 40%28-07+1d 14-08at risknot required64,320
PRD-2026-0489 PO-2026-113PI-885 LC StrapsMSR31-07B-2681 HQ_325240 MCAFP 05-07Finishing 40%28-07+1d 14-08on tracknot required39,840
PRD-2026-0494 PO-2026-120PI-891 ORO LeatherPP02B-2703 HQ_319180 MCAFP 10-07Shipped 25-0725-070d shippeddonepassed31,600
PRD-2026-0495 PO-2026-120PI-891 ORO LeatherALM02B-2703 HQ_319120 MCAFP 10-07Shipped 25-0725-070d shippeddonepassed27,100
PRD-2026-0491 PO-2026-119PI-889 VJ JewelsJRY02B-2695 HQ_31985 MCSFP 21-07Blocked at casting29-07+0d 19-08blockedsample failed28,900
PRD-2026-0506 PO-2026-123 - CICMIN-2159B-2740 HQ_319400 MCAFP - Awaiting PI08-08n/a 21-09not postedpending -
PRD-2026-0507 PO-2026-123 - CICMST-CRM-42-BLKB-2741 HQ_31990 MCAFP - Awaiting PI08-08n/a 21-09not postedpending -
PRD-2026-0508 PO-2026-123 - CICIC-4471B-2742 HQ_319130 MCAFP - SKU pending08-08n/a 21-09not postedpending -
PRD-2026-0492 PO-2026-122 - ORO LeatherLBA01B-2745 HQ_31960 MCAFP - PO still draft13-08n/a 12-09not postedpending -
Totals · 14 runs 5,565 of which 4,885 posted to IN_PRODUCTION and 680 not posted (no PI, or SKU not yet assigned to the internal code) 874,660
A run with no assigned SKU posts no balance. PRD-2026-0508 is ordered against internal code IC-4471 because CIC has not named the product yet, which ops2 found is normal: the SKU frequently does not exist until weeks after the order. i3 keeps the run visible and its units in a separate uncommitted counter, and posts IN_PRODUCTION the moment item_codes.sku_id is filled in. It does not invent a placeholder SKU, which is how i2 ended up with SHOPIFY-VAR-* rows leaking into the live grid.

Milestone slippage by supplier

rolling 90 days · positive is late
SupplierRunsMaterialsCuttingAssemblyFinishingPackingWorst stageOrder to shipTrend
CIC · CN6+0.3+1.8+2.1+0.6+0.4Assembly31d
VJ Jewels · IN3+0.0+4.0+2.7+0.9+0.5Casting44d
LC Straps · IT2+0.0+0.0+0.2+1.0+0.0Finishing26d
ORO Leather · IT3+0.0+0.0+0.0+0.0+0.0none15d
Atelier Rossi · IT0 - - - - - no open run22d
Brasswork Milano · IT0+0.5+0.8+1.2+0.3+0.0Assembly29d
Slippage is derived, never stored. Each cell is AVG(actual_on - planned_on) over the runs in the window. INV1 derived production status by string-matching the Excel cell text ('cancel' in status.lower()) into one of three values and had no planned dates at all, so there was nothing to measure against.

Supplier capacity · committed against declared

Bar is committed units, the black mark is declared weekly capacity
CIC · w31
1,860 / 2,400
CIC · w32
2,110 / 2,400
CIC · w33
2,290 / 2,400
VJ Jewels · w31
420 / 640
VJ Jewels · w32
610 / 640
VJ Jewels · w33
900 / 640
LC Straps · w31
1,200 / 1,800
ORO Leather · w31
300 / 700
Capacity register →source: stated, observed and contracted

Sample-first gate

Bulk cutting on a new batch cannot start until the sample passes QC. PRD-2026-0491 failed its sample on 27-07 (stone seating tolerance) and is blocked at casting until VJ Jewels supplies a second sample.
RunSampleSentResultGate
PRD-2026-0501SMP-221428-06passopen
PRD-2026-0503SMP-221628-06passopen
PRD-2026-0498SMP-223114-07passopen
PRD-2026-0491SMP-222912-07failclosed
PRD-2026-0491SMP-224428-07in QC · 72h SLApending
Samples →QC →

The rule this page enforces

IN_PRODUCTION is a real balance and never sellable. It is a stock type held against the destination location, not a virtual location, so HQ_319 / IN_PRODUCTION = 4,885 means "4,885 units destined for HQ_319 that are currently on a factory floor". It is is_sellable=false and is_countable=false: a physical count at HQ_319 must not be able to find or fail to find a unit that is in Guangzhou, so those units are excluded from count variance entirely.

It appears in the live pivot as its own column so planners can see committed supply, and it feeds days-of-cover. It never feeds on-hand value, never feeds sellable, and no reservation or fulfilment path may decrement it. A code path that does is a P1.

AC-05.3 · the identity checked nightly

balance(sku, dest_loc, IN_PRODUCTION)
  = SUM(pi_line.qty_confirmed)
  - SUM(shipment_line.qty_shipped)

over PI lines whose PI is in
confirmed or in_production

tolerance 0 · a breach is a P1

What this replaces: INV1's api_receive_production posted factory output straight into a warehouse chosen by WHERE UPPER(code) IN ('WH','MCC'), so if the warehouse row were ever missing a factory receipt would land in Mirdif City Centre, a mall store. It also skipped transit entirely, so the whole shipped-but-not-received window had no representation.

Connected to

POs + PI → PO detail → Goods in transit → Shipment register → Suppliers → Supplier detail → Samples → GRN + QC → Live inventory → Stock health → SKU detail → Cash + valuation → Reports → Dashboard →