VENUS REMEDIES LIMITED

ICD Online

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.

ERP SystemOrders, Inventory,
Facilities, MBRs, Specs
Fetch & Validate5 parallel API calls
Data quality scan
7-Step PipelinePrioritize, Allocate,
Schedule, Consolidate
Schedule OutputJobs, Allocations,
Delivery Dates, Dashboard
Sync to ERPResults uploaded
back to ERP + S3

Output Files Generated Each Run

Output Purpose Primary Audience
Schedule Output 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
  • Frozen (48h) locked, Slushy (1 week) penalized, Liquid free
  • 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.

FROZEN Hard locked
SLUSHY Moves penalized
LIQUID Free to optimize
NOW 48 hours 1 week Future →

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 A TENDER, due 2 weeks, needs 5,000 units
Order B PRIVATE, due 3 weeks, needs 3,000 units
Available 5,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.
  • Ongoing: Update MBR versions when formulations change. Keep facility compatibility lists current.

Common Mistakes That Cause Bad Schedules

Mistake Impact Prevention
Forgetting to update QC status Materials appear blocked, jobs become provisional Update within 24 hours of clearance
Wrong expiry dates Shelf life checks fail, wrong FEFO ordering Verify during GRN process
Missing MBR updates Validation failures, wrong material requirements Review MBRs quarterly
Not reporting job completion Status diverges, unnecessary re-optimization Update job status same-day
Stale order data 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:

0
Prioritization
Priority rank, score breakdown, conflict count
1
Validation
Pass/fail, compatible facilities, MBR selected
2
Inventory Check
QS allocated, shelf life constraints, batch eligibility, shortage calculated
3
BOM & Materials
RM lots allocated, vendor filtering ("NOT IN MBR"), blocking materials listed
4
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
  • QC Pending Qty — stock on-site awaiting QC clearance
  • Impact in delay days if material isn't procured

Allocation Sequence

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
PKG JobPackaging job — packages manufactured product
QC JobQuality control testing of a manufactured batch
Provisional JobScheduled but waiting for materials to clear QC
Pinned JobManually locked by a user to an exact time
ChangeoverTime to clean/prepare equipment between jobs (configurable per facility, currently 1h same / 3h different)
Batch SharingOne manufacturing batch serves multiple orders
ScenarioAlternative allocation plan evaluated during conflict resolution

Zones & Status

Frozen ZoneJobs within 48h — hard locked, materials reserved
Slushy Zone48h–1 week — moves penalized
Liquid ZoneBeyond 1 week — free to optimize
Assumed StatusWhat the scheduler assumes based on time passage
Actual StatusWhat's actually happening on the shopfloor
DeviationWhen assumed ≠ actual — triggers re-optimization

Inventory

QS (Quarantine Stock)Finished product held pending QC release
RM (Raw Material)Input materials — APIs, excipients, etc.
PM (Packaging Material)Vials, labels, cartons, etc.
FEFOFirst-Expired, First-Out allocation strategy
Shelf Life %Min remaining shelf life required at order due date
ReservationInventory locked for frozen-zone jobs
GRN DateGoods Receipt Note date — when material was received
Control SampleMandatory regulatory samples per batch

Data

MBRMaster Batch Record — recipe, BOM, steps, packaging specs
BOMBill of Materials — raw materials list for a batch
BOM ExplosionExpanding a product into its component materials
CP-SATConstraint Programming solver used for optimization
Execution LogStructured record of every scheduling decision
Packaging ConfigSpecific packaging format (e.g., "N1" = 10-pack)