Internal Customer Delight Online — an intelligent production
scheduling system that transforms orders into optimized
manufacturing schedules, respecting regulatory constraints,
material availability, shelf life, and facility capacity.
7Pipeline Steps
5ERP Data Sources
3Scheduling Zones
<5mPer Run
01
System Overview
What the Scheduler Does
Takes your orders, checks available inventory, plans
manufacturing for shortages, and produces a complete production
plan — all while balancing competing priorities simultaneously.
Inputs
Orders, inventory (QS, RM, PM), facilities, MBRs, and
product specs — all fetched live from the ERP before
each run.
Optimization
Mathematical solver (CP-SAT) finds the best schedule
considering facility capacity, changeovers, material
availability, due dates, and regulatory constraints.
Outputs
Complete production schedule, inventory allocations,
material alerts, delivery forecasts, change log from
previous run, and an interactive dashboard.
Five ERP Data Sources
Dataset
Contains
Maintained By
Orders
Customer orders with line items, due dates,
quantities, penalty terms
Planning / Sales
Inventory
Quarantine stock, raw materials, packaging
materials with QC status
Inventory / QC
Facilities
Manufacturing & packaging equipment,
working hours, capacity
Production / Engineering
MBRs
Master Batch Records — recipes, BOMs,
manufacturing steps
Quality
Product Specs
Product definitions and packaging
configurations
Quality
02
Data Flow
From ERP to Schedule
Data flows through a clear pipeline. Understanding this helps
each team know where their data enters and how it affects the
final schedule.
Complete schedule with all jobs, allocations,
and delivery dates
All teams (via dashboard)
Execution Log
Detailed decision log explaining every
scheduling choice made
Planning (auditing)
Jobs Table
Live state of all jobs — the single source of
truth
Production
Projected Inventory
Forecast of inventory after all scheduled
manufacturing completes
Inventory
Reservations
Locked inventory for jobs starting within 48
hours
Inventory / Production
Diff Report
Changes from the previous schedule with
attributed reasons
Planning
Data Freshness Matters. The schedule is only as
good as the data it receives. Stale QC statuses, wrong expiry
dates, or missed orders lead directly to suboptimal schedules.
Update ERP data before triggering a run.
03
The Pipeline
7 Steps, One Schedule
Every run passes through seven sequential steps. Each step has a
clear purpose and builds on the output of previous steps.
0
Prioritize
Score & rank orders
→
1
Validate
Reject invalid
↓ Unscheduled
→
2
Allocate QS
FEFO from stock
↓ Shortage → MFG
→
3
BOM & MFG Mat
RM + primary pkg
↓ Provisional
→
3b
Pkg Mat
Check packaging
↓ Blocked
→
4
MFG Sched
CP-SAT optimize
→
5
Pkg Sched
After MFG done
→
6
Consolidate
QC + Dispatch
✓ Schedule
0
Order Prioritization & Scenario
Analysis Score orders by type, urgency, and penalty risk.
When resources are limited, generate and evaluate
alternative allocation scenarios to find the best
outcome.
1
Order Validation Reject invalid orders early — missing fields,
unknown products, inactive MBRs, incompatible
facilities. Saves computation downstream.
2
Inventory Allocation (Quarantine Stock) Allocate existing QS using FEFO. Respect shelf life
constraints and batch mixing rules. Calculate
manufacturing shortages.
3
BOM Explosion & Manufacturing Material Allocation Expand each product into manufacturing material requirements (raw materials + primary packaging). Allocate lots using FEFO with vendor/lot mixing rules. Include QC-pending materials with projected availability.
3b
Packaging Job Material Check Verify secondary/tertiary packaging materials (shippers, cartons, labels) for packaging jobs. Same mixing rules. Flag orders with packaging shortages.
4
Manufacturing Scheduling CP-SAT optimizer assigns jobs to facilities,
resources, and time slots. Minimizes tardiness while
respecting capacity, changeovers, material
availability, and zone constraints.
5
Packaging Scheduling Schedule packaging jobs after manufacturing. Uses
packaging lines. Same zone rules apply. Materials
must be available.
6
Consolidation Add QC timing (14d standard, 30d EU). Calculate
dispatch dates. Merge locked jobs from previous
runs. Assign final ON_TIME or DELAYED status.
04
Step 0
Order Prioritization
Every order receives a numerical priority score. Higher scores
get priority access to inventory and earlier manufacturing
slots.
Total Score = Base Priority +
Urgency Score +
Penalty Score
Base Priority
TENDER
500
PRIVATE MARKET
200
UNREGISTERED SUPPLY
100
Urgency Score
Increases as due date approaches:
max(0, 90 − days remaining) × weight
Accounts for QC duration — a 14-day QC window means
manufacturing must start 14 days before the due date. EU
QC (30 days) is factored in for EU sample orders.
Penalty Score
Financial risk from late delivery:
penalty per day late × weight
Orders with higher contractual penalties get prioritized
to minimize financial exposure for Venus Remedies.
For Planning Teams: Update order types, due
dates, and penalty information in the ERP before triggering a
run. The scheduler respects your priority structure but
optimizes globally — it may occasionally route stock to a
lower-priority order if that prevents expiry.
05
Step 2
Inventory Allocation
Before manufacturing anything new, the scheduler allocates
existing quarantine stock using FEFO — First-Expired, First-Out.
FEFO Logic
Batches closest to expiry are allocated first,
preventing stock from expiring unused. But not every
batch is eligible for every order:
Remaining Shelf Life at Due Date ≥ Min Shelf Life %
Required
Two orders for the same product may have different
eligible batches based on their due dates and shelf life
requirements.
QC Status Impact
RELEASED
Available immediately
IN_PROCESS
Projected: GRN date + QC duration
NOT_INITIATED
Projected: GRN date + QC duration
REJECTED
Excluded from allocation
Batch & Material Mixing Rules
Rule
When FALSE
Batch Mixing
Entire quantity from single source — either
all QS or all manufactured, no mix
Lot Mixing
All material from a single lot (strictest)
Vendor Mixing
Multiple lots allowed, but same vendor only
Three Levels of Inventory Commitment
Allocation
Scheduler's plan (in-memory, may change next
run)
Reservation
Locked for frozen-zone jobs (within 48h)
Consumption
Actually used on shopfloor (permanent)
For Inventory Teams: Update QC statuses
and GRN dates promptly. Don't reallocate reserved
inventory without coordinating with Planning.
05b
Decision Trees
How the Scheduler Decides
Two decision trees that explain the vast majority of "why wasn't
my stock used?" questions.
Is a QS batch eligible for this order?
Quarantine Stock Batch
QC Status?
REJECTED
Skip batch
RELEASED / IN_PROCESS
Shelf life ≥ min % at due date?
NO
Skip: shelf life too low
YES
Batch mixing allowed?
YES
Eligible: add to FEFO
pool
NO
Single batch covers
full qty?
YES
Eligible: single
batch
NO
Skip: goes to
MFG
Can a material lot be used for a job?
Raw / Packaging Material Lot
Vendor on MBR approved list?
NO
Skip: NOT IN MBR Stock on-site but vendor
unapproved
YES
Lot mixing allowed?
NO
Single lot covers qty?
YES
Allocate: single lot
NO
Shortage
YES
Vendor mixing allowed?
NO
Multiple lots same
vendor
YES
Free FEFO: any
lot/vendor
06
Step 4
Manufacturing Scheduling
The core optimization step. A mathematical solver finds the best
assignment of jobs to facilities, resources, and time slots.
Optimization Objectives
Priority
Objective
Weight
Primary
Minimize late deliveries
1,000,000
Secondary
Minimize total duration
1
Tertiary
Prefer ready jobs over provisional
500
Changeover Times (from facility cleaning rules)
Same product → Same product
1 hour
Product A → Product B
3 hours
The optimizer groups same-product batches together to
minimize changeover waste.
Constraints the Solver Respects
Facility capacity — each resource
runs one job at a time
Manufacturing step sequence —
mixing before filling, etc.
Material availability — jobs wait
for QC clearance
Working hours — respects facility
operating schedules
Frozen zone — near-term jobs (48h)
locked in place
Slushy zone — medium-term jobs
penalized for moving
User-pinned jobs — manually locked,
never moved
Batch Sharing
When multiple orders need the same product, one batch
can serve them all. Example: Order A needs 1,000 units,
Order B needs 400 — one 1,500-unit batch covers both
with 100 surplus tracked as projected inventory.
Provisional vs Skipped: When materials have a projected arrival (QC IN_PROCESS with known GRN date), the job is scheduled as PROVISIONAL with an earliest_start_time. When materials are completely unavailable with no projected arrival, the job is skipped/unscheduled — it will not appear on the Gantt chart.
07
Steps 5 & 6
Packaging, QC & Dispatch
After manufacturing, QC and packaging proceed — but the exact flow depends on whether EU QC is required. EU-gated packaging must wait for QC gates to clear.
Standard QC
14 days (default)
EU QC
(if required)
30 days (default)
Packaging
Variable duration
Standard Order (no EU QC)
MFG Done
→
QC · 14 days
Packaging (parallel)
→
MAX
→
Dispatch
QC and packaging run in parallel. Dispatch = whichever finishes last.
EU-Gated Order
MFG Done
→
QC · 14 days
EU QC · 30 days
→
Gates clear?
→
Packaging
→
Dispatch
Packaging waits until both QC and EU QC gates clear. If either gate blocks, the order cannot be packaged.
Dispatch Date = MAX( QC Complete, EU QC Complete, Packaging
Complete )
Packaging Quantities
Packaging Required = Customer Qty + Control Sample Units
Control samples are mandatory regulatory samples
packaged alongside commercial product. Defined in the
MBR per packaging config.
Delivery Status
ON_TIME
Dispatch date ≤ due date
DELAYED
Dispatch date > due date — shows delay
days and root cause
For Quality Teams: QC duration is configurable
per product in the MBR. If a product's QC consistently takes
longer than the 14-day default, update the MBR so the scheduler
plans accurately. EU QC (30 days) applies only to orders flagged
with europe_sample_required = Y.
08
Run Modes
Three Run Modes
The scheduler operates in three modes. Understanding which one is active — and what it means for the shopfloor — is critical.
TRUE FRESH
Clean slate. No prior state at all.
All previous scheduling state cleared
No frozen/slushy zones — everything is free
All jobs start as TENTATIVE
Full re-optimization from scratch
Risk: Entire shopfloor plan can change. Use only for first-time setup or after major data corrections.
FRESH + BOOTSTRAP
Clean slate but respects work in progress.
Previous state cleared, then live in-process jobs fetched from ERP
Bootstrapped jobs are validated against fresh data
Frozen/slushy zones DO apply to bootstrapped jobs
New orders optimized freely around locked shopfloor work
Best of both worlds: Resets the schedule but doesn't disrupt in-progress production. This is the default fresh mode when shopfloor seed is enabled.
INCREMENTAL
Build on previous schedule. Day-to-day mode.
Previous schedule loaded, Time Sync advances statuses
Determinism check: if nothing changed, returns cached schedule
New/changed orders integrated into existing plan
Default mode. Maximum shopfloor stability with minimal disruption.
Incremental Run Decision Flow
Scheduler triggered
→
Fetch latest ERP data
→
Load previous jobs.json
→
Time Sync: advance statuses
→
Input hash changed?
NO→
Return cached schedule
YES→
Zone categorize
→
Optimize + Diff
09
Stability System
The Three-Zone System
Prevents "schedule nervousness" — the constant shifting of
near-term jobs that makes shopfloor planning impossible.
FROZENHard locked
SLUSHYMoves penalized
LIQUIDFree to optimize
NOW48 hours1 weekFuture →
Frozen Zone (0–48h)
Cannot be moved. Materials are reserved (locked in ERP).
Shopfloor can confidently prepare. Even if a better
schedule exists, frozen jobs stay put.
"These jobs are committed. Prepare materials and
equipment."
Slushy Zone (48h–1 week)
Can move, but the optimizer pays a penalty. Only moves
if the benefit clearly outweighs disruption. Small
adjustments are allowed; major reshuffling is
discouraged.
"Plan around these, but small changes are possible."
Liquid Zone (1 week+)
Free to optimize. The solver has full freedom. New
orders land here. Changes don't disrupt current
operations.
"Tentative plans — may change with new information."
How a Job Moves Through Zones
Day 19 days away
Day 37 days away
Day 82 days away
Day 10Execution
RUNNING
FROZEN (0–48h)SLUSHY (48h–1wk)LIQUID (1wk+)
Special Rules
Provisional jobs cannot be frozen —
no material certainty, so no reservation
User-pinned jobs — manually locked,
treated like frozen regardless of zone
Deviations trigger re-optimization
— if actual status differs from assumed status
10
Regulatory
Control Samples
Mandatory regulatory samples produced with every batch. The
scheduler automatically accounts for them at every stage.
Total Packaging Qty = Customer Required Qty + Control Sample
Units
Impact Across the Pipeline
Step
How Control Samples Are Handled
Validation
Units validated as non-negative
Inventory
Total allocation includes control samples
BOM Explosion
Material requirements include control
samples
Pkg Materials
Packaging material check includes them
Manufacturing
Batch size accounts for control samples
Packaging
Packaging job quantity includes them
Consolidation
Final dispatch includes control samples
Where They're Defined
Control sample quantities are defined in the
MBR (Master Batch Record)
under each packaging configuration.
Different packaging configs can have different
control sample requirements
The requirement is a fixed count per order line (from the selected packaging config), not multiplied per batch
Customer qty and control sample qty tracked
separately for audit
Both appear in the dashboard alongside each other
For Quality Teams: Control sample
requirements are read from the MBR. Update them there
when regulatory requirements change.
11
Conflict Resolution
Scenario Analysis
When there isn't enough inventory for all orders, the scheduler
evaluates multiple allocation alternatives through the full
pipeline to find the globally best outcome.
Two Types of Conflicts
Quarantine Stock Conflicts
Multiple orders need the same product, but available
QS can't cover all of them.
Raw Material Conflicts
Multiple products share raw materials, and there
isn't enough for all manufacturing jobs.
Metrics Compared
Orders on time
Higher is better
Total penalty
Lower is better
Maximum delay
Lower is better
On-time %
Higher is better
Decision Flow
Multiple orders need limited resource
Conflict detected?
NO
Skip to Step 1 No conflict to resolve
YES
Generate scenarios via CP-SAT
Run each through full pipeline (Steps
1–6)
One dominates ALL metrics?
YES
Auto-select dominant
NO
All equivalent?
YES
Auto-select first
NO
Trade-off → human or
config
11b
Under the Hood
How Scenario Analysis Actually Works
The scheduler doesn't guess which allocation is best — it
simulates each option end-to-end through the full pipeline and
compares real outcomes.
The Full Process
Step 0 begins: scan all orders against available
inventory
For each product & material, calculate: Total Demand
vs Available Supply Supply is shelf-life filtered per order — Order
A may see 5,000 eligible units while Order B
only sees 3,000 from the same stock (different
due dates)
Demand > Supply for any resource?
NO
No conflict. Allocate by priority
& proceed.
YES — Conflict
CP-SAT Enumeration The solver generates up to N valid
allocation plans. Not random — it
explores the combinatorial space of "who
gets stock vs who manufactures" while
respecting batch sharing, mixing rules,
and shelf life.
Full Pipeline Simulation Each scenario is run through
Steps 1–6 in isolation.
Real jobs are scheduled, real dispatch
dates calculated, real penalties
computed. Not estimation —
simulation.
Compare scenarios on real metrics: on-time orders, total penalty, max
delay, on-time %
Select best scenario (dominant → auto / equivalent → auto /
trade-off → human or config)
Why This Matters
It's not a heuristic — it's simulation
Each scenario runs the full scheduling
pipeline. The dispatch dates and penalties you see
are the actual dates the scheduler would produce,
not estimates. This is why the selected scenario is
trustworthy.
Shelf-life makes conflicts non-obvious
You might see 5,000 units of Product X in stock and
wonder why there's a conflict when two orders only
need 6,000 total. But if Order A requires 70% shelf
life and Order B requires 50%, they may see
different eligible batches — the conflict
is on shelf-life-eligible stock, not total stock.
Batch sharing changes the math
If Order A needs 1,000 and Order B needs 400 of the
same product, one 1,500-unit manufacturing batch
covers both. The scenario generator knows this — it
doesn't just split stock naively. It finds globally
efficient plans.
Results are cached — no wasted work
The winning scenario's pipeline results (jobs,
allocations, dispatch dates) are reused directly.
The main run skips Steps 1–5 and
jumps to consolidation. This is why multiple
scenarios don't make the run significantly slower.
Example Conflict
Order ATENDER, due 2 weeks, needs 5,000 units
Order BPRIVATE, due 3 weeks, needs 3,000 units
Available5,000 units QS (shelf-life eligible for
both)
Scenario 1:
Give all 5,000 to A (priority), manufacture 3,000
for B Scenario 2:
Give 3,000 to B (exact fit), 2,000 to A +
manufacture 3,000 for A
Both run through full pipeline → compare actual
on-time counts and penalties → best wins.
12
Your Responsibilities
What Each Team Must Do
The scheduler is only as good as the data it receives. Each team
plays a critical role.
📋
Planning Team
Before runs:
Enter all orders with correct due dates, types, and
penalty values. Flag EU sample orders.
After runs:
Review dashboard, check delayed orders and root
causes, review scenario decisions.
Ongoing:
Cancel/update orders promptly. Choose fresh vs
incremental based on situation.
🏭
Production Team
Before runs:
Report actual job statuses (started, completed,
failed). Update equipment outages.
After runs:
Review Gantt chart. Trust frozen zone (48h). Note
provisional jobs.
Ongoing:
Keep status updated — deviations trigger
re-optimization. Don't manually reschedule without
notifying Planning.
📦
Inventory Team
Before runs:
Update QC statuses, GRN dates, expiry dates, and
quantities after consumption.
After runs:
Review reservations for frozen jobs. Check material
suggestions for procurement needs.
Ongoing:
Process GRNs within 24h. Never move reserved
inventory without coordination.
🔬
Quality Team
Before runs:
Keep MBRs current — steps, BOMs, control samples, QC
duration. Update QC results promptly.
After runs:
Review QC timeline impacts. Verify control sample
quantities. Check EU QC flags.
Cancelled orders still scheduled, new orders
missed
Sync orders before runs
Equipment changes not recorded
Jobs scheduled on unavailable resources
Update facility data immediately
13
Navigating the Dashboard
Your Dashboard at a Glance
The dashboard has 16 tabs. You don't need all of them every day.
Here's which tabs answer which questions.
Start Here Every Time
Key Metrics
Overall health — orders on-time, delayed,
provisional, job counts
Order Summary
Master list of all orders with delivery
status, dispatch dates. Expand any row to
see line items.
Gantt Charts
Visual timeline of all jobs by facility. Two
views: Order Timeline and Facility Timeline.
"Why Is My Order Late?"
Order Journey
Step-by-step trace through all 7 pipeline
stages. Shows exactly what happened and why.
Answers 90%+ of questions.
Delay Analysis
Root cause analysis for every delayed order
with recommendations.
"What Materials Are Missing?"
Material Suggestions
What to procure, how much, which orders are
affected, and if pipeline POs cover it.
Unscheduled Items
Orders that couldn't be scheduled at all —
reasons and recovery steps.
"Why Wasn't Stock Used?"
Allocation Sequence
Step-by-step allocation decisions — who got
stock first, which lots were used/skipped,
vendor filtering.
Order Journey → Step 3
Shows "NOT IN MBR" badge for vendor-blocked
lots. Shows exact constraint violations.
"Is My Data Correct?"
Data Validation
All validation errors, warnings, and info
from the ERP data quality scan. Fix these
first.
Batch Materials
Generated purely from MBRs — use it to
verify BOM, material quantities, and mixing
rules.
Other Useful Tabs
Prioritization
How orders were ranked — scores, urgency,
penalty breakdown
All Jobs
Every job with state, facility, times. Group
by facility or state.
Inventory Projection
Starting → Allocated → Manufactured →
Closing per product
Quarantine Aging
Batches at risk of expiry, allocation status
Run History
What changed between runs and why
14
The Most Important Tab
Order Journey
Traces each order's path through all 7 pipeline stages, showing
every decision made. This single tab answers the vast majority
of scheduling questions.
What You See for Each Order
A collapsible header with key status badges, then
expandable sections for each pipeline stage:
Manufacturing Facility, resource, start/end times,
PROVISIONAL if waiting materials
6
Dispatch Critical path product, QC/Packaging
completion, final dispatch date
Header Badges Explained
The order header shows status at a glance:
ON_TIME
Will dispatch before due date
DELAYED
Will miss due date — delay days shown
PROVISIONAL
Waiting for materials — blocking items
listed
Primary: MANUFACTURING
Which stage is the bottleneck
Waiting: RM-API-001
Specific materials blocking this order
Key Visual Indicators in Steps
✅ ALLOCATED
Material successfully allocated
❌ SHORTAGE
Material not available
⚠ PARTIAL
Only partially allocated
NOT IN MBR
Lot exists on-site but vendor is not on the
MBR's approved list
✅ +5d margin
Shelf life constraint met with safety margin
⚠ 2d (risk)
Shelf life at risk — tight margin
Split Shipments
If an order was split, the parent shows a nested
accordion with each shipment's full journey. Each
shipment has sibling navigation links to jump between
splits.
15
Order Journey
Debugging with Order Journey
Three common questions and exactly where to find the answers.
"Why wasn't existing stock allocated?"
Open the order in
Order Journey
and check these steps in order:
Step 2 — Inventory Check: Look for
constraint badges.
❌ CONSTRAINT_HIT
means batch was ineligible — shelf life too low, or
batch mixing not allowed and no single batch covers
the full quantity.
Step 3 — BOM & Materials: Look
for the
NOT IN MBR
badge. This means the lot is physically on-site but
the
vendor is not on the MBR's approved vendor
list. The scheduler will not use it.
Material Suggestions tab: Shows the
same material with "Vendor Blocked Qty" — the exact
quantity sitting on-site that can't be used due to
vendor approval.
Most common cause: Stock is from an
unapproved vendor. The fix is either to add the vendor
to the MBR's approved list or to procure from an
approved vendor.
"When will this order ship?"
Open the order in
Order Journey
and go straight to:
Step 6 — Dispatch: Shows the final
dispatch date and identifies the
critical path product
— which line item is the bottleneck.
Check whether the bottleneck is
QC (long testing) or
Packaging (resource contention) or
Manufacturing (late start due to
materials).
If the order is
PROVISIONAL, the dispatch date depends on when blocking
materials clear QC. Check the header for "Waiting:
[material IDs]".
Tip: The dispatch date = MAX(QC
complete, EU QC complete, Packaging complete). If QC is
14 days and packaging takes 2 days, QC is almost always
the bottleneck.
"What's blocking this order?"
Look for red and
yellow indicators anywhere in
the journey:
Header badges: "Waiting:
RM-API-001" tells you exactly which materials are
missing.
Step 3 — Blocking Materials note:
Lists every material that's preventing the job from
being confirmed, with quantities short.
Step 4 — Manufacturing: Jobs marked
PROVISIONAL
are scheduled but waiting for materials. Jobs marked
SKIPPED
have an unfixable shortage.
Unscheduled tab: If the order
doesn't appear in the journey at all, check here for
the blocking reason and recovery suggestions.
Quick path: Header badges → Step 3
blocking materials → Material Suggestions tab for
procurement action.
16
Dashboard Deep Dive
Key Investigation Tabs
Beyond Order Journey, these tabs are essential for specific
investigations.
Unscheduled Items
Orders that could not be scheduled at all —
not even provisionally. Shows:
Which pipeline stage rejected the order
Specific blocking reason (material shortage, no
compatible facility, validation failure)
Blocking materials with quantities short
Recovery suggestions and expected resolution
dates
If an order is missing from the schedule entirely,
check here first.
Material Suggestions
Procurement action items — what to buy, how much,
for which orders:
Material ID, shortfall quantity, affected orders
Pipeline POs that may cover the shortage
Vendor Blocked Qty
— stock on-site but from unapproved vendor
When multiple orders competed for limited inventory,
this shows the allocation order:
Which order got served first (by priority rank)
Qty allocated vs qty short per order
Which vendor/lot was selected and why
Grouped by constrained material for easy
investigation
Data Validation
ERP data quality issues —
fix these before investigating scheduling
problems:
Errors (red) — may prevent orders from being
scheduled
Warnings (yellow) — may cause suboptimal
schedules
Grouped by entity type (Orders, MBRs,
Facilities, Inventory)
Correlate with
Unscheduled tab — validation
failures often explain why orders didn't
schedule
Batch Materials
A read-only view generated
purely from MBRs
— use it to verify your master data:
Full BOM for each product and packaging config
Material quantities per batch, mixing rules
(vendor/lot)
Approved vendors per material
If the scheduler is using wrong quantities, the
MBR is wrong — check here
Order Prioritization
Explains the priority ranking used for inventory
allocation:
Every order's rank, total score, and breakdown
(base + urgency + penalty)
Urgency categories: Urgent (<30d), Moderate
(30–60d), Normal (>60d)
If a lower-ranked order got stock over yours, it
may be due to shelf life or batch constraints
17
Dashboard Deep Dive
All Jobs & Gantt Charts
The operational tabs for production teams — see what's running,
what's next, and where.
All Jobs Tab
Complete list of every scheduled job. Filterable,
sortable, groupable by any column.
Column
What It Shows
Job ID
Unique identifier (MFG/PKG/QC)
Type
MANUFACTURING, PACKAGING, or QC
Product
What's being produced
Batch ID
Batch number (shared badge if multi-order)
Facility
Where the job runs
Start / End
Scheduled times
State
COMMITTED / TENTATIVE / PROVISIONAL
Assumed Status
Scheduled / Started / Completed
Serving Orders
Which orders this job fulfills
Summary cards at top show counts by type (MFG/PKG/QC),
state (Committed/Tentative/Provisional), and shared
batches.
Gantt Charts Tab
Interactive timeline visualization with two views:
Order Timeline
Each order as a parent row, line items as children,
jobs as bars on the timeline. See the full journey
from manufacturing start to dispatch.
Facility Timeline
Each facility as a parent row with all its jobs.
Reveals bottlenecks, changeover gaps, and resource
utilization.
Color Coding
Green
COMMITTED jobs (frozen zone, in production)
Yellow
TENTATIVE jobs (can be re-optimized)
Orange
PROVISIONAL jobs (waiting for materials)
Hover any bar for full details — job ID, product, qty,
facility, times, blocking materials. Zoom and pan the
timeline freely.
18
Real-Life Scenarios
Debugging Common Issues
Follow these decision trees to diagnose the three most common
questions.
1. "Item is in stock but the scheduler
isn't using it"
Symptom: Stock exists on-site but scheduler didn't
allocate it to my order
Open Order Journey → go to
Step 2 (Inventory Check)
Any CONSTRAINT_HIT badges on the batch?
YES
Which constraint?
Shelf life
Batch expires too soon for this order's
due date. Cannot override.
Batch mixing
No single batch covers full qty +
mixing OFF. Goes to MFG instead.
QC Rejected
Batch failed QC. Excluded entirely.
NO
Go to Step 3 (BOM & Materials)
Any
NOT IN MBR badges on the lot?
YES
Vendor not approved. Stock on-site but vendor isn't
on MBR approved list.
Fix: Add
vendor to MBR or procure from approved.
NO
Check lot/vendor mixing rules in
Batch Materials tab.
18b
Real-Life Scenarios
More Debugging Trees
2. "Job completed but
scheduler still plans for it"
Symptom: Work done on shopfloor but scheduler still
shows jobs / plans more
Goods transferred to FG Store in ERP?
NO
Root cause found. Order qty unchanged in ERP. Scheduler
plans to fulfill the full original
quantity.
Fix: Complete goods transfer
to FG store. Next run will adjust.
YES
Scheduler run since transfer?
NO
Trigger a new incremental run.
YES
Check if ERP API reflects
updated qty. May be a sync
issue.
3. "Why is this order
UNSCHEDULED?"
Symptom: Order doesn't appear in the schedule
at all
Check Unscheduled Items tab
Listed with a blocking reason?
YES
Which stage blocked it?
Validation
Check
Data Validation
tab. Fix MBR / product / facility
in ERP.
Materials
Check
Material Suggestions
tab. Procure missing materials.
Capacity
No compatible facility
available. Check facility
data in ERP.
NO
Check Data Validation for errors on this order.
If not there either: order may have
been filtered (status COMPLETED in
ERP).
19
Important to Know
Common Misconceptions
Things that often surprise teams when first working with the
scheduler.
"The scheduler should just use whatever stock is
available"
It can't. Vendor approval, lot mixing rules, and shelf
life constraints are
regulatory requirements
encoded in the MBR. The scheduler enforces them because
violating them would mean non-compliance. If stock
exists but isn't being used, there is always a reason —
check the Order Journey.
"I updated the ERP but the schedule didn't change"
The scheduler has a
determinism check
— if critical input fields haven't changed, it returns
the previous schedule. Also, updates to non-critical
fields (comments, metadata) don't trigger
re-optimization. Only changes to quantities, dates, QC
status, or order details are considered "critical".
"Why is the scheduler planning more jobs when we already
finished the work?"
Until goods are
transferred to the FG store in the ERP, the order's required quantity stays the same. The
scheduler plans to fulfill the full quantity it sees.
Complete the goods transfer so the ERP reflects reality.
"PROVISIONAL doesn't mean 'not scheduled'"
Provisional jobs
are scheduled
— they have a facility, resource, and time slot
assigned. They're just flagged because their materials
haven't cleared QC yet. If materials arrive on time, the
job proceeds as planned. Check the Order Journey header
for "Waiting: [materials]".
"Why did a lower-priority order get my stock?"
The scenario analysis may have determined that this
allocation produces a
globally better outcome
— fewer total delays, lower total penalty. Sometimes
giving stock to a smaller order and manufacturing for a
larger one results in both being on-time. Check the
Allocation Sequence tab for details.
"Frozen zone jobs should be changeable in emergencies"
They can't be — by design. The frozen zone exists to
give the shopfloor
certainty.
If you need to change a frozen job, wait for it to exit
the zone or use a fresh run (which
clears all zones). But be aware a fresh run can disrupt
the entire shopfloor plan.
The golden rule: When in doubt, open the
Order Journey for the order in question. It
traces every decision from prioritization to dispatch. Between
Order Journey, Material Suggestions, and Unscheduled Items,
virtually every question can be answered without contacting the
development team.
20
Reference
Glossary
Key terms used throughout this documentation and the scheduler
dashboard.
Scheduling
RunA single execution of the scheduling pipeline
Fresh RunStarts from scratch with no prior state
Incremental RunBuilds on previous schedule, respects zones
PipelineThe 7-step sequence (Steps 0–6)
Determinism CheckHash comparison to skip re-computation when inputs
haven't changed
DiffReport of changes between consecutive runs
Jobs
MFG JobManufacturing job — produces product from raw
materials