AWRA OpsHub Search
Intermediate Certificate on pass

Bills of Materials, Assembly & Stock Reservations

List what goes into a product once, build or unbuild it from stock in whole units at the cost of what it consumed, and promise stock to confirmed orders so it cannot be sold, moved or built into anything else — with backorders filled oldest first as stock arrives.

6 lessons 60 min 10-question assessment 75% to pass

What you’ll learn

  • Build a bill of materials that can only ever be built in whole units
  • Raise, complete and cancel build and unbuild orders and explain what they cost and post
  • Explain free stock and which movements a reservation blocks
  • Follow a confirmed sales order from reservation through backorder to fulfilment, and use manual holds

Course content

6 lessons · 60 min of reading
01
Lesson 1 of 6 Reading 10 min

Designing a bill of materials

Open Inventory, Items, then the Bills of materials pill at the top of the page. A bill of materials (BOM) belongs to one item — the thing it makes — and lists its components and how many of each it takes. You choose the item, an optional name (the item’s name is used if blank), and the output quantity: how many units one run of the list makes. That is 1 for a single product, but a recipe that makes a batch, such as 12 bottles, sets 12, and each component’s quantity is then what the whole batch takes. Each line can carry a note. A BOM is active or archived, and only an active one can be built from.

Three structural rules keep a BOM safe. An item cannot be a component of itself, and a component that is itself made with the finished item is refused, so a list can never loop through a sub-assembly. Components can have BOMs of their own, but each is built on its own order: build the sub-assembly first, then the product. And editing a BOM changes future orders only — orders already raised keep the components they were raised with, so a recipe change mid-week does not rewrite Monday’s order. The BOM page shows today’s cost of one finished unit from current component costs.

In practice: a juice maker in Thika makes Mango 500 ml in batches. Its BOM for Mango 500 ml has an output quantity of 12 and components of 3 litres of mango pulp, 12 bottles, 12 caps and 12 labels. At current costs of KES 220 a litre of pulp, KES 18 a bottle, KES 3 a cap and KES 4 a label, the page shows a cost per finished bottle of (660 + 216 + 36 + 48) ÷ 12 = KES 80. A second BOM for a Mango gift crate lists 6 bottles of Mango 500 ml and one crate — the bottles are built first on their own order, then the crate.

Key takeaways

  • A BOM belongs to the item it makes and lists components per output quantity.
  • Only an active BOM can be built from; archived ones are kept for history.
  • Loops are refused; sub-assemblies are built on their own order first.
  • Editing a BOM affects future orders only.
02
Lesson 2 of 6 Practice 9 min

Whole units and checking stock

Stock in AWRA is held in whole units, and a build follows the same rule. If a quantity would need a fraction of any component — half a bottle, a third of a sack — it cannot be built or issued, and the page names the component that is the problem. It is never rounded. The fix is either a quantity that uses whole units of every component, or an output quantity on the BOM that makes the arithmetic whole. Where a component is genuinely used in fractions, that is usually a sign the item should be stocked in a smaller unit of measure, which is your decision rather than the system’s.

Before you build, enter a quantity and a warehouse and choose Check stock. For each component the page shows what that quantity needs, what is on the shelf at that warehouse, and how much you are short. Builds happen at one warehouse — components are taken from, and the finished item put into, the order’s warehouse — so if components sit in another branch, transfer them in first. A build also refuses stock that is reserved for a customer order or frozen by an open stock count, and says so plainly.

In practice: the juice maker wants 18 bottles of Mango 500 ml. With an output of 12 and 3 litres of pulp per batch, 18 bottles need 4.5 litres — refused, naming the pulp. Twenty-four bottles need exactly 6 litres and pass. Check stock for 24 at the Thika warehouse shows pulp needed 6, on the shelf 5, short 1, and bottles needed 24, on the shelf 200. The supervisor transfers 2 litres of pulp from the Ruiru store, rechecks, and the plan shows no shortfall.

Key takeaways

  • A quantity needing a fraction of any component is refused, never rounded.
  • Check stock shows per component: needed, on the shelf at the warehouse, short.
  • Components are drawn from and the product put into the order’s warehouse.
  • Reserved stock and stock frozen by an open count cannot be built with.
03
Lesson 3 of 6 Practice 11 min

Build and unbuild orders

Under Build or unbuild on the BOM you choose the direction, a whole-number quantity, the warehouse and, optionally, a bin; with no bin, components are drawn from wherever they sit in that warehouse and the finished item lands in its default bin. Raise order creates a draft — ASM for a build, DIS for an unbuild — and nothing moves yet. For serial-tracked items you enter the serials on the draft: one per finished unit built, and the units of each tracked component used (or recovered, on an unbuild); they are checked at completion. Complete moves the stock, all of it or none of it. A draft can be cancelled; a completed order stays as it is. Raising, completing and cancelling orders and recording their serials need the build assemblies permission; viewing and editing BOMs are separate permissions.

Costing follows what was consumed. On a build, each component leaves at its cost, the finished item arrives, and its moving average cost moves to take in the cost of what was used; the order records the total and the cost per unit. On an unbuild, the finished item leaves and the components come back, with its current cost shared across them in proportion to what they cost now. In the ledger a build moves value from components to the finished item: when both use the same inventory account — the usual case — that nets to nothing and nothing is posted; when they use different inventory accounts, the value is journalled from one account to the other.

In practice: some lists are used up rather than built into stock — a procedure pack in a clinic, a recipe in a kitchen. For those, Issue every component takes a number of uses, a warehouse and a reason and raises one ordinary check-out with every component on it, which goes through approval like any other; reservations, the reason’s accounts and custom fields all apply, and it needs the check-out permission. A Kisumu clinic’s Suture Pack BOM (gloves, suture, gauze, antiseptic) is issued for 15 procedures as one check-out, rather than built into a stock item nobody will ever sell. Building it would have been the mistake: if nothing goes back on the shelf, issue the components instead.

