# Finite-capacity scheduling

Time-based production scheduling with resource calendars, reservations, precedence, materials and setup constraints; feasibility, lateness and release boundaries.

Reviewed: 2026-11-01

Tags: production, planning, scheduling, capacity

One machine and its setup technician work **08:00–12:00** and **13:00–17:00**. In the worked schedule, job A occupies **3.5 h** from 08:00. B is released at **10:00**, needs **2.5 h** and cannot split across lunch. The machine has **8 h** available and **6 h** booked (**75%**), yet B runs **13:00–15:30** and finishes **30 minutes late** against 15:00. Calendar placement and release timing govern feasibility.

Finite scheduling respects modeled resource calendars and existing reservations. [Microsoft, Finite capacity planning and scheduling](https://learn.microsoft.com/en-us/dynamics365/supply-chain/master-planning/planning-optimization/finite-capacity)

Verify material release, operator qualifications and yield assumptions before committing dates. Feasibility and the schedule’s ranking objective are separate.

## Define the resources and time basis

Identify each constrained machine, crew, fixture, tool or other resource and its usable calendar. Oracle's Production Scheduling model guide explicitly includes crews, machines and tools with availability information, and distinguishes batchable resources such as ovens that process multiple compatible items simultaneously. These are modeling options to configure, not automatic representations of every factory. [Oracle, Creating Production Scheduling Models, Release 12.1 documentation](https://docs.oracle.com/cd/E18727_01/doc.121/e27241/T581889T581987.htm)

Use the actual unit of capacity. One machine available for eight hours is not interchangeable with eight machines available for one hour when an operation needs a continuous four-hour run. Specify whether work can pause over a break, resume on the next shift, split across machines or transfer in partial lots. Account for maintenance and committed reservations at the required level of detail.

| Model input | What must be explicit |
| --- | --- |
| Resource calendar | Shifts, breaks, downtime and exceptions |
| Resource eligibility | Capabilities, tooling and permitted alternatives |
| Operation duration | Quantity, setup, run and other occupancy components |
| Dependencies | Precedence, release times, transfer and waiting rules |
| Capacity consumption | Simultaneous resources, batch occupancy and concurrency |

Do not apply the same availability reduction twice. For example, distinguish a calendar that already excludes planned downtime from a duration adjustment intended to represent that same downtime. Document whether an efficiency factor changes runtime, resource availability or both.

## Keep detailed scheduling distinct from aggregate load

Daily or weekly load totals can identify an overloaded resource but do not establish a valid operation sequence. Microsoft distinguishes job scheduling from coarser operations scheduling: jobs are assigned to resources and scheduled by dates and times, with route dependencies and existing reservations considered. Forward scheduling starts from an available start; backward scheduling works from a required completion. [Microsoft, Job scheduling](https://learn.microsoft.com/en-us/dynamics365/supply-chain/production-control/job-scheduling)

State whether the displayed result is a proposed plan, a released dispatch sequence or a record of actual execution. The same operation must not occupy capacity twice because a planned order and its released successor were both included. Conversely, excluding already released work can create fictitious free time.

## Model materials, setups and alternatives explicitly

Microsoft documents **finite materials** separately from finite resource capacity. Without the material constraint enabled, its job scheduling assumes items are available when required. A capacity-feasible result therefore needs a separate check of which material-availability rules were active. [Microsoft, Job scheduling: Finite materials](https://learn.microsoft.com/en-us/dynamics365/supply-chain/production-control/job-scheduling)

Resolve material release, inspection, subcontract returns and required upstream completions before treating an operation as ready. A purchase-order due date is an assumption about supply, not confirmation of usable stock. Identify whether partial quantities may start and how shortages are propagated downstream.

Setup can depend on the preceding job. Oracle's model guide supports sequence-dependent changeover rules and distinguishes concurrent changes from sequential, additive ones. It also exposes objectives such as minimizing changeovers or work in progress. Preserve these distinctions rather than using one unexplained setup allowance for all job transitions. [Oracle, changeover rules and resource solver options](https://docs.oracle.com/cd/E18727_01/doc.121/e27241/T581889T581987.htm)

Alternative machines are eligible only when the routing, process capability and necessary resources permit them. Identify which crew or fixture is needed concurrently and for how long. Assigning two machines to different jobs does not make the plan feasible if both require the same unavailable setup technician.

## Original example: sufficient hours, missed due time

Assume one machine and one shared technician. Both are available **08:00–12:00** and **13:00–17:00**. Each machine can run unattended after setup; the technician is required only during setup. Jobs are indivisible, cannot run through the lunch closure and require no other resources. Job A has priority:

| Job | Material release | Setup | Run | Required completion |
| --- | --- | --- | --- | --- |
| A | 08:00 | 0.5 h | 3.0 h | 12:00 |
| B | 10:00 | 0.5 h | 2.0 h | 15:00 |

A feasible sequence is:

- A setup **08:00–08:30**, then run **08:30–11:30**.
- B cannot complete its 2.5-hour occupancy before lunch. Under the no-split assumption, schedule its setup **13:00–13:30**, then run **13:30–15:30**.
- Total machine occupancy is **3.5 + 2.5 = 6.0 h** out of **8.0 h** available: **75% planned occupancy**.
- B finishes **30 minutes late**, despite two unused machine hours across the day.

The free intervals are **11:30–12:00** and **15:30–17:00**. Their total is sufficient for additional work but their timing cannot recover B's due time under these assumptions. This original example establishes feasibility and lateness for one stated sequence; it does not prove the sequence is globally optimal.

If a second eligible machine is introduced, B could use the technician **10:00–10:30** while A runs unattended, then finish its two-hour run only if that run may span the lunch closure. Under the stated no-running-through-lunch rule, the proposed **10:30–12:30** interval is invalid. Changing capacity requires rechecking calendars and every affected rule, not just adding machine hours.

## Understand software scope and horizons

In Dynamics 365, Microsoft requires finite-capacity functionality to be enabled at global, master-plan and applicable resource levels. Its documentation also describes a finite-capacity time fence and differences between Planning Optimization and the deprecated planning engine. Thus “finite enabled” is incomplete without the actual plan, resources, engine and horizon. [Microsoft, finite-capacity configuration and examples](https://learn.microsoft.com/en-us/dynamics365/supply-chain/master-planning/planning-optimization/finite-capacity)

NetSuite's Advanced Manufacturing documentation separately limits scheduling behavior by work-order status and routing. It describes a default single-asset assignment and configurable concurrency, with concurrency bounded by assigned assets. These are product-specific rules; do not assume another scheduler releases or splits work the same way. [Oracle NetSuite, Finite Scheduling](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/bridgehead_1508338278.html)

## Release, measure and replan

Choose an explicit objective: due-date performance, throughput, changeovers, work in progress or another agreed measure. Report unresolved overload, lateness and excluded orders rather than hiding them behind a utilization percentage. A feasible result need not be the preferred commercial plan.

Before release, check resource conflicts, material readiness, precedence, calendars and fixed commitments. Record the schedule revision, input timestamp, time zone, assumptions, assigned resources and dispatch priorities. Define who may move work and which near-term commitments are frozen.

Reconcile starts, completions, breakdowns, scrap and changed supply against the plan. Replan affected work using remaining quantities and durations, preserving completed facts and communicating changed commitments. Compare predicted and actual durations to improve inputs; do not confuse repeatedly moving the schedule with improving physical capacity.

## Source versions

Reviewed **2026-11-01**. Microsoft's finite-capacity page displays **August 5, 2025**; its job-scheduling page displays **September 19, 2025**. The Oracle model chapter is from the **Release 12.1** documentation collection; no separately verified issue date is assigned here. The retrieved NetSuite page exposes no technical issue date. The example and planning checklist are original, bounded guidance, not a software configuration prescription or company policy.

## Related reference

[Production planning guides](index.md)
