Connects with ERP & MES systems like

APS & Scheduling

Job Shop Scheduling: Definition, Example and Methods

Understand job shop scheduling with a two-job example, compare scheduling methods, and see how SkyPlanner recalculates work across shared machines.

Jussi Mäntylä Production Planning Specialist, SkyPlanner Updated October 4, 2026 16 min read
Two batches follow opposite routes between shared milling and drilling workstations
In this article
  1. What job shop scheduling decides
  2. Job shop, flow shop, flexible job shop and make-to-order
  3. A job shop scheduling example: jobs A and B cross routes
  4. Where job shop scheduling appears in SkyPlanner
  5. The inputs that make a job shop schedule usable
  6. Connect order data to the scheduling model
  7. Scheduling methods and the objective they serve
  8. What changes when B is urgent or a machine is unavailable?
  9. What to check before moving beyond a spreadsheet
  10. Frequently asked questions
  11. What is job shop scheduling?
  12. What is the difference between job shop and flow shop scheduling?

Home » Resources » Job Shop Scheduling: Definition, Example and Methods

Estimated reading time: 15 minutes

Job shop scheduling assigns start times and shared resources to jobs whose operations follow different specified routes. It keeps each job’s process steps in order and prevents competing operations from using the same resource at the same time. The result tells production teams what can run next and what must wait.

Key Takeaways

A job shop schedule connects each job’s route to shared workstation availability, not just its place in an order list.

Different machines can process different jobs in parallel, while each job must follow its operation sequence.

The shortest overall completion time and an urgent customer’s deadline can call for different schedules.

In SkyPlanner, ordered workstages and eligible workstations supply the routing model; Arcturus, SkyPlanner’s scheduling engine, recalculates scheduled work and the Gantt displays it.

Check job placement and route data before using Reschedule all: it re-optimizes jobs already on the Gantt.

What job shop scheduling decides

In a machine shop, one order may need milling followed by drilling, while another needs drilling before milling. Both orders compete for the same machines, but their next usable machine differs. Sorting the orders by delivery date does not yet tell the milling operator which operation can start.

A schedule resolves three connected decisions: which operation is ready, which resource can process it, and when it can run. Readiness depends on earlier operations and production inputs. Resource availability depends on the other work already assigned to that resource. Changing one assignment can therefore affect several orders further along their routes.

Job shop scheduling is a particular problem within production scheduling. Production scheduling also covers settings with simpler or more repetitive routes. The job-shop distinction matters because a single factory-wide order sequence cannot fully describe the operation-level sequence on every workstation.

Job shop, flow shop, flexible job shop and make-to-order

ConceptWhat it describesPractical question
Job shopJobs follow their own specified operation sequences across shared resourcesHow can different routes use the same machines without clashes?
Flow shopJobs follow the same machine sequenceIn what sequence should jobs pass through that common route?
Flexible job shopAn operation can use a choice of eligible machinesWhich eligible machine and start time should each operation receive?
Make-to-orderA customer order triggers productionWhen should production be released for a particular order?

The classical job-shop model assigns a specified machine to each operation. Flexible job-shop scheduling adds machine selection to the timing problem. Make-to-order describes the production trigger, so a plant can be both make-to-order and organized as a job shop.

Google’s OR-Tools documentation shows the two fundamental constraints clearly: an operation follows its predecessor, and a machine handles only one operation at a time. On a factory floor, working calendars, materials and people add further conditions to that basic model.

A job shop scheduling example: jobs A and B cross routes

The following numbers are hypothetical illustrations. Two workstations, milling M and drilling D, are available from time 0. Each handles one operation at a time. For clarity, this example has no setup time, calendar breaks, material shortage or shared operator, and each operation runs uninterrupted.

The conflict is simple: A and B need the same machines in opposite orders, so B must wait for milling even while drilling is free.

JobFirst operationSecond operationTotal processing time
AMilling M: 2 time unitsDrilling D: 1 time unit3 time units
BDrilling D: 1 time unitMilling M: 1 time unit2 time units

