Overview
The Variant Split / Stock Transformation tool turns one item you already have in stock into one or more other products you can sell or use. Cartons become bottles, kilograms become grams, whole carcasses become cuts, gift hampers become their contents. Stock and cost move together automatically.
Who it is for
- Shop staff โ open cartons, weigh portions, break bulk goods into sellable units.
- Supervisors โ oversee changes and sign off when stock is lost.
- Store managers โ need every gram, naira and piece to add up.
Four presets at a glance
| Preset | What it does | Example |
|---|---|---|
| Break Carton | Open a carton into single units | 1 carton soft drinks โ 12 bottles |
| Convert Measure | Change a measure into a finer one | 2 kg rice โ 2,000 g pack |
| Disassemble / Portion | Cut one whole thing into different parts | 1 cow โ fillet, shin, ribs, bone |
| Unbundle Composite | Break a bundle back into items inside it | 1 Breakfast Hamper โ cereal, milk, honey |
What the tool guarantees
- Cost follows the goods. Money never lost, never invented.
- Measures convert correctly. 2 kg โ exactly 2,000 g โ not “2”.
- Loss shown before you commit. “200 kg in โ 145 kg out = 55 kg loss (27.5%)” โ visible live.
- Approval only when stock is actually lost. Clean conversions save instantly; lossy ones create a reviewable record.
- All-or-nothing. The whole transformation goes through, or none of it does.
Watch out: If a measure conversion isn’t set up (e.g. kg โ g unknown), the tool stops and tells you rather than guess. Ask an admin to add it in Unit Conversions.
Key Concepts
Source item and Target item(s)
The source item is what you start with (the carton, the cow). The target item(s) are what you end up with (the bottles, the cuts). Always exactly one source; can be one or many targets.
Cost follows the goods
The money you paid for the source moves with the stock into the targets. A โฆ1,200 carton of 12 bottles means each bottle carries โฆ100. Nothing disappears.
Value weight
A number that says how valuable a target is relative to others. Higher = bigger share of the total cost. Defaults to the selling price. Fillet at 5.0 carries far more of a cow’s โฆ400,000 than Bone at 0.2.
Conserving vs Lossy
- Conserving: Nothing lost โ everything that goes in comes out (carton โ bottles, kg โ g). Saves instantly, no approval.
- Lossy: Some stock genuinely gone (cow โ cuts with 27.5% loss). Creates a reviewable record for supervisor approval.
Unit conversion / conversion rate
When a target uses a different unit from the source (kg โ g), the conversion rate (1 kg = 1,000 g) calculates the new quantity automatically. Set up once by an admin.
Walkthrough โ Break a Carton into Units
Example: 1 carton of soft drinks = 12 single bottles. Carton cost โฆ1,200 โ each bottle should be โฆ100.
- Open Break Carton from the inventory menu.
- Select “Soft Drink โ Carton”. Header shows available stock.
- Enter 1 carton to break. This is the only quantity you type.
- Form shows target product (“Soft Drink โ Bottle”) โ existing or newly created.
- Auto-fills: 1 ร 12 = 12 bottles.
- Footer shows: โฆ1,200 total cost รท 12 = โฆ100 per bottle.
- After-balance: Cartons 5 โ 4. Bottles 0 โ 12.
- Confirm and save.
Why no approval: This is conserving โ nothing is lost. Every bit of stock and value lands in the bottles.
What you end up with
- 1 carton gone.
- 12 bottles added, each valued at โฆ100.
- The โฆ1,200 preserved across them.
- No approval document โ saved and final.
Walkthrough โ Convert Kilograms to Grams
Example: 10 kg sack of rice at โฆ1,000/kg. Convert 2 kg into grams.
Key idea: You tell the screen how much to take from the sack in the sack’s measure (kg). The system knows the conversion and calculates the grams. You never type the grams.
- Open Convert Measure.
- Select the rice (sold by kg). Header shows 10 kg available.
- Choose “to” measure โ grams.
- In “amount to take” field, type 2 (kg).
- System calculates: 2 ร 1,000 = 2,000 g.
- Cost: 2 kg ร โฆ1,000 = โฆ2,000 รท 2,000 g = โฆ1 per gram.
- Sack now reads 8 kg.
- Loss = 0. Saves instantly.
- Click Save.
If no conversion exists: The screen stops you and points to Unit Conversions admin screen. Nothing is saved โ the system will never guess a conversion rate.
Walkthrough โ Portion a Carcass into Cuts
Example: 200 kg cow at โฆ400,000 โ Fillet, Shin, Ribs, Bone + 55 kg loss.
This is the heavyweight mode. Breaking a carton or converting a measure is tidy โ what goes in matches what comes out. Portioning a carcass is different: one thing goes in, several different things come out, and some is genuinely lost.
Before you start
- The whole item in stock (cow, 200 kg, โฆ400,000).
- Rough idea of cuts and selling prices.
- A scale โ this screen runs on actual weights.
Step by step
-
Open Disassemble / Portion. Select the cow. Header shows 200 kg available.
-
Enter source consumed: Type 200 (kg). This is what gets taken out of the cow’s stock โ NOT the sum of cut weights. The gap between input and output IS the loss.
-
Add a row for each cut. Four rows:
Cut Actual weight Value weight Fillet 30 kg 5.0 Shin 40 kg 2.0 Ribs 35 kg 1.5 Bone 40 kg 0.2 Each cut becomes its own separate product. Value weight defaults from selling price โ override if needed.
-
Watch the cost split live. The footer divides โฆ400,000 by value weight:
Cut Cost carried Per kg Fillet โ โฆ206,540 โ โฆ6,885/kg Shin โ โฆ110,150 โ โฆ2,754/kg Ribs โ โฆ72,290 โ โฆ2,065/kg Bone โ โฆ11,020 โ โฆ276/kg Total โฆ400,000 The four always add back to โฆ400,000.
-
Read the loss readout:
Input 200 kg โ Output 145 kg = 55 kg lost (27.5%). Live, before commit. Turns amber when loss exceeds threshold. -
Give a loss reason. E.g. “Trim & wastage โ normal carcass trim, blood, bone dust.”
-
Submit. Creates a reviewable record marked Awaiting review. A supervisor approves, then stock moves.
Incommensurable case: If a cut uses a different measure (e.g. hide = 1 piece), the system gives you the loss field to type in yourself, labelled as operator-entered.
Why the recorded loss matters
You can compare batches over time:
| Animal | Cost | In | Out | Loss | Loss % |
|---|---|---|---|---|---|
| Cow A | โฆ400,000 | 200 kg | 145 kg | 55 kg | 27.5% |
| Cow B | โฆ380,000 | 190 kg | 150 kg | 40 kg | 21.1% |
| Cow C | โฆ410,000 | 205 kg | 138 kg | 67 kg | 32.7% |
Spot patterns, ask questions, protect margins.
Walkthrough โ Unbundle a Composite Pack
Example: 1 Breakfast Hamper = 1 cereal + 2 milk + 1 honey โ separate sellable items.
Big reassurance: The hamper’s recipe is permanent. Opening unbundling never changes or deletes it. Cancel freely with zero damage.
- Open Unbundle Composite. Select Breakfast Hamper.
- Check header โ name, barcode, available quantity.
- Enter quantity: 1.
- Review auto-filled contents from recipe: 1 cereal, 2 milk, 1 honey.
- Confirm quantities. Cost is shared by item value โ pricier items carry more. Always adds back to hamper’s cost.
- Check loss line: No loss (green) โ saves instantly. Loss (amber) โ reviewable record with reason.
- Submit.
What you end up with
- 1 fewer Breakfast Hamper.
- 1 cereal, 2 milk, 1 honey as separate sellable items with fair cost shares.
- Recipe intact for future use.
Cost Sharing in Depth
When you split one item into several, two questions arise: “What does each new product cost?” and “How much did I lose?”
How cost is shared
Each cut gets a slice of the โฆ400,000 by qty ร value weight, not just by weight.
Step 1 โ Share points:
| Cut | Qty ร Weight | Points |
|---|---|---|
| Fillet | 30 ร 5.0 | 150 |
| Shin | 40 ร 2.0 | 80 |
| Ribs | 35 ร 1.5 | 52.5 |
| Bone | 40 ร 0.2 | 8 |
| Total | 290.5 |
Step 2 โ Each cut’s share: Points รท total points ร โฆ400,000
| Cut | Share % | Cost | Per kg |
|---|---|---|---|
| Fillet | 51.6% | โฆ206,540 | โฆ6,885/kg |
| Shin | 27.5% | โฆ110,150 | โฆ2,754/kg |
| Ribs | 18.1% | โฆ72,290 | โฆ2,065/kg |
| Bone | 2.8% | โฆ11,020 | โฆ276/kg |
| Total | 100% | โฆ400,000 |
What if all weights are zero? The sharing only works if at least one target has value weight > 0. If all are zero, the form stops you. A weight of zero on one row means pure waste (carries quantity but no cost).
Loss in your real measure
| Type | Meaning | Document? |
|---|---|---|
| Conserving | Nothing lost โ outputs = input | No |
| Lossy | Some stock disappears as waste | Yes โ reviewable record |
Important: The cost still stays in the cuts. The loss line records missing weight, not a second money deduction.
Approvals, Corrections and the Record Trail
When approval is needed
- No loss โ no approval needed. Saves instantly.
- Loss โ needs approval. Stock is held pending until a supervisor signs off.
The approval flow
- Staff submits lossy transformation โ Pending Approval.
- Supervisor reviews: source consumed, outputs with costs, loss amount and %, reason.
- Approve (stock moves) or reject (stock stays, fix and resubmit).
Making corrections
- Before submission: Clear the form and start over.
- After submission, before approval: Withdraw, fix, resubmit.
- After approval: Use a reversal document (stock adjustment).
What the record contains
- Date, time, user performing the transformation.
- Source: item, qty consumed, unit cost, total cost.
- Each target: item, qty added, allocated cost, cost per unit.
- Loss: quantity, percentage, reason.
- Approval: status, approver, timestamp.
- Reversal reference (if later corrected).
Common Problems
| Problem | Cause | Fix |
|---|---|---|
| “Can’t convert โ no conversion rate found” | Unit conversion not set up | Ask admin to add it in Unit Conversions |
| “At least one target must have value weight > 0” | All value weights = 0 | Set selling prices or enter weights manually |
| Loss reading higher than expected | Mis-weighed outputs or wrong input | Re-weigh cuts, double-check source consumed |
| “Cannot unbundle โ insufficient stock” | Not enough bundles in stock | Check stock, reduce quantity |
| Recipe looks wrong in unbundling | Recipe set up incorrectly | Edit composite product’s recipe |
| “Transformation could not be saved” | All-or-nothing safety โ one step failed | Check quantities, costs, conversions. Try again |
Quick Glossary
| Term | One-line meaning |
|---|---|
| Source item | The one product you start with and take apart |
| Target item | What comes out โ new product(s) with own stock and cost |
| Cost follows the goods | Money paid for source moves to targets; nothing invented |
| Value weight | How valuable a target is; higher = bigger cost share |
| Conversion rate | Fixed relationship between two units (e.g. 1 kg = 1,000 g) |
| Conserving | Nothing lost โ outputs equal input |
| Lossy | Some stock disappears (trim, waste, shrinkage) |
| Loss / wastage | Missing stock, shown in real measure with %, before save |
| Reviewable record | Pending document awaiting supervisor approval |
| All-or-nothing | Transformation saves fully or not at all |
| Preset | Pre-configured mode (Break Carton, Convert Measure, etc.) |
Stock Transformation โ Test & Training Walkthrough
For: shop staff, supervisors and store managers testing the new
Stock Transformation tool for the first time.
You do not need to be technical. If you can count cartons, read a
weighing scale and follow numbered steps, you can complete every test here.
This guide walks you through five real jobs, one click at a time. For
each one it tells you exactly what to click, what to type, and โ just as
important โ what you should see on the screen so you can confirm it
worked. Tick the โ
checklist at the end of each case.
What this tool does, in one line: it takes one thing you already have
in stock (a carton, a sack, a whole cow, a gift hamper) and turns it into
one or more other products, moving the stock and the money correctly and
automatically.
Table of contents
- Before you start
- A quick tour of the screen
- Use Case 1 โ Break a carton into single units
- Use Case 2 โ Convert kilograms into grams
- Use Case 3 โ Portion a whole cow into cuts
- Use Case 4 โ Unbundle a composite hamper
- Use Case 5 โ Safety checks (the tool protecting you)
- Final acceptance checklist
- Quick glossary
Before you start
Have these ready before you begin testing:
- A few test products in stock at your working location:
- a carton item with a known “units per carton” (e.g. Soft Drink โ Carton, 12 per carton),
- a bulk-by-weight item (e.g. Rice, sold in kg, with stock on hand),
- a whole item to cut up (e.g. Beef โ Whole, in kg),
- a composite/bundle item with a saved recipe (e.g. Breakfast Hamper).
- Permission to manage stock. If the item is a raw material, the tool
will ask you to confirm extra permission before it opens โ that is normal. - A manager/approver name handy for the cases that record a loss (you can
also leave approval for later).
Note: These transformation actions appear on a classic-account
setup. If you don’t see them, check with your administrator.
Where to find the tool
You don’t hunt through menus โ the tool lives on the item:
- Open your inventory list (your list of products).
- Click the item you want to transform so it is selected/highlighted.
- Right-click the item (or open the actions sidebar) and choose the
action for the job:- Break Carton โ open a carton into single units
- Convert Measure โ change a measure into a finer one (kg โ g)
- Disassemble / Portion โ cut one whole thing into several products
- Unbundle Composite โ break a bundle back into its contents
Each opens the same form, already set up for the job you picked.
A quick tour of the screen (read once)
Every transformation opens the same window. Learn it once and all five cases
feel familiar.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Break Carton โ โ title = the job
โ Open one or more cartons into their single sellable units. โ โ one-line description
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โ
โ โ SOURCE โ โ SKU โ โ SOURCE UOM โ โ AVAILABLE โ โ โ read-only info cards
โ โ Softโฆ โ โ 60012โฆ โ โ carton โ โ 5 carton โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โ
โ Cartons to break: [ 1 ] Approver: [ (optional) โผ ] โ โ what YOU enter
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Child | SKU | Variant | Size | Child UoM | Qty | Value Weight | โฆ| โ โ โ the target table
โ Soft Drink โ Bottle | โฆ | | | unit | 12 | 100 | โฆ100 | โฆ1,200 โ
โ โ
โ Conserving โ no loss. Saves directly, no approval needed. (green) โ โ the LIVE loss readout
โ โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ TOTAL SOURCE COST โ โ SOURCE AFTER โ [ Cancel ] [ Save ] โ โ totals + buttons
โ โ โฆ1,200 โ โ 4 carton โ โ
โ โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Three things to keep your eye on before you click Save:
- The loss readout (the coloured line in the middle): green = nothing
lost, saves straight away; amber = some stock is lost, this becomes a
record a manager reviews; red = something is wrong (fix it before
saving). - SOURCE AFTER: what the original item will read after you save. If it
turns red, you’re trying to use more than you have โ stop. - TOTAL SOURCE COST: the money being carried over into the new products.
Golden rule: You only ever type how much of the source to use. The
tool works out the new product quantities, the costs and the loss for you.
Use Case 1 โ Break a carton into single units
The job: open 1 carton of soft drinks into 12 single bottles.
The carton cost โฆ1,200, so each bottle should carry โฆ100. Nothing is lost.
Steps
- In the inventory list, click Soft Drink โ Carton to select it.
- Right-click โ Break Carton. The form opens with the title “Break Carton”.
- Check the info cards at the top:
- SOURCE = Soft Drink โ Carton
- SOURCE UOM = carton
- AVAILABLE = your current cartons (say 5 carton)
- In “Cartons to break:” type
1. - Look at the table row underneath โ you did not type this, the tool
filled it in:- Child = Soft Drink โ Bottle, Child UoM = unit, Qty = 12
- (Optional) In Selling Price type the bottle’s price, e.g.
100.
(You may also leave it โ it just sets the cost-sharing weight.) - Read the green line: “Conserving โ no loss. Saves directly, no approval needed.”
- Check the footer: TOTAL SOURCE COST โ โฆ1,200, SOURCE AFTER = 4 carton.
- Click Save Transformation.
- You should see: “Transformation saved. 1 target(s) updated.”
โ Test checklist
- [ ] The Qty filled itself in as 12 when you typed 1 carton.
- [ ] The loss line was green (“no loss”).
- [ ] No approver was needed โ it saved immediately.
- [ ] Back in inventory: Soft Drink โ Carton dropped by 1 (5 โ 4).
- [ ] Soft Drink โ Bottle now shows 12 in stock (created if it
didn’t exist), each carrying about โฆ100 cost. - [ ] Add it up: 12 ร โฆ100 = โฆ1,200 โ the carton’s full value carried over.
Try also: change “Cartons to break” to 2 and watch Qty jump to
24 and SOURCE AFTER drop to 3 on its own.
Use Case 2 โ Convert kilograms into grams
The job: take 2 kg from a 10 kg sack of Rice (โฆ1,000/kg) and turn
it into a 2,000 g loose-rice product. Nothing is lost.
Steps
- Select Rice in the inventory list.
- Right-click โ Convert Measure. Title reads “Convert Measure”.
- Cards show SOURCE UOM = kg, AVAILABLE = 10 kg.
- In “Amount to take (kg):” type
2. - In “Convert to:” type the smaller unit โ
g(grams). - Watch the single table row fill in: Qty = 2000, Child UoM = g.
- This used the saved rule 1 kg = 1,000 g. You did not calculate it.
- Read the green line: “Conserving โ no lossโฆ”.
- Footer: TOTAL SOURCE COST โ โฆ2,000; SOURCE AFTER = 8 kg.
- (Optional) set the new product’s Selling Price per gram.
- Click Save Transformation โ “Transformation saved. 1 target(s) updated.”
โ Test checklist
- [ ] Typing 2 (kg) produced 2,000 (g) automatically.
- [ ] The sack reads 8 kg afterwards (it dropped by the 2 kg you took,
not by 2,000). - [ ] The 2,000 g product carries โฆ2,000 total (about โฆ1 per gram).
- [ ] Loss line was green; no approval needed.
๐ด Important sub-test โ what happens with no conversion set up
Try converting to a unit the system doesn’t know yet (e.g. scoop):
- In “Convert to:” type
scoop. - The middle line turns red: “No conversion kg โ scoop. Add it on the
Unit Conversions screen.” - Click Save Transformation. It refuses, and nothing is changed โ
the sack is still 10 kg.
- [ ] The tool stopped you rather than guessing a wrong amount.
- [ ] Your stock was untouched.
- [ ] (Admin) After adding the kg โ scoop conversion on the Unit Conversions
screen, repeating the steps now works.
Use Case 3 โ Portion a whole cow into cuts
The job (the big one): cut a 200 kg cow (bought for โฆ400,000) into
four different products. Some weight is genuinely lost as trim โ that is
normal, and the screen shows it to you before you save.
| Cut | Weight you got | Value weight (how prized) |
|---|---|---|
| Beef Fillet | 30 kg | 5.0 |
| Beef Shin | 40 kg | 2.0 |
| Beef Ribs | 35 kg | 1.5 |
| Beef Bone | 40 kg | 0.2 |
(30 + 40 + 35 + 40 = 145 kg out of 200 kg โ 55 kg lost.)
Steps
-
Select Beef โ Whole in the inventory list.
-
Right-click โ Disassemble / Portion. Title reads “Disassemble / Portion”.
- If asked to confirm raw-material permission, authorise it.
-
In “Whole processed (kg):” type
200(the whole cow).This is the amount taken out of the cow โ not the sum of the cuts.
-
The table starts with a few blank rows. Use Add Target / Remove
Selected to get exactly four rows. For each row type:Child (name) SKU Child UoM Qty Value Weight Selling Price Beef Fillet BEEF-FIL kg 30 5.0 (your price) Beef Shin BEEF-SHN kg 40 2.0 (your price) Beef Ribs BEEF-RIB kg 35 1.5 (your price) Beef Bone BEEF-BON kg 40 0.2 (your price) Tip: if you set sensible selling prices, you can leave Value
Weight at 0 and it will default from the price. Here we type the
weights so the numbers match the example. -
Watch the โ Allocated Cost column fill in live. Fillet should carry the
biggest slice (โ โฆ206,540) and Bone the smallest (โ โฆ11,000). The
Total row adds back to โฆ400,000. -
Read the middle line โ it is now amber:
“Input 200 kg โ Output 145 kg = 55 kg loss (27.5%) โ reviewable loss document.” -
A Loss reason box has appeared. Type a reason, e.g.
trim & bone dust. -
Choose how it gets approved:
- To post it now, pick a manager in “Approver:”.
- To send it for review later, leave Approver blank.
-
Click Save Transformation.
- With an approver: “Transformation approved and posted (55 kg loss).”
- Without: “Recorded with 55 kg loss โ awaiting review.”
โ Test checklist
- [ ] The loss line showed 55 kg (27.5%) before you saved โ no surprise.
- [ ] It turned amber and required a loss reason.
- [ ] Allocated Cost for the cuts added back to โฆ400,000 (Fillet โซ Bone).
- [ ] The cow dropped by 200 kg (only on approval, if you left it for review).
- [ ] Each cut became its own product with its own real cost per kg.
- [ ] If left for review: it appears in the review queue as AWAITING_REVIEW;
a manager approving it then moves the stock.
Try also: delete a weight so the cuts add up to 200 โ the loss
drops to 0 and the line turns green (“saves directly”). Put it back
and the amber loss returns. This shows the readout is live.
Use Case 4 โ Unbundle a composite hamper
The job: break 1 Breakfast Hamper back into its contents โ 1 cereal,
2 milk, 1 honey โ using the hamper’s saved recipe.
Steps
- Select Breakfast Hamper in the inventory list.
- Right-click โ Unbundle Composite. Title reads “Unbundle Composite”.
- The table is pre-filled from the recipe โ you’ll see Cereal, Milk and
Honey already listed. (You don’t retype these.) - In “Packs to unbundle:” type
1. - Watch the recipe quantities multiply by your number:
- Cereal 1, Milk 2, Honey 1. (Type 3 packs and they become
3 / 6 / 3.)
- Cereal 1, Milk 2, Honey 1. (Type 3 packs and they become
- Read the loss line. For a clean hamper it is green
(“Conserving โ no loss”) and will save directly. - Check SOURCE AFTER = your hampers minus what you entered.
- Click Save Transformation โ “Transformation saved. N target(s) updated.”
โ Test checklist
- [ ] The contents were filled in from the recipe (you didn’t type them).
- [ ] Entering 1 pack suggested 1 cereal, 2 milk, 1 honey.
- [ ] Hamper count dropped by the number you entered; the 3 contents went up
by the right amounts, each carrying a fair share of the hamper’s cost. - [ ] Most importantly โ the recipe is safe: click Cancel (or
re-open the form) and confirm the Breakfast Hamper still knows its
recipe (1 cereal, 2 milk, 1 honey). Clearing or cancelling must
never delete the recipe.
Use Case 5 โ Safety checks (the tool protecting you)
These are quick tests to prove the tool refuses to do anything dangerous.
None of them should change your stock.
5a. You can’t use more than you have
- Open Break Carton (or any mode) on an item with, say, 5 on hand.
- In the amount field type
9999. - Watch SOURCE AFTER turn red (it would go negative).
- Click Save Transformation โ you get “You only have 5 โฆ available.”
and nothing is saved.
- [ ] Over-using is blocked; stock unchanged.
5b. Every output can’t be worth nothing
- Open Disassemble / Portion, enter a source amount, add a couple of cuts
with Qty but leave every Value Weight = 0 and no selling prices. - Click Save Transformation โ it refuses (it has no way to share the cost).
- [ ] You’re prompted to give at least one price or weight; nothing is saved.
5c. Mixed units it can’t compare (the hide example)
Some by-products are counted differently from the carcass โ e.g. a hide
sold as 1 piece while the cuts are in kg.
- In Disassemble / Portion, add the kg cuts plus a hide row with
Child UoM = piece, Qty = 1. - Because pieces can’t be weighed against kilograms, the loss line says
“Mixed units โ enter the loss in kgโฆ” and a Loss (kg) box appears. - Type the trim you actually lost, e.g.
50, and a loss reason. - Save (with or without an approver as in Use Case 3).
- [ ] When it can’t work the loss out itself, it asks you rather than
inventing a number.
5d. Nothing half-finishes
- [ ] If anything fails during a save, no part of it is applied โ the
source is not reduced and no new products appear. It is always safe to
simply correct the inputs and try again.
Final acceptance checklist
Tick these once across all the cases above:
| # | What to confirm | โ |
|---|---|---|
| 1 | Carton โ units: 1 carton @ 12/carton, โฆ1,200 โ 12 units @ โฆ100; carton โ1; โฆ1,200 preserved | โ |
| 2 | kg โ grams: take 2 kg โ 2,000 g @ โฆ1/g; sack reads 8 kg; โฆ2,000 preserved | โ |
| 3 | Missing conversion is rejected with a clear message; nothing saved | โ |
| 4 | Cow โ cuts: loss 55 kg (27.5%) shown before saving; reason required; cost shares add to โฆ400,000; each cut its own costed product | โ |
| 5 | Loss reason + approval: lossy job creates a reviewable record; choosing an approver posts it at once; leaving it blank sends it for review | โ |
| 6 | Composite: contents seeded from recipe; cancelling/clearing keeps the recipe intact | โ |
| 7 | Decoupled deduction: the source only ever drops by the amount you typed, never by the sum of differently-measured outputs | โ |
| 8 | Safety: over-use blocked (SOURCE AFTER red), all-zero-value blocked, mixed-units asks for the loss, partial failures change nothing | โ |
| 9 | Honest messages: the message at the end truthfully says saved / awaiting review / approved (or the exact reason it stopped) | โ |
Quick glossary
- Source โ the item you start with (the carton, sack, cow, hamper).
- Target / child โ each product you end up with; its own name, barcode,
price and stock balance. - Value weight โ how prized a target is, used to share the source’s cost.
Higher weight = bigger slice of the cost. Defaults from selling price. - Conserving โ nothing lost; saves straight away, no approval.
- Lossy โ some stock is genuinely lost (trim, wastage); creates a
reviewable record and asks for a reason. - Loss readout โ the live coloured line: green = no loss, amber = loss
(review), red = fix something first. - SOURCE AFTER โ what the original item will read once you save.
- Approver โ choose one to post a lossy job immediately; leave blank to
send it for a manager’s review.
Companion documents:
design/inventory/inventory_variant_split_tutorial.md
(the in-depth story behind these jobs) and
design/inventory/variant_split.md(the technical specification).