Dispatch Variance & Delivery Confirmation

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

  1. Overview โ€” the transit variance problem
  2. Before You Start
  3. Step 1 โ€” Generating a Waybill
  4. Step 2 โ€” Confirming Delivery Weights
  5. Monitoring Pending Deliveries
  6. Reviewing the Transit Variance Report
  7. Handling Special Cases
  8. Status Reference
  9. 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:

NORMAL INVOICING(existing workflow)Create InvoiceApprove InvoiceStock deducteddispatchStatus = NOT_DISPATCHEDGENERATE WAYBILL(new โ€” click a button)One waybill line perSalesPackdispatchedQty snapshotstatus = FULLY_DISPATCHEDCONFIRM DELIVERY(after rider returns)Enter confirmed weightsVariance auto-computedTransit loss postedstatus = FULLY_RECONCILED
Figure 1. The three phases of the dispatch variance workflow.

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.

Invoice No: INV-2026-0847Sync To CloudTo ExcelSave InvoicePost To SalesGenerate Waybillnew button,click it
Figure 2. The Generate Waybill button on the invoice toolbar.

โ‘ข 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

Confirm DeliveryEnter the weight the customer actually received per line. Variance = dispatched โˆ’ confirmed.INVOICEINV-2026-0847CUSTOMERABC RestaurantDISPATCHED130 kgVARIANCE-2.5 kgProductSKUDispatchedConfirmed WtVarianceStatusBoneless beefBF0110098+2DISPATCHEDChickenCK013029.5+0.5DISPATCHEDeditable cellsRemarks:Optional โ€” delivery notes, rider remarks2 line(s), 2 confirmed.CancelPost Confirmation
Figure 3. Delivery Confirmation panel โ€” only the Confirmed Wt column is editable.

โ‘  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

Pending DeliveriesWaybill lines that have been dispatched but not yet confirmed.PENDING LINES5OLDEST28 h(orange when past 24h)RefreshInvoiceCustomerProductQtyRiderOnHrsINV-0812ABC RestaurantBoneless beef100 kgJohn AdeyemiApr 2028INV-0847XYZ MartChicken30 kgSarah AdepojuApr 214…
Figure 4. Pending Deliveries dashboard โ€” the oldest-hours card turns orange after 24h.

What to do with a pending line

  1. Note the invoice reference in the first column.
  2. Go to Create Invoice and load that invoice.
  3. 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_DISPATCHED to PARTIAL_DISPATCH
    or PARTIAL_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:

  1. Post the confirmation on the original invoice (records the transit
    loss).
  2. Create a separate second invoice for the top-up quantity with
    zero/complimentary price, and dispatch it.
  3. Generate a waybill for it. When confirming, mark the
    varianceSource as TOP_UP to 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