If the planner completes all of A before beginning B, A uses milling from 0 to 2 and drilling from 2 to 3. B then uses drilling from 3 to 4 and milling from 4 to 5. The jobs finish at time 5, although drilling was available during A’s initial milling operation.

Allowing the routes to overlap gives this feasible schedule:

WorkstationTime 0 to 1Time 1 to 2Time 2 to 3
Milling MA, first partA, second partB
Drilling DBIdleA

All work now finishes at time 3. This is the minimum makespan for the illustrated model: milling must process 3 time units of work on one machine, so no feasible schedule can finish sooner. B completes drilling at time 1 but cannot begin milling until A releases M at time 2. Drilling’s idle interval does not mean the planner forgot an operation: A is still milling, and B has already used drilling.

The total processing time is 5 units, but it is spread across two machines. That sum is not the elapsed factory completion time. Conversely, placing both jobs at time 0 on a spreadsheet without checking individual operations would hide their later competition for milling.

The time until the last job finishes is called the makespan. It is a useful measure when the objective is to finish this whole set of work quickly. It does not say whether a particular customer’s order finishes soon enough. That distinction becomes important when B has an urgent deadline.

Where job shop scheduling appears in SkyPlanner

In SkyPlanner, A and B’s routes become ordered workstages with eligible workstations: A needs milling then drilling, and B needs drilling then milling. Set up the workstations, shifts, operators, priorities and materials in the production model, and supply the routes and durations for the jobs. The scheduler respects the defined workstage sequence and selects the best available eligible workstation for each step. SkyPlanner’s production scheduling software automatically schedules discrete manufacturing work while considering material availability, shifts, priorities and delivery dates. Planners decide, AI obeys through preset priorities.

Once A and B are placed on the Gantt, Reschedule all, SkyPlanner’s recalculation button also known as the King Button, triggers Arcturus to recalculate the scheduled work; the Gantt shows the resulting assignments and sequence. Reschedule all does not move jobs from the Unscheduled tab onto the schedule. Establish initial job placement before evaluating rescheduling. To explore the workflow, try SkyPlanner with demo data or use AI-assisted Getting Started in SkyPlanner Assistant; book a demo to discuss your own routes and priorities.

The inputs that make a job shop schedule usable

An algorithm can sequence the production model it receives. The planner’s first task is to make that model reflect the shop. For A and B, begin with the routes, then test availability and the order information that will influence the schedule.

Input to checkWhat to establishA and B diagnostic
Process orderThe operation sequence reflects actual manufacturing dependenciesA requires milling before drilling; B requires the reverse
DurationsEach active operation has a positive, credible durationA’s milling duration cannot be left empty while judging its completion date
Workstation eligibilityEvery workstage has at least one eligible workstationB’s milling step needs a workstation capable of that operation
Working availabilityShifts and resource availability match executable production timeM must actually be available during the interval assigned to A
OperatorsThe production model reflects relevant operator availabilityA and B cannot be assumed to run independently if the same person is needed for both
MaterialsRequired material availability is representedB may be unable to start drilling even when D is empty
Priorities and delivery datesThe intended business preference and promised date are recordedIf B is urgent, that preference must be visible before recalculation

In SkyPlanner, a job cannot be scheduled if any workstage has zero eligible workstations. If B’s milling step has no eligible workstation, repeatedly recalculating the schedule will not repair the missing route. Check that step’s eligibility first. Also check whether B remains Unscheduled, which is a separate issue from reordering scheduled work.

Getting Started builds workstations, products and flows. The flows connect ordered process steps, durations and workstation routing. A flow-ready manufactured product needs positive durations and routing for its active operations. Validate those basics before using the resulting Gantt to assess scheduling quality.

Next, check finite-capacity scheduling: assigned work needs available capacity. A machine recorded as available throughout the day will give a different picture from one available only during a particular shift. If an operator is shared, the illustrative parallel schedule for A and B needs that additional capacity check too.

Connect order data to the scheduling model

Existing ERP and MES systems provide a data context for orders, products and production. SkyPlanner integrates with any ERP or MES system through its open REST API. Use the integration path to establish how relevant production data will reach the scheduler and which system maintains it.

