Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Scheduler

The scheduler turns released work orders into a concrete timetable. It looks at the routing on each work order, the calendars on each work center, and the work centers’ available capacity — then drops every operation onto a specific time window. The result is a Gantt you can read and a per-work-center Load chart that shows how busy each resource is over time.

You’ll find the scheduler in three places:

  • The Operations tab on each work order — shows the per-operation scheduled start/end and the Schedule / Clear schedule actions for that single WO.
  • The Load tab on each work center — shows the day-by-day (or hour-by-hour) load picture for that WC.
  • The Scheduler page under Manufacturing — the cross-WO Gantt with bulk re-scheduling.

Schedule a single work order

  1. Open the work order and stay on the Operations tab (it’s the default).
  2. Click the Schedule button in the toolbar above the operations grid.
  3. Pick a direction and an anchor date:
    • Forward — slot every operation starting from the anchor date. The anchor is usually today or the day the components will be ready.
    • Backward — work the timetable so that the last operation finishes on the anchor date. Useful when you have a promise date and want to find the latest possible release.
  4. Click Schedule. The grid refreshes — each operation now shows a Scheduled Start and Scheduled End.

Clicking Schedule again re-runs the scheduler. The scheduler keeps any operation that has already been started — it won’t lie about the past.

The Clear schedule button wipes every segment. Operations that have already started keep their actual_start_date; everything else is reset to no scheduled date.

To see the resulting timetable as a Gantt, open the Scheduler page under Manufacturing — it draws every WO segment on its work center lane.

Read the WC Load chart

The Load tab on each work center shows one bar per time bucket on a shared y-axis (labelled in hours, with dashed grid lines):

  • Available capacity — the grey outer envelope, sized to “calendar open minutes × parallel capacity”.
  • Committed — the blue inner bar drawn inside the envelope, sized to “sum of scheduled segments × parallelism”.

The toolbar above the chart shows the work center’s parallel capacity — how many operations can run on it at the same time. Pick Day for the 30-day overview, Hour for a 48-hour zoomed view. The info icon next to the granularity toggle opens a glossary explaining every concept on the chart.

When the inner bar turns red and exceeds the envelope, the bucket is over-committed — the scheduler had originally fit work, but a calendar exception (holiday, maintenance) added later shrank the available windows. Re-scheduling the affected WOs flushes the over-commit.

Hover any bar to see a tooltip listing every WO contributing to that bucket and how much time each one consumes.

The Scheduler dashboard

The dashboard (Manufacturing → Scheduler in the sidebar) is the cross-work-order view. Rows are work centers; rectangles are segments scheduled on them. Use the filters to narrow by date range, work center, or status.

Hover a rectangle for a tooltip with the work order number, work center, exact start/end, duration, and parallelism. Click the rectangle to open that work order’s detail page — handy when you want to drill into a specific WO without leaving the timeline.

The Re-schedule visible button runs the scheduler on every work order currently in scope. If you have a status filter set (e.g. Released), only WOs in that status are scheduled. If you have no filter, the scheduler picks every RELEASED and IN_PROGRESS work order.

The bulk dialog asks for the same direction + anchor date as the per-WO dialog. The result toast tells you how many WOs succeeded and how many failed — the dashboard refreshes automatically.

What automatic, what is manual?

ActionWhen does it happen?
scheduled_start_date / scheduled_end_date written on each operationEach schedule run — refreshed from the segments produced.
Segments removed when you clear the scheduleWhen you click Clear schedule — operations that have started are kept.
In-progress operations preserved across re-runsEvery re-schedule — the scheduler reads actual_start_date and pins those ops in place.
WO list page Scheduled columns refreshEvery schedule run — they read the per-op rollup.
Auto re-schedule when a calendar exception is addedNo. In Beelocity 1.x the scheduler runs only when you explicitly click. We don’t auto-rebuild commitments behind your back.

When does the scheduler refuse to run?

A few situations the scheduler will report as errors:

  • Routing cycle. If two operations declare each other as predecessor, scheduling is impossible. Fix the routing first.
  • No calendar windows. If a work center has no open windows in the next 365 days, the scheduler can’t place an operation on it. Check the work center’s calendar and any active exceptions.
  • Subcontract lead time missing. A subcontract operation must have supplier_lead_time_days set, otherwise the scheduler doesn’t know how long the supplier will hold the part.
  • No operations. The work order must have its routing snapshotted before scheduling. That happens at WO release — release the WO first.
  • Anchor in the past. For forward scheduling, the anchor date must be today or later.

Every error is surfaced as a toast with a sentence telling you what to do.

What the scheduler does not do (yet)

  • It doesn’t pick a different (alternate) routing when the primary work center is closed for the whole range. That’s coming in a later iteration.
  • It doesn’t model supplier capacity for subcontract operations — every subcontract op gets a flat calendar-day lead time. Supplier calendars are on the roadmap.
  • It doesn’t model individual operator schedules — assignee_user_id is just a hint.
  • It doesn’t smooth load (level capacity) or minimize tardiness across the shop. v1 is greedy first-fit; if you need objective-function optimization, that’s v2.

See Work Orders for the Operations tab and Work Centers for the Load tab.