Shipped Is Not Invoiced
A lorry leaving the yard and an invoice leaving the accounts office are two different events, and a system that treats them as one will count the same cement twice. Order fulfilment now tracks pick, pack, ship and deliver on its own line, and the stock still leaves the books at exactly one point.
A building-materials distributor in Athi River took an order for 400 bags of cement. Two lorries were available on Tuesday, so 250 bags went out with tracking numbers on a delivery note, and the other 150 waited for Thursday. The invoice for all 400 was raised on Monday and checked out on Friday. For three days the stock report said 400 bags were in the yard when 150 were, and nobody could say from the system which lorry carried what.
The obvious fix is to take the stock off the books when the lorry leaves. It is also the wrong one, for a reason that only shows up in the ledger: if the shipment issues the stock and the invoice checkout issues it again, every order that is shipped and then invoiced leaves the shelf twice and posts its cost of sales twice. The build on 29 October keeps the two events apart and shows them side by side.
The warehouse has its own status
A sales order now carries two facts that used to be folded into one. Its commercial status says where the sale is: confirmed, partly invoiced, invoiced. Its fulfilment status says where the goods are: not picked, picking, picked, packed, partly shipped, shipped, partly delivered, delivered. An order made only of services shows “Nothing to ship”.
-
Pick
Print a pick list for the order, and record what was picked, line by line or all at once. You cannot pick more than was ordered.
-
Pack
Record what was packed, out of what was picked.
-
Ship
Each shipment gets its own number, the carrier, a tracking number, the date it left and notes. Shipping packs whatever it takes, because a box cannot leave the yard unpacked. Ship part of the order now and the rest later.
-
Deliver
Mark the shipment delivered with the date and the name of the person who received it. A delivery cannot be dated before the lorry left.
A shipment that has not been delivered can be cancelled, with a reason, and the goods go back to packed and ready to ship again. A delivered shipment cannot be cancelled. Neither can an order that has partly shipped: goods already with a carrier or a customer are invoiced, not wished away.
Why the stock leaves at checkout
| Event | What it does to stock and the ledger |
|---|---|
| Order confirmed | The stock is reserved for this customer, so nobody else sells it |
| Invoice checked out | The reservation moves onto the checkout |
| Checkout approved | The stock leaves the shelf, and cost of sales and revenue post |
| Shipment sent or delivered | Nothing moves: it records who carried what, and who signed for it |
| Shipment cancelled | Nothing moves: a shipment never took anything off the books |
The order page shows Shipped and Checked out next to each other for every line. When goods have shipped ahead of their invoice, the page says so in a sentence: they shipped before their invoice was checked out, and they stay on the books until it is. That is the Athi River problem, made visible rather than silently assumed.
See the journal before it posts
The order and the invoice both show a finance posting preview: the debits and credits the invoice will post, in its own currency, with the rate it will convert at if it is foreign. It is built by the same code that writes the journal, so the preview and the posting cannot disagree.
Shipping is logistics. Invoicing is accounting. Let one of them move the stock, and let the other one say where the lorry is.
Contracts that bill on milestones
Not everything a business sells goes on a lorry. A maintenance agreement, a twelve-month support contract or an installation paid in stages is invoiced on a calendar or on progress, and the risk there is the opposite of double counting: a stage that is never billed, or one billed twice.
A sales contract names the customer, the service, the total value and a schedule: even monthly or quarterly instalments, fixed amounts on fixed dates, or a percentage of the value at each milestone. The percentages must add up to 100 and the amounts to the contract value before it saves. Amounts are before tax; tax is added on each invoice as for any other invoice to that customer. A contract bills a service. Goods are sold on a sales order, where the stock rules above apply.
A KES 1,200,000 installation contract
Illustrative.
- Each milestone is billed once, ever. The milestone is locked and given its invoice in the same step, so a second run, a retry after a failure or “Bill now” pressed twice cannot raise another.
- Billing runs every morning. A contract set to issue automatically issues through the same step as any invoice, which is where eTIMS filing happens for a Kenyan workspace; otherwise the invoice waits as a draft for a person to issue.
- A failed milestone is retried on the next run, and the contract’s owner is told the first time it fails, not every morning after.
- Billed milestones are locked when you edit a contract. The value cannot drop below what has been billed, and a contract that has invoiced a customer cannot move to another. Every edit is audited.
The step-by-step guides are Sales Order Fulfilment and Contract Billing. Orders, quotes and proformas are on the quotes and sales orders page, and the invoicing side on the invoice and billing automation page. For goods that arrive larger than they were ordered, the receiving side of the same problem is in The Delivery That Was Bigger Than the Order.
Four questions for your dispatch desk
Which orders have shipped but not been invoiced?
A good answer sounds like
A list, from the orders, with the quantities.
What it tells you
Goods on the road with no invoice are revenue nobody is chasing.
Which lorry carried this customer’s goods, and who signed for them?
A good answer sounds like
The shipment, its carrier and tracking number, and the receiver’s name.
What it tells you
A delivery dispute with no shipment record is settled by whoever argues longest.
At what moment does your stock leave the books?
A good answer sounds like
One event, the same for every order.
What it tells you
Two answers means some orders are counted twice.
Which contract milestones fell due last month and were not billed?
A good answer sounds like
None, or a named failure being retried.
What it tells you
Stage billing kept in a calendar is billing kept in someone’s memory.
Bottom line
Track the lorry and the invoice separately and show them side by side. Move the stock at one point only. And bill contract stages from the contract, once each, so the money arrives on the schedule the customer signed.
What AWRA OpsHub does today
- Pick, pack, ship and deliver on each order line, in whole or in part, with a separate fulfilment status and a printable pick list.
- Shipments with a number, carrier, tracking number, ship date, delivery date and receiver, and cancellation with a reason before delivery.
- One exit for stock: reserved at order confirmation and taken off the books when the invoice checkout is approved, with shipped and checked-out quantities shown side by side.
- A finance posting preview on the order and the invoice, built by the code that posts.
- Contract billing schedules in even instalments, fixed amounts or percentages, billed once per milestone by a daily run, as drafts or issued automatically, on the web, the API and the app.
- Contract edits with billed milestones locked and every change audited.
More we can add to your workspace
- Proof of delivery on a shipment: a photo and the receiver’s signature taken on the driver’s phone and stored with it.
- Tracking pulled from the carrier, so a shipment’s status updates from the courier’s own system.
- Contracts billed in a foreign currency, for customers who sign in dollars while the books are kept in shillings.
- Usage-based contract lines, billing a metered quantity each period on top of the fixed schedule.
Where we point you to a specialist
- When revenue is recognised on a contract, at billing, on delivery or over time, is an accounting policy for your finance lead and auditor. The schedule bills on the dates you set.
- Choosing a carrier and agreeing delivery terms with a customer is a commercial matter between you and them. The shipment records what was agreed and what happened.
Proof of delivery and foreign-currency contracts each build on records the order and the contract already keep.
Anything above that you need, we can build for you
Everything listed above as something we can add describes what ships in the standard product today — it is a starting point, not a limit on what AWRA OpsHub can do for your organisation. Kenya's eTIMS integration and its maintained payroll engine are both in the product because clients needed them and commissioned them; neither appeared by itself, and the same door is open for whatever you just read about. One qualification so this is worth what it claims: a small number of things on this blog we deliberately leave to a specialist rather than build — a statutory ledger we will not sign our name to, a rule that would decide a tax question for you, a clinical or member-funds record that belongs in a regulated system — and where that is true the post says so in those words. Everything else is a scope, a timeline and a price.
The operational work, which is what most commissions actually are
An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.
The module-shaped additions, which are the ones readers ask for most often
A price list with real discount authority, a customer-facing quotation that expires, a bill of materials or recipe costing, a staff advance that is issued, acquitted and chased, a member or unit ledger, a matching rule that holds a payment. Each of these is a build rather than a setting, and each has been quoted before — a bigger piece of work than a custom field, with a written spec and a date instead of a roadmap slide.
The report, document or pack nothing currently produces
The board pack in the shape your board actually asks for, a donor or funder layout, an invoice or receipt template carrying what your regulator or your customer expects, a dataset the report builder cannot reach yet. Usually the fastest thing on this list to deliver, because the data is already in the system.
Systems, rails and hardware you already run
The accounting package, CRM, online store, core banking or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed. Plus the physical edge: a scanner, a scale, a weighbridge or a till peripheral feeding the door it belongs to.
How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. Nothing here waits on a regulator or a published specification, which is why operational builds are the ones we quote fastest. Tell us the requirement that would otherwise rule us out — that is a better first conversation than a demo.
Tell us what your operation needsQuotes, sales orders and fulfilment in AWRA
From the quote to the pick list, the shipment and the invoice, with the stock moving once.
Read the feature pageFrequently asked questions
When does stock leave the books for a sales order in AWRA OpsHub?
When the checkout of the invoice raised from the order is approved. Confirming the order reserves the stock, and shipping or delivering it records the logistics without moving stock, so goods that are shipped and then invoiced are never deducted twice.
Can an order be shipped in parts?
Yes. Each shipment carries its own number, carrier, tracking number and dates, and can hold part of each line. The order shows what has been picked, packed, shipped, delivered and checked out for every line.
What happens to stock when a shipment is cancelled?
Nothing, because a shipment never took stock off the books. The goods return to packed and ready to ship, and the cancellation is recorded with its reason. A delivered shipment cannot be cancelled.
Can a contract milestone be billed twice?
No. A milestone is locked and given its invoice in the same step, so a second run, a retry or a repeated click cannot raise another invoice for it.
Can a sales contract bill goods?
No. A contract bills a service. Goods are sold on a sales order, where reservations, fulfilment and the stock rules apply.