For A and B, agree where their routes, durations, material information and delivery dates originate. If an ERP delivery date changes while the planning model retains the previous date, the planner is evaluating a different production question. Data ownership and consistent updates belong in the scheduling evaluation alongside the visual result.

Scheduling methods and the objective they serve

Scheduling methods differ in how much of the problem they consider. A local dispatching method chooses the next ready operation using a criterion. A mathematical optimization model considers specified constraints and an objective. An automatic production scheduler connects scheduling calculations with the factory’s maintained production model.

ApproachUseful starting pointTrade-off to examine
First-come-first-servedKeep arrival order understandableAn early long operation can delay later urgent work
Earliest due dateGive attention to approaching deadlinesAn urgent job may still be waiting for a predecessor or unavailable resource
Shortest processing timeAdvance short ready operationsLonger work can wait even when its customer commitment matters
Critical ratioCompare time until the due date with remaining processing timeThe ratio needs updated remaining-work estimates
SlackCompare time until the due date minus remaining processing timeSmall slack signals urgency, but does not remove resource conflicts
Mathematical optimizationExplore a defined objective such as makespanThe answer depends on the constraints and objective included in the model
Automatic production schedulingRecalculate assignments using maintained routes, availability and prioritiesIncorrect inputs still produce an incorrect picture of the shop

Shortest processing time (SPT) has a specific guarantee in the basic single-machine model: when independent jobs are available together, processing times are known, and work runs uninterrupted without sequence-dependent setups, it minimizes average flow time and average work-in-process inventory. That guarantee does not extend automatically to a job shop with crossing routes. The University of Washington’s job-shop scheduling teaching notes explain the single-machine result and the role of SPT in reducing work-in-process inventory.

In the A/B example, choosing B’s short drilling operation first is only part of the decision. A can still occupy milling when B reaches it. The planner must look ahead to the next shared resource, not judge the sequence only by the first operation’s finish time.

For a stable, simple workload, a transparent dispatching approach can be useful. With crossing routes and frequent changes, the planner needs a way to evaluate downstream effects repeatedly.

Before comparing outputs, state the objective explicitly. Alongside makespan, objectives include tardiness (how far jobs finish after their due dates) and flow time (time from release to completion, including waiting). Are you trying to finish this whole group quickly, protect B’s customer date, or find which promise can be supported by the available capacity? Compare schedules against the same objective and production inputs. A better makespan alone cannot answer all three questions.

What changes when B is urgent or a machine is unavailable?

Suppose B is due at time 2 in the same hypothetical example. In the overlapping schedule above, B finishes at time 3. To meet its earlier deadline, the planner can give it milling before A:

JobFirst operationSecond operationCompletion
BDrilling D: 0 to 1Milling M: 1 to 2Time 2
AMilling M: 2 to 4Drilling D: 4 to 5Time 5

Milling deliberately waits from 0 to 1 so it is available when B finishes drilling. B meets the illustrative deadline, but the whole set finishes later. Keeping every machine busy at the earliest possible moment is therefore not always the right decision for an urgent order.

This is a priority trade-off. The planner chooses which commitment matters and checks the effect on A. In SkyPlanner, preset priorities provide that direction for automatic scheduling; the planner then reviews the Gantt against the production objective and available resources.

Now suppose M becomes unavailable during A’s planned milling interval. Updating the availability changes the feasible options for both A and B, even though neither route has changed. If another machine is genuinely eligible, machine choice becomes relevant. If none is eligible, the missing milling capacity must be addressed before either job can complete its route.

The limiting resource can also change with the order mix. Milling constrains the example’s overlap, but adding drilling-heavy work changes the load on D. Review production bottlenecks in the context of the current workload. Do not infer the next bottleneck solely from the busiest machine in last week’s schedule.

When reviewing an updated schedule, trace the affected job through its remaining operations. For B, an earlier drilling finish helps only if milling can follow. For A, an available drilling slot helps only after milling is complete.

What to check before moving beyond a spreadsheet

A spreadsheet can represent A and B’s operation order, durations and workstation occupancy. With a small, stable model, the planner can inspect conflicts directly. The work becomes harder to maintain when a change requires revisiting many dependent operations, resource calendars and customer priorities.

