Production scheduling & stamp runs

Production is the heart of EMS — the module where excise stamps actually get applied to inventoried units. This guide walks through scheduling a PO, executing the run, verifying counts, and completing — with stamp consumption tracked per region (Federal, Ontario, Quebec, Alberta, Manitoba) automatically.

Two modules: Production Orders vs Production

EMS splits production into two related modules:

Both read and write the same production order data — they're two views of the same workflow. The split exists because supervisors and stampers have different jobs and need different ergonomics.


PO status lifecycle

How a production order moves through the system

Open (created, not yet started) → In Production (scanner is working through boxes) → Pending Verification (awaits second-user sign-off) → Completed (stamps consumed, outbound auto-created; status freezes for audit purposes)

POs can also be Cancelled at any pre-completion stage; this releases their reserved units back to availability and reverses any provisional stamp reservations.


Creating a Production Order

From Production Orders → + New PO. The form is structured around the source shipment:

  1. Pick the source shipment — only shipments in Inventoried status are selectable.
  2. Optional PO number — auto-generated if you leave it blank. Custom numbers must be unique within the consignee.
  3. Add lines: one row per (product, region) combination, with quantity. EMS shows live availability per product on the right of each row.
  4. Optional urgent toggle — promotes the PO to the top of the next available production day.
  5. Optional notes — surfaces in the production workspace for the stamper.
  6. Click Save PO. It enters Open status and appears on the production calendar (unscheduled).

How availability is calculated

The available quantity for each product on the source shipment is calculated by taking the total good quantity across all received boxes for that product, then subtracting the quantities already allocated to any of this shipment's existing production orders (whether open, in production, pending verification, or completed).

Three things to notice:

Why this matters

Before EMS v2.5, availability was based on the raw quantity regardless of damage. A 1000-unit shipment with 100 damaged would surface 1000 available, then run short of stamps when the run actually executed. v2.5 fixed this — now allocation respects damage from the start. See v2.5.0 release notes.


The production calendar

The Production Orders page leads with a calendar showing scheduled POs. Defaults to the current week; toggle to month view for capacity planning.

Daily capacity caps

Each weekday has a units stamped cap so you don't oversubscribe the line. The cap is configurable per warehouse in Settings → Production. When you schedule a PO that would exceed the cap:

Auto-overflow handling

For very large POs (e.g. 30,000 units when daily cap is 12,000), EMS can split the PO across consecutive days automatically. From the PO scheduling dialog tick Auto-split if over capacity and the PO becomes a parent with N child PO segments scheduled across N days.

Auto-split example

A 30,000-unit PO for Norwood (Ontario) with a daily cap of 12,000 would be split into three segments: the first two days handle 12,000 units each, and the third day handles the remaining 6,000 units.

Each segment runs as its own production order; the parent rolls up status (parent shows Completed only when every segment is). Stamp deduction happens per segment per day.


Executing a stamp run

On production day, the stamper opens the Production module (workspace, not Production Orders). The page shows:

Click Start Run on the active PO. The PO moves to In Production and the workspace switches to scanning mode:

  1. Each box that needs stamping in this PO is queued in the box list.
  2. Scan the box → its contents and the per-region stamp count are shown.
  3. Stamp it physically; click Confirm when done.
  4. The box leaves the queue; live counters update.
  5. Repeat for every box in the PO.

Stamp deduction per region

EMS maintains a per-region stamp ledger that tracks, for each region (Federal, Ontario, Quebec, Alberta, Manitoba), how many stamps have been received, how many have been used, and what the current balance is.

Example stamp balances

Federal — 30,000 received, 12,000 used, 18,000 remaining
Ontario — 20,000 received, 8,000 used, 12,000 remaining
Quebec — 10,000 received, 4,000 used, 6,000 remaining
Alberta — 7,000 received, 3,000 used, 4,000 remaining
Manitoba — 5,000 received, 2,000 used, 3,000 remaining

When you Confirm a box during a run, EMS deducts the appropriate stamps based on the PO's region attribution and the box's unit count. If you'd run short, EMS warns you before the deduction.

Insufficient stamps warning

If you need more stamps than are available (for example, you need 100 Ontario stamps but only 87 remain), EMS will give you three options: cancel the confirmation, skip the box, or override and proceed (which is logged for audit purposes).

The Stamp Orders module is where you log incoming stamp inventory; see the Stamp Orders guide for that flow.


Verification step

When the last box in a PO is confirmed, the PO moves to Pending Verification. The stamper cannot complete it themselves — a second user must verify. This is the equivalent of a four-eyes principle for excise compliance.

The verifier:

  1. Opens the PO from the queue.
  2. Reviews the actual scanned-and-stamped count vs the original estimate. Differences are highlighted.
  3. If actual < estimate (some boxes skipped), reduces the stamp deduction to match. EMS releases the unused stamps back to inventory.
  4. If actual = estimate, just clicks Verify & Complete.
  5. If actual > estimate, EMS rejects — you can't stamp more than the PO authorized. The verifier must edit the PO to increase the line, which requires a re-verification.

Completion & auto-outbound generation

On Verify & Complete:

The PO is now read-only. You can still view its history and reports, but no edits.


Customer-portal PO requests

Multi-tenant deployments give consignees a portal where they can submit PO requests directly:

  1. Customer logs into the portal, picks an inventoried shipment.
  2. Allocates quantities by region — EMS shows live goodQty availability so customers can't request more than is actually in the warehouse.
  3. Picks a production date from the calendar slot picker (only weekdays, only days under capacity).
  4. Submits the request. A customer request record is created with Pending status.

Admins see incoming requests in the Production Orders page under "Pending Customer Requests". They can:

The customer's portal updates in real-time at every step.


Best practices