Landed cost per PO batch · weighted average cost · margin bands · price change events · currency effects · valuation impact. Recomputed nightly 02:10 Dubai from cost layers, never from a mutable cost field.
One circle per receipt, sized by quantity, so a small expensive batch does not read as a trend. Dashed line is the weighted average cost that results.
Opening WAC to closing WAC, split into what the supplier did and what the currency did
SKU counts per band · this quarter against last · GP measured at WAC and current channel price
On-hand value at FIFO layer cost, with each cost-change event marked. The forward dash is the projection if the current slope holds and nothing is renegotiated.
Immutable. A correction is a new layer that references the original, never an edit. Click a row for the six-PO history.
| Layer | SKU | PO | Supplier | Received | Qty | Rem | Unit ccy | Ccy | FX commit | FX receipt | FOB | Landed | WAC after | Val AED | Band |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| L-2712 | MSR31-07 | PO-2026-116 | CIC | 25-07-2026 | 24 | 24 | 59.41 | USD | 3.6733 | 3.6733 | 196.40 | 218.20 | 206.13 | 5,236.80 | premium |
| L-2710 | JRY12 | PO-2026-118 | Wuxi Movements | 24-07-2026 | 260 | 218 | 119.00 | CNY | 0.5316 | 0.5322 | 63.33 | 71.40 | 68.02 | 15,565.20 | healthy |
| L-2704 | LBA01 | PO-2026-0402 | Milano Leathers | 18-07-2026 | 240 | 191 | 48.90 | EUR | 4.0940 | 4.0955 | 200.27 | 221.40 | 214.88 | 42,287.40 | watch |
| L-2698 | MSR31-07 | PO-2026-104 | CIC | 02-07-2026 | 12 | 0 | 58.30 | USD | 3.6731 | 3.6731 | 192.80 | 214.10 | 203.90 | 0.00 | premium |
| L-2691 | CDW01 | PO-2026-101 | CIC | 28-06-2026 | 180 | 96 | 71.20 | USD | 3.6730 | 3.6730 | 261.52 | 288.90 | 281.44 | 27,734.40 | healthy |
| L-2684 | STRAP-FST01 | PO-2026-0397 | Guangzhou Trims | 21-06-2026 | 1,200 | 742 | 21.40 | CNY | 0.5298 | 0.5304 | 11.35 | 13.90 | 13.11 | 10,313.80 | premium |
| L-2677 | PP02 | PO-2026-0391 | Grasse Aromatics | 14-06-2026 | 900 | 560 | 18.60 | EUR | 4.0902 | 4.0928 | 76.09 | 84.20 | 81.66 | 47,152.00 | premium |
| L-2649 | MSR31-07 | PO-2026-0389 | CIC | 21-04-2026 | 60 | 22 | 57.53 | USD | 3.6731 | 3.6731 | 191.60 | 211.30 | 203.44 | 4,648.60 | premium |
| L-2641 | ALM02 | PO-2026-0384 | Wuxi Movements | 12-04-2026 | 340 | 96 | 96.50 | CNY | 0.5221 | 0.5228 | 50.45 | 57.80 | 55.92 | 5,548.80 | healthy |
| L-2620 | DQR13 | PO-2026-0301 | Jaipur Gems | 18-03-2026 | 220 | 88 | 2,410.00 | INR | 0.0441 | 0.0439 | 105.80 | 118.60 | 114.72 | 10,436.80 | healthy |
| L-2612 | TNS01 | PO-2026-0294 | Jaipur Gems | 09-03-2026 | 160 | 32 | 1,880.00 | INR | 0.0442 | 0.0441 | 82.91 | 94.20 | 91.06 | 3,014.40 | watch |
| L-2586 | MSR31-07 | PO-2026-0094 | CIC | 18-02-2026 | 90 | 12 | 56.29 | USD | 3.6728 | 3.6728 | 188.20 | 206.75 | 199.80 | 2,481.00 | premium |
| L-2544 | FIS12-B | PO-2026-0071 | Wuxi Movements | 31-01-2026 | 400 | 44 | 62.80 | CNY | 0.5188 | 0.5192 | 32.61 | 38.10 | 37.44 | 1,676.40 | healthy |
| L-2411 | MSR31-07 | PO-2025-0598 | CIC | 12-12-2025 | 120 | 0 | 54.02 | USD | 3.6730 | 3.6730 | 181.50 | 198.40 | 195.10 | 0.00 | premium |
| L-0001 | MSR31-07 | opening | opening balance | 31-12-2024 | 40 | 24 | 51.47 | USD | 3.6725 | 3.6725 | 175.00 | 189.00 | 189.00 | 4,536.00 | estimated |
Append only. Each row snapshots the units on hand and the WAC at that moment, so a historical margin never moves.
| SKU | Kind | Channel / PO | Prev | New | Delta | Units | Impact AED | GP before | GP after | Date | Severity |
|---|---|---|---|---|---|---|---|---|---|---|---|
| MSR31-07 | price | shopify online | 719.00 | 749.00 | +4.2% | 84 | +2,520 | 71.4% | 72.5% | 28-07-2026 | minor |
| MSR31-07 | cost | PO-2026-116 · CIC | 211.30 | 218.20 | +3.3% | 24 | +166 | 72.5% | 70.9% | 25-07-2026 | moderate |
| JRY12 | FX | PO-2026-118 · CNY | 69.90 | 71.40 | +2.1% | 260 | +390 | 66.2% | 65.5% | 24-07-2026 | moderate |
| LBA01 | cost | PO-2026-0402 · Milano | 200.20 | 221.40 | +10.6% | 240 | +5,088 | 57.1% | 52.6% | 18-07-2026 | significant |
| LBA01 | FX | EUR 4.0940 to 4.0955 | 221.32 | 221.40 | +0.04% | 240 | +19 | 52.6% | 52.6% | 18-07-2026 | negligible |
| CDW01 | cost | PO-2026-101 · CIC | 274.10 | 288.90 | +5.4% | 180 | +2,664 | 62.8% | 60.9% | 28-06-2026 | moderate |
| STRAP-FST01 | FX | PO-2026-0397 · CNY | 13.62 | 13.90 | +2.1% | 1,200 | +336 | 81.2% | 80.9% | 21-06-2026 | minor |
| PP02 | cost | PO-2026-0391 · Grasse | 80.40 | 84.20 | +4.7% | 900 | +3,420 | 73.2% | 71.9% | 14-06-2026 | moderate |
| ALM02 | price | pos retail | 329.00 | 299.00 | -9.1% | 96 | -2,880 | 82.4% | 80.7% | 08-06-2026 | moderate |
| DQR13 | FX | PO-2026-0301 · INR | 119.14 | 118.60 | -0.5% | 220 | -119 | 67.1% | 67.2% | 18-03-2026 | negligible |
| TNS01 | cost | PO-2026-0294 · Jaipur | 88.10 | 94.20 | +6.9% | 160 | +976 | 56.4% | 53.4% | 09-03-2026 | crossed into watch band |
| FIS12-B | cost | PO-2026-0071 · Wuxi | 36.40 | 38.10 | +4.7% | 400 | +680 | 71.8% | 70.5% | 31-01-2026 | minor |
| MHS17 | price | wholesale | 540.00 | 575.00 | +6.5% | 61 | +2,135 | 48.9% | 52.0% | 22-01-2026 | recovered to watch band |
| BX-MSR31-07 | composite | derived from components | 282.40 | 291.13 | +3.1% | 27 | +236 | 70.3% | 69.4% | 25-07-2026 | no layer of its own |
| AQB01 | no cost | never received through GRN | 0.00 | 0.00 | 0 | 54 | 0 | n/a | n/a | unknown | cost confidence unknown |
Year on year average change, split into what the supplier did and what the currency did
| Supplier | Ccy | SKUs | Avg delta YoY | of which price | of which FX | Most hiked | Most cut | Spend AED |
|---|---|---|---|---|---|---|---|---|
| CIC | USD | 218 | +9.4% | +9.4pp | 0.0pp | MSR31-07 +15.4% | MSR31-11 -1.2% | 4,215,820 |
| Wuxi Movements | CNY | 186 | +7.9% | +3.1pp | +4.8pp | JRY12 +11.7% | ALM11 -2.1% | 1,852,310 |
| Milano Leathers | EUR | 94 | +11.2% | +8.9pp | +2.3pp | LBA01 +10.6% | LBA33 -5.8% | 1,543,200 |
| Jaipur Gems | INR | 142 | +6.8% | +7.9pp | -1.1pp | TNS01 +6.9% | DQR13 -0.5% | 2,908,450 |
| Guangzhou Trims | CNY | 132 | +3.1% | +0.4pp | +2.7pp | STRAP-FST01 +2.1% | STRAP-BLK04 -1.4% | 742,100 |
| Grasse Aromatics | EUR | 45 | +5.9% | +3.6pp | +2.3pp | PP02 +4.7% | PP07 -2.5% | 684,320 |
| Alnoor Packaging | AED | 58 | +5.4% | +5.4pp | 0.0pp | BX-CARD +8.2% | POLY-B35 -7.5% | 984,310 |
| Sharjah Cartons | AED | 38 | -1.4% | -1.4pp | 0.0pp | MC-STD-04 +1.8% | MC-LRG-02 -3.7% | 214,050 |
| Coats Asia | USD | 28 | -0.9% | -0.9pp | 0.0pp | THR-PLY-301 +2.1% | THR-PLY-401 -2.5% | 198,640 |
| Fujairah Metals | AED | 54 | +2.2% | +2.2pp | 0.0pp | TRM-BKL-SS +4.1% | TRM-EDG-GLD -6.1% | 421,680 |
Only the supplier-price share is recoverable. FX is not a negotiation, it is a hedge.
Everything is integer fils. The rounding remainder from the division goes on the final unit of the layer, so the layer total is exactly the sum of its parts and a close never drifts by a dirham.
INV1 kept products.cost_aed and a stored gp_percent. i2 kept skus.cost_fils and never populated it at all. A single mutable number silently revalues every unit ever received, which means a month-end close cannot be reproduced a month later. i3 stores one immutable layer per receipt. A correction is a new layer that references the original, never an edit.
where FX risk actually lives
| LBA01 | Leather · Milano | +10.6% |
| TNS01 | Jewellery · Jaipur | +6.9% |
| CDW01 | Watches · CIC | +5.4% |
| PP02 | Fragrance · Grasse | +4.7% |
| FIS12-B | Jewellery · Wuxi | +4.7% |
| MSR31-07 | Watches · CIC | +3.3% |
| POLY-B35 | Packaging · Alnoor | -7.5% |
| TRM-EDG-GLD | Trims · Fujairah | -6.1% |
| LBA33 | Leather · Milano | -5.8% |
| MC-LRG-02 | Cartons · Sharjah | -3.7% |
Committed price not yet renegotiated. Risk is the delta against the last landed cost, at today's FX.