Use a representative production scenario to evaluate the next tool. Include crossing routes like A and B, one urgent deadline and an availability change. First inspect the input model; then inspect the schedule. A polished timeline does not compensate for a missing milling route or an incorrect shift.

A useful evaluation sequence is:

1. Map each operation to its predecessor, duration and eligible workstation.

2. Confirm materials and resource availability for the intended production period.

3. Confirm how new jobs become scheduled, separately from recalculating existing work.

4. Set the priorities and delivery dates that define the decision.

5. Review each job’s progression in the Gantt and the workload on shared resources.

6. Change an input and inspect the consequences for both the urgent order and the other work.

The published Eskomatic contract-machining story offers a useful operational observation: manual work queues were only part of the difficulty. Limited material visibility made shortages harder to anticipate. Eskomatic describes clearer Gantt work queues and automatic load scheduling that support delivery-date setting. In its case, seeing the upcoming work and the conditions needed to execute it mattered together.

For your own evaluation, bring those two sides together: can the team understand the queue, and does the queue represent the materials and capacity actually available? For A and B, that means explaining both why B waits for M and whether either job can start with the inputs on hand.

Start a SkyPlanner trial to explore demo data or AI-assisted Getting Started. Book a demo with representative routes, workstation availability and a priority change to see how the scheduling workflow applies to your production.

Frequently asked questions

What is job shop scheduling?

Job shop scheduling determines when each operation runs on a shared resource while keeping each job’s route in sequence. Its distinctive challenge is the interaction between different routes: in the example, B can finish drilling yet still wait for milling because A occupies it. Evaluate operation-level timing, not just order-level dates.

What is the difference between job shop and flow shop scheduling?

A flow-shop model gives jobs the same machine sequence. A job-shop model gives jobs their own specified sequences. If both A and B needed milling followed by drilling, they would share a flow-shop route. Their opposite routes in this article create the job-shop scheduling conflict at the milling workstation.

What is flexible job shop scheduling?

Flexible job-shop scheduling allows an operation to run on a choice of eligible machines. The decision includes both machine assignment and timing. If B can use a second suitable milling workstation, that creates an additional scheduling option. Eligibility must describe a machine that can actually perform the operation, not merely one with spare time.

Is job shop production the same as make-to-order production?

No. Make-to-order describes production triggered by a customer’s order, while job shop describes work organized around different operation routes and shared resources. Customer-specific A and B could be make-to-order jobs with job-shop routes. A make-to-order factory can also use a common route, so the order trigger does not establish the scheduling topology.

What data does a job shop schedule need?

Start with ordered operations, positive durations and eligible workstations, then add working availability, operators, materials, priorities and delivery dates. In SkyPlanner, a workstage with no eligible workstation prevents the job from being scheduled. If B is absent from the Gantt, inspect routing and initial placement before assessing the rescheduling result.

Which job shop scheduling method should a production planner use?

Choose a method against the objective and the frequency of change. Simple dispatching methods can support stable decisions; interacting routes require attention to downstream resource conflicts. For A and B, the schedule with the shorter makespan differs from the one protecting B’s earlier deadline. Compare methods using the same inputs and customer priority.

Can a job shop schedule be built in Excel?

Yes, a spreadsheet can represent routes, durations and workstation occupancy, but it must check operation sequences and resource conflicts, not just overlapping order dates. When changes repeatedly affect dependent operations, assess how much manual reconciliation the model needs and whether the planner can reliably explain the updated resource assignments and completion dates.

Does Reschedule all schedule jobs in the Unscheduled tab?

No. Reschedule all recalculates jobs already placed on the Gantt; it does not place jobs from the Unscheduled tab. For A and B, check placement first: can you see both jobs on the Gantt? If B remains Unscheduled, resolve its initial placement before comparing the two routes. This separates a missing job from a sequencing question, so the planner evaluates the work actually included in the recalculation.

Jussi Mäntylä

Production Planning Specialist, SkyPlanner

Build a clearer production schedule with SkyPlanner

Connect your data, review the first plan, and keep planners in control of every schedule that goes live.