Key takeaways

  • Raising an order creates a draft; only completing it moves stock, all or nothing.
  • A build feeds the finished item’s moving average with the cost of what it consumed.
  • A journal is posted only when components and product use different inventory accounts.
  • Kits that are used up are issued as one check-out through normal approval.
04
Lesson 4 of 6 Reading 9 min

What a reservation is and what it blocks

A reservation is a promise of a quantity of one item at one warehouse. Free stock is what is on the shelf there, less everything promised. You will find them under Inventory, Items, then the Reservations and backorders pill, with two tabs: Reserved (stock being held, and for whom) and Backorders (what customers are still waiting for). Quote and order lines show free-to-promise, with any shortfall shown as what will be backordered.

The rule is enforced at the one point every stock exit passes through, so it cannot be bypassed by choosing a different screen. Reserved stock cannot be sold at the till, transferred, checked out, returned to a supplier or used in a build by anyone other than the order it is held for, and each refusal says how much is free and how much is reserved. Reservations are held per warehouse, not per bin or batch: the promise is “five of these from Nairobi”, and your usual rotation still decides which five are picked. A cashier who needs reserved stock asks someone with the permission to release it, and the release records who did it and when.

In practice: a Nairobi electronics shop has 10 of a router on the shelf and 8 promised to a confirmed school order. At the till, a walk-in customer asks for 3; the sale is refused with a message that only 2 are free and 8 are reserved for customer orders. The cashier checks the Reserved tab, sees the school’s order holding 8, and sells 2. Nobody had to remember the school order — the shelf could say 10 and the promise still held.

Key takeaways

  • Free stock = on the shelf at that warehouse, less everything promised.
  • Till, transfers, check-outs, supplier returns and builds all refuse reserved stock.
  • Reservations are per warehouse, not per bin or batch.
  • Refusals state how much is free and how much is reserved.
05
Lesson 5 of 6 Practice 11 min

From sales order to delivery, and backorders

Confirming a sales order reserves each stock line at the order’s warehouse, as much as is free, and backorders the rest. When stock arrives — a receipt, a transfer, a return, a completed build — waiting backorders for that item are filled oldest first, as far as free stock goes; releasing a hold also offers the freed stock to whoever is waiting. The sales order shows, per line, how much is reserved and how much is backordered. Stock at another branch does not fill a backorder until it is transferred into the order’s warehouse.

Delivery runs through the order. Invoice from the order and check it out: as much of the order’s reservation as the checkout takes moves onto the checkout, so its approval can draw on the stock promised to it. Approving the checkout fulfils the reservation; rejecting it hands the stock back to the order line it came from. Cancelling the order releases whatever it still holds. An invoice that was not raised from the sales order cannot draw on that order’s reservation — so invoicing a promised customer directly is the mistake that makes their own stock look unavailable to them. A quote invoiced directly that is short of stock is refused, with each shortfall named and a sales order suggested instead.

In practice: a Nakuru agrovet confirms an order for 40 bags of fertiliser at its Nakuru store with 30 free; 30 are reserved and 10 backordered. A second order for 15 bags is confirmed the next day and backorders all 15. On Thursday a receipt of 20 bags arrives: the first order’s 10 are filled (it is older), and 10 go to the second order, which still waits for 5. The agrovet invoices the first order from the order and checks it out; all 40 reserved bags move onto the checkout, and approval fulfils them. The second customer’s promise is kept in order, not by whoever happens to walk in first.

Key takeaways

  • Confirming an order reserves what is free and backorders the rest.
  • Arriving stock fills backorders oldest first at that warehouse.
  • The order’s checkout carries its reservation; approval fulfils it, rejection returns it, cancellation releases it.
  • Invoice from the order — a separate invoice cannot draw on the order’s reservation.
06
Lesson 6 of 6 Reading 8 min

Manual holds, release and cancelling a backorder

For a customer collecting on Friday, or materials set aside for a job, choose Hold stock: pick the item, warehouse and quantity, and optionally a customer, a note and an until date. Only free stock can be held. A hold with an until date is released automatically once that time passes (checked every hour); leave the date empty and it holds until someone releases it. If your account is set to one warehouse, holds are made there. Holding, releasing and cancelling backorders need the manage stock reservations permission; viewing needs view inventory, and Reserve stock on a sales order needs the manage sales orders permission.

There are two ways to end a promise and they are not the same. Release gives up the whole promise — the held part and anything on backorder — so the stock is free again and is offered first to whoever is waiting for that item. A sales order whose lines were released stays confirmed; use Reserve stock on the order to hold again. Cancel backorder stops waiting for what is not in stock but keeps what is already held: the customer takes the 6 you have and drops the 4 you do not. Choosing the wrong one either strands a customer’s stock or keeps a backorder alive that nobody wants.

In practice: a Dar es Salaam building supplier holds 50 bags of cement for a contractor collecting on Friday, with an until date of Friday 17:00. The contractor does not come; at the next hourly check after 17:00 the hold is released and the 50 bags fill an older backorder for another customer automatically. Separately, a customer whose order for 10 tiles has 6 held and 4 on backorder decides to take only the 6 — the clerk chooses Cancel backorder, not Release, so the 6 stay held for collection and the 4 stop waiting.

Key takeaways

  • Holds take free stock only, with an optional customer, note and until date.
  • An expired hold is released automatically within the hour.
  • Release gives up the whole promise; Cancel backorder keeps what is held.
  • Released stock is offered first to whoever is waiting for that item.

Finished the material?

Take the 10-question assessment and earn your certificate — 75% to pass.

Take the assessment

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center