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:
- Production Orders — the planning surface. Create POs, schedule them on the calendar, edit lines and quantities, see capacity. This is where supervisors live.
- Production — the execution surface. The actual workstation view: pick today's PO, scan boxes through the stamping line, watch real-time stamp deduction, verify, sign off.
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
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:
- Pick the source shipment — only shipments in Inventoried status are selectable.
- Optional PO number — auto-generated if you leave it blank. Custom numbers must be unique within the consignee.
- Add lines: one row per (product, region) combination, with quantity. EMS shows live availability per product on the right of each row.
- Optional urgent toggle — promotes the PO to the top of the next available production day.
- Optional notes — surfaces in the production workspace for the stamper.
- 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:
- It's based on the good quantity, not the raw quantity — damaged and missing units don't count toward availability
- It subtracts ALL non-cancelled POs (Open, In Production, Pending Verification, Completed) — so you can't double-allocate the same units
- If receiving hasn't started yet (no boxes scanned), it falls back to the packing-list quantities so PO planning can happen pre-arrival
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.
- Each weekday is a slot with a daily capacity cap (configurable in Settings — default 12,000 units / day across all POs)
- POs appear as colored chips on their scheduled day, color-coded by region
- Drag and drop a PO between days to reschedule
- Click a day to see all POs scheduled for it
- Calendar tiles are read-only after v2.5 — clicking surfaces info but doesn't navigate
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:
- The day's tile gets a warning border
- A toast warns "Day capacity exceeded by N units"
- You can either reduce the PO, move part of it to another day, or accept and let auto-overflow handle it
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.
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:
- Today's queue, ordered by drag-sequence then time
- The currently-active PO at the top with a Start button
- Live stamp counters per region for the day
Click Start Run on the active PO. The PO moves to In Production and the workspace switches to scanning mode:
- Each box that needs stamping in this PO is queued in the box list.
- Scan the box → its contents and the per-region stamp count are shown.
- Stamp it physically; click Confirm when done.
- The box leaves the queue; live counters update.
- 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.
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.
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:
- Opens the PO from the queue.
- Reviews the actual scanned-and-stamped count vs the original estimate. Differences are highlighted.
- If actual < estimate (some boxes skipped), reduces the stamp deduction to match. EMS releases the unused stamps back to inventory.
- If actual = estimate, just clicks Verify & Complete.
- 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:
- PO status moves from Pending Verification to Completed
- Stamp inventory is permanently deducted
- An audit-log entry captures the verification
- EMS automatically creates Outbound records grouped by consignee — one outbound per consignee whose PO completed today
- The customer (if portal-enabled) sees their PO move to Completed in real time, and the new outbound appears in their dispatch view
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:
- Customer logs into the portal, picks an inventoried shipment.
- Allocates quantities by region — EMS shows live goodQty availability so customers can't request more than is actually in the warehouse.
- Picks a production date from the calendar slot picker (only weekdays, only days under capacity).
- 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:
- Approve — converts the request to a real PO scheduled on the requested date
- Modify — propose changes (different date, reduced quantity); the customer reviews
- Reject — with a required reason that surfaces in the customer's portal
The customer's portal updates in real-time at every step.
Best practices
- Schedule capacity-balanced weeks. Don't pile every Monday with POs and leave Friday empty — spread the load. The drag-and-drop calendar exists to make balancing fast.
- Use the urgent toggle sparingly. If everything is urgent, nothing is. EMS's queue ordering respects urgency, so abusing it just shifts the queue.
- Verify same-day, never next-day. Verification is the audit gate. Same-day verification keeps fresh memory of any anomalies; next-day verification means you're rubber-stamping.
- Check stamp inventory before scheduling. The Stamp Orders dashboard shows live ledger balances. If Ontario stamps are at 4,000 and a customer wants a 5,000-unit Ontario PO next week, log a stamp re-order now — not the morning of.
- For multi-day overflow POs, communicate the schedule to the customer. The portal shows the parent PO and child segments separately, so customers can see exactly which day each chunk completes — but a heads-up email avoids surprises.
