Dispatch Variance & Delivery Confirmation
StoreHarmony user guide for weight-based B2B delivery workflows
Audience: Store operators, dispatch clerks, and managers handling
weight-based B2B deliveries โ typically protein wholesalers, cold-chain
distributors, and any business where the weight of a shipment can
change between the store and the customer.
What this covers: How to generate a waybill from an approved
invoice, confirm delivery weights after the rider returns, read and
act on transit variance reports, and understand the status codes shown
on invoices.
Contents
- Overview โ the transit variance problem
- Before You Start
- Step 1 โ Generating a Waybill
- Step 2 โ Confirming Delivery Weights
- Monitoring Pending Deliveries
- Reviewing the Transit Variance Report
- Handling Special Cases
- Status Reference
- FAQ
1. Overview โ the transit variance problem
Weight-based perishable goods (beef, chicken, fish, dairy) lose mass
in transit due to fluid loss. The rider weighs out 100 kg at the
store, but the customer weighs in 98 kg โ the 2 kg difference is real,
predictable, and needs to be measured, not hidden.
Variance = Dispatched weight โ Confirmed weight at customer
StoreHarmony handles this through a three-step workflow on top of your
normal invoicing flow:
info Invisible to non-weight-based clients
The workflow is opt-in by user action โ nothing runs automatically.
If you never click Generate Waybill on an invoice, no waybill lines
exist, no confirmation is expected, and no variance buttons appear.
Pharmacies, electronics retailers, and any business that doesn’t deal
with weight loss in transit will never see the dispatch-variance
surface.
warn Why the variance doesn’t double-deduct inventory
The 100 kg was already removed from stock when the sale was approved.
The 2 kg variance is posted as an informational audit entry โ it
shows up in the flow ledger and the variance report, but it does
not reduce your stock a second time. Your books already reflect
the 100 kg that left; the variance just reclassifies 2 kg of that
loss as transit loss instead of sale.
2. Before You Start
| Requirement | Where to set it |
|---|---|
| Invoice must be saved and approved | Save Invoice โ invoice approval workflow |
| Invoice must have at least one line item | Standard invoice line entry |
| You must have permission to open and edit customer invoices | Administrator assigns roles |
| The rider dispatched must be recorded on the sales pack | Set assignedTo when creating the invoice |
tip Tip
The Generate Waybill and Confirm Delivery buttons only appear
on the invoice toolbar when the invoice is in the right state. If you
don’t see them, check the invoice’s approval status first.
3. Step 1 โ Generating a Waybill
โ Open an approved invoice
Where to go: Menu โ Sales โ Create Invoice โ load an existing,
approved invoice (or approve a new one).
โก Look at the action toolbar
If the invoice is approved and has no waybill yet, the Generate
Waybill button is now visible on the action toolbar, next to the
standard invoice buttons.
โข Click Generate Waybill
The system loops through every sales pack on the invoice and creates
one CustomerWayBillLineEntry per line, with:
- Waybill number:
WB-+ invoice reference (e.g.WB-INV-2026-0847) - Dispatched quantity: copied from the sales pack quantity โ this
is a snapshot that does not change if the sales pack is edited later - Status:
DISPATCHED - Dispatched on: today’s date and time
info Confirmation message
“Waybill generated: 3 line(s).”
The invoice’s dispatch status moves to FULLY_DISPATCHED and the
Generate Waybill button is replaced by Confirm Delivery.
tip Tip
You can only generate one waybill per invoice. If you click the button
on an invoice that already has a waybill, you’ll see “Waybill already
exists for this invoice.” and no duplicate lines are created.
4. Step 2 โ Confirming Delivery Weights
4.1 Opening the Delivery Confirmation panel
After the rider returns with the customer-signed paperwork, you need
to enter the weights the customer actually received. Load the
dispatched invoice and click Confirm Delivery on the toolbar.
4.2 Entering confirmed weights
โ Check the dashboard cards
The top row confirms the invoice reference, the customer, the total
dispatched weight, and the live running total variance. As you type,
the variance figure updates in real time.
โก Click into the Confirmed Wt column and type
Type the weight the customer weighed in, in the same unit the pack was
dispatched in (usually kg). The Variance column updates automatically:
| Display | Meaning |
|---|---|
+2 |
Dispatched 2 kg more than received โ transit loss |
0 |
Exact match โ no variance |
-0.5 |
Customer received more than dispatched โ investigate |
โข (Optional) Fill in the Remarks field
Free-text note stored with the post. Use it for rider observations,
weather, delay information, or any colour you’d want on the audit trail.
โฃ Leave unconfirmed lines blank
Lines without a confirmed weight are skipped when you post. You can
come back to the same invoice later to confirm the rest.
4.3 Posting the confirmation
When you’ve entered all the weights you have for this trip, click
Post Confirmation. A summary dialog appears:
info Confirmation prompt
Post 2 confirmation(s)? 2 line(s) have a variance that will be posted
as transit loss.
| [ Post Confirmation ] [ Cancel ] |
|---|
For each confirmed line, the following happens:
| Condition | Status transition | Variance posted? |
|---|---|---|
| Confirmed weight = dispatched | DISPATCHED โ DELIVERED |
No |
| Confirmed weight < dispatched (loss) | DISPATCHED โ DELIVERED โ RECONCILED |
Yes โ TRANSIT_LOSS |
| Confirmed weight > dispatched (investigate) | DISPATCHED โ DELIVERED |
No |
4.4 What the system records
| What | Where | Purpose |
|---|---|---|
| Waybill line updated | CustomerWayBillLineEntry |
confirmedWeight, varianceQty, varianceSource, confirmedAt, confirmedBy, status |
| Flow ledger entry | ShopItemQtyFlow |
Informational โ shows the variance in the item’s flow history. type=SOLD, priceSource=TRANSIT_VARIANCE |
| Audit document + line | InventoryChangeDocument + InventoryChangeLine |
Formal audit trail. documentRef=TRANSIT-VAR:{invRef}:{packId} |
warn Critical accounting insight
The flow entry carries a quantity, but it does NOT touch batches
or aggregate on-hand quantities. The stock was already deducted when
the invoice was approved. The variance entry is a reclassification โ
2 kg of the original 100 kg deduction was transit loss, not revenue.
5. Monitoring Pending Deliveries
Dispatched invoices that have not yet been confirmed show up in a
dedicated dashboard.
Where to go: Menu โ Sales โ Pending Deliveries
What to do with a pending line
- Note the invoice reference in the first column.
- Go to Create Invoice and load that invoice.
- Click Confirm Delivery and proceed through Section 4.
6. Reviewing the Transit Variance Report
Where to go: Menu โ Sales โ Transit Variance Report
| Variance lines | Total variance |
|---|---|
| 14 | 11.5 kg |
The report filters by date range (from/to) and variance source. Pick
Any source to see everything, or restrict to TRANSIT_LOSS,
RETURN_LOSS, or TOP_UP.
Reading the columns
| Column | Meaning |
|---|---|
| Date | Dispatch date of the waybill line |
| Invoice | Invoice reference |
| Customer | B2B buyer |
| Product | Item description |
| Dispatched | What left the store |
| Confirmed | What the customer received |
| Variance | dispatched โ confirmed. Loss shown with a minus sign (e.g. -2 = 2 kg lost) |
| Variance % | Variance as a percentage of dispatched |
| Rider | The staff member who dispatched |
| Source | Category of loss โ usually TRANSIT_LOSS |
What to look for
Look for patterns
- Same rider appearing often? Investigate โ rider-specific loss
patterns might indicate handling problems or dishonest practice. - Same customer appearing often? Might be a route problem
(temperature, distance, delay). - Same product appearing often? Product may need packaging
improvement or a different dispatch window. - Unusually high variance %? Check for weighing-scale calibration
on either end.
7. Handling Special Cases
7.1 Zero variance โ full delivery
Enter the dispatched figure in the Confirmed Wt column. Variance shows
0. On post, the line goes directly from DISPATCHED to DELIVERED
โ it does not become RECONCILED because there is no variance to
post. The line never appears in the variance report. This is the
desired outcome.
7.2 Partial confirmation โ some lines only
Enter confirmed weights on the lines you have figures for. Leave the
rest blank. Click Post Confirmation.
- Only the lines with a confirmed weight are posted.
- Unposted lines stay
DISPATCHED. - The invoice status goes from
FULLY_DISPATCHEDtoPARTIAL_DISPATCH
orPARTIAL_RECONCILED. - The Confirm Delivery button stays visible so you can return later.
7.3 Customer received more than dispatched
danger Investigate before posting
If the customer reports receiving more weight than dispatched,
something is wrong โ possible causes: scale calibration error at
either end, wrong item weighed at the customer side, or a data entry
mistake when typing confirmed weight.
The panel accepts the input but does not auto-post a TRANSIT_LOSS
source โ the variance is displayed as negative (e.g. -2) and the
line moves to DELIVERED without reconciliation. Fix the root cause
before recording a figure that doesn’t make physical sense.
7.4 Top-up dispatches
If the customer insists on the full amount, dispatch a separate
complimentary invoice for the shortage:
- Post the confirmation on the original invoice (records the transit
loss). - Create a separate second invoice for the top-up quantity with
zero/complimentary price, and dispatch it. - Generate a waybill for it. When confirming, mark the
varianceSourceasTOP_UPto distinguish it from normal sales
in the variance report.
One-click top-up creation is a planned future enhancement.
8. Status Reference
Invoice dispatch status
| Status | Meaning | Button visible |
|---|---|---|
NOT_DISPATCHED |
Invoice approved, no waybill generated | Generate Waybill |
FULLY_DISPATCHED |
Waybill created, nothing confirmed yet | Confirm Delivery |
PARTIAL_DISPATCH |
Some lines delivered, some unconfirmed | Confirm Delivery |
PARTIAL_RECONCILED |
Some lines reconciled, some still pending | Confirm Delivery |
FULLY_RECONCILED |
Every line confirmed, variances posted | None |
Waybill line status
| Status | Meaning |
|---|---|
DISPATCHED |
Line created, awaiting customer confirmation |
DELIVERED |
Customer confirmed, no variance to post |
RECONCILED |
Variance posted as transit loss |
Variance source
| Source | When to use |
|---|---|
TRANSIT_LOSS |
Weight lost during outbound delivery (default) |
RETURN_LOSS |
Weight lost on a customer return journey |
TOP_UP |
Complimentary dispatch covering an earlier shortfall |
9. FAQ
Do I have to use the dispatch variance workflow for every invoice?
No. It is opt-in by user action. If you never click Generate
Waybill on an invoice, nothing changes โ no waybill, no variance
tracking, no buttons on the toolbar. Regular retail sales are
untouched.
I clicked Generate Waybill by mistake. Can I undo it?
There is no “delete waybill” button today. The lines stay as
DISPATCHED forever if you never confirm them. If this causes clutter
in Pending Deliveries, contact your administrator to mark the lines
as DELIVERED with a zero variance.
Does the confirmed weight affect what the customer pays?
No โ not today. Pricing is still based on the dispatched quantity
on the invoice. The confirmed weight is a delivery record, not a
billing adjustment. If you need to bill by confirmed weight, that is
a separate policy decision requiring an invoice correction (a credit
note, typically).
My variance for a given line is 0.0003 kg โ why didn’t it post?
The threshold is 0.001 kg. Any variance below that is treated as
a rounding artefact and the line is marked DELIVERED without a
variance audit entry. This avoids a flood of trivial entries from
scale noise.
Can I edit a confirmed weight after posting?
Not through the UI. Once a line is RECONCILED it is protected from
further edits. For corrections, ask your administrator to post a
manual inventory adjustment referencing the original waybill line.
Where do I see the variance in the item’s history?
Open the item in inventory โ Flow tab. Variance entries appear as
SOLD type with priceSource = TRANSIT_VARIANCE and a remarks line
starting with Transit variance:. They do not change the item’s
quantity โ only the audit ledger.
Is the variance posted to the general ledger (accounting)?
Today, only to the inventory audit trail (InventoryChangeDocument /
InventoryChangeLine). A direct journal posting that debits a
“Transit Loss” expense account and credits “Cost of Goods Sold” is a
proposed future enhancement โ see
design/dispatch_variance/amazon_farms.md ยง4.4.
Can I export the variance report to Excel?
Not yet through a dedicated button. The TransitVarianceReportPanel
is a listing panel โ copy the table rows or ask your administrator
to integrate the report with the Inventory Reports Excel export path.
A rider says the customer lied about the confirmed weight. What do I do?
That’s a business/trust issue, not a software issue. The system
records whatever you type โ if you think the customer is gaming the
variance, raise it directly, or post a reduced confirmed weight based
on the rider’s on-the-spot measurement instead of the customer’s
claim. The audit trail keeps both figures for dispute resolution.
Last updated: 2026-04-22