Skip to main content
Finite Capacity Planning & Scheduling (APS) — Constraint-based finite-capacity APS for Odoo that replaces the infinite-capaci — 1/1Illustrative preview

Constraint-based finite-capacity APS for Odoo that replaces the infinite-capacity default with realistic,

sequence-optimized production plans.

What is Finite Capacity Planning & Scheduling (APS)?

Constraint-based finite-capacity APS for Odoo that replaces the infinite-capacity default with realistic, sequence-optimized production plans. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Finite-capacity solver that places every work order into a real time slot on its work center, honoring concurrent-capacity limits instead of Odoo's infinite-capacity back-scheduling
Work-center shift and calendar awareness built on resource.resource_calendar — jobs are only scheduled inside working hours, across breaks, holidays and multi-shift patterns
Setup-time and changeover-aware sequencing: carries setup time on the work center/operation and adds a changeover penalty when product, attribute or tooling changes between consecutive jobs
Priority and due-date driven order sequencing using MO priority, commitment date and a configurable weighting rule so the most critical orders claim capacity first
Drag-and-drop Gantt re-planning in an OWL interface — move a work order and the engine recomputes downstream slots in place
Real-time conflict highlighting: capacity overloads, calendar violations and orders that will now miss their due date are flagged the instant a plan changes
Bottleneck and overload visualization — per-work-center load heat views that surface the true constraint resource so you sequence the line around it
Writes results back to the standard mrp.workorder date_planned_start / date_planned_finished fields so deliveries, MRP and native reports stay consistent
Computed load and utilization fields (@api.depends) per work center and per shift, giving planners live utilization percentages without manual tallying
Automated re-scheduling via automated action or ir.cron that re-runs the solver when new MOs are confirmed or a work order is rescheduled
Role-scoped access through ir.model.access.csv and record rules — shop-floor users see only their cell, planners see the full board
QWeb dispatch/sequence report that prints the finalized per-work-center schedule for the floor
XML-RPC / JSON-RPC access to the planning model so MES, Power BI or an external APS dashboard can read and push schedules
Configurable sequencing rules (EDD, priority-first, minimize-changeover, or a weighted blend) chosen per work center to match how each cell actually runs
What-if re-planning: drag a job to test a scenario and see the ripple on downstream orders and due dates before committing the plan

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Odoo's stock manufacturing scheduler is infinite-capacity by default: it back-schedules work orders from the deadline as if every work center could absorb unlimited load, so a plan can show three jobs "running" on the same CNC cell at the same hour. On paper the MO is on time; on the floor the queue explodes, planners re-sequence by hand in a spreadsheet, and promised dates slip. This build-to-order module replaces that behaviour with a true Advanced Planning & Scheduling (APS) engine that respects finite capacity, work-center shifts and calendars, setup and changeover times, and order priority.

ECOSIRE designs, builds, installs and supports this module for your specific manufacturing.mo / mrp.workorder flows — it is NOT an instant apps.odoo.com download. We scope your work centers, routings, shift calendars and sequencing rules, then deliver a purpose-fit module for Odoo 17, 18 or 19 (Community or Enterprise). The engine adds a finite-capacity solver on top of your existing routings and BoMs: work orders are placed into real time slots on each resource.resource_calendar, respecting concurrent-capacity limits, setup time carried on the work center or operation, and changeover cost when the product/attribute changes between consecutive jobs. Sequencing is driven by due date, MO priority and your custom weighting, and every plan is written back to the standard date_planned_start / date_planned_finished fields so the rest of Odoo (deliveries, MRP, reporting) stays coherent.

Planners work in a drag-and-drop Gantt (OWL front-end, backed by a dedicated planning model with computed load fields via @api.depends). Move a work order and the engine recomputes downstream slots, highlights any capacity conflict or calendar violation, and flags orders that will now miss their commitment date. Bottleneck and overload heat views show which work centers are the constraint so you plan the whole line around them. Access is governed by ir.model.access.csv plus record rules so shop-floor users see their cell while planners see the full board, and a QWeb dispatch/sequence report prints the finalized schedule per work center. An automated action (or scheduled ir.cron) can re-run the solver on new confirmed MOs, and the schedule is reachable over XML-RPC / JSON-RPC for MES or external APS dashboards. The result: dates you can actually commit to, less manual re-planning, and visibility into the real constraint on your floor.

What you get

  • Purpose-built Odoo module (source code) scoped to your manufacturing.mo, mrp.workorder, work centers and routings — installable on Odoo 17, 18 or 19
  • Finite-capacity solver configured to your concurrent-capacity limits, setup/changeover data and per-cell sequencing rules
  • Work-center shift calendars and resource.resource_calendar configuration matched to your real shift patterns, breaks and holidays
  • Security layer: ir.model.access.csv access rights and record rules distinguishing planner vs shop-floor roles
  • QWeb dispatch/sequence report template plus the drag-and-drop Gantt planning view, styled to your workflow
  • Deployment on your environment (Odoo.sh, ECOSIRE managed hosting, or your self-hosted server) with data migration of existing routings/calendars where applicable
  • Admin and planner documentation plus a live training session for your planning team
  • Post-launch support window with bug fixes and Odoo minor-version compatibility, and an optional ongoing support/updates plan

Who this is for

Make-to-order production planner

Plans jobs against real machine capacity every day and is tired of Odoo showing on-time MOs that pile up on the same cell. Needs a finite-capacity Gantt where sequencing by due date and priority reflects what the floor can actually run this shift.

Operations / plant manager in complex multi-stage manufacturing

Owns delivery performance across routings with shared bottleneck resources. Wants bottleneck and overload visualization to see the true constraint and commit dates that hold up, without buying a separate standalone APS system alongside Odoo.

Manufacturing IT / Odoo ERP administrator

Maintains the Odoo instance and its integrations. Values a module built on standard models (mrp.workorder, resource.resource_calendar), governed by ir.model.access.csv and record rules, that writes back to native date fields and exposes the schedule over XML-RPC/JSON-RPC for MES and BI.

How Finite Capacity Planning & Scheduling (APS) Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Finite-capacity scheduling (respects concurrent work-center limits)Yes — dedicated solver places jobs into real capacity slotsPossible but you build and maintain the solver yourselfVaries; many generic APS apps assume simplified capacityNo — Odoo core back-schedules with infinite capacity
Setup-time & changeover-aware sequencingYes — setup carried per work center/operation, changeover penalty between differing jobsOnly if you design and code the rulesRarely; usually fixed durations with no changeover costNo — setup time not used to optimize sequence
Fit to your routings, shifts & sequencing rulesBuilt to order around your exact work centers and calendarsFully custom, but on your time and riskGeneric; you adapt your process to the appGeneric core behaviour, no tailoring
Drag-and-drop Gantt with live conflict highlightingYes — OWL Gantt recomputes downstream slots and flags conflictsRequires significant front-end work to replicateSometimes, but conflict logic is often shallowEnterprise Gantt exists but does not enforce finite capacity
Bottleneck & overload visualizationYes — per-work-center load heat views surface the constraintBuild it yourself with custom computed fields and viewsOccasionally; depth varies by vendorNo dedicated bottleneck view
Writes back to native date_planned fields (no shadow schedule)Yes — MRP, deliveries and reports stay coherentDepends on your implementation disciplineSome keep a parallel schedule that drifts from coreNative by definition, but infinite-capacity dates
Delivery, installation & training by the builderYes — scoped, installed, trained and supported (one working week)You own delivery and training internallySelf-install download; support via generic ticket queueNo project; you configure it yourself
Support window + Odoo 17/18/19 compatibilityIncluded window plus optional ongoing planYou maintain it every versionVendor-dependent, often per-version repurchaseCovered by your Odoo subscription/patches only

Frequently Asked Questions about Finite Capacity Planning & Scheduling

How long does delivery take, since this isn't an instant download?

This is a build-to-order module, not an off-the-shelf apps.odoo.com download, so there is no instant download. After purchase we run a short scoping call to capture your work centers, routings, shift calendars and sequencing rules, then build, install and validate the module on your Odoo 17, 18 or 19 environment. Typical lead time is one working week depending on the number of work centers, changeover complexity and any MES/BI integration. You will get a written delivery timeline during scoping.

What support and updates are included after go-live?

Every engagement includes a post-launch support window covering bug fixes and compatibility with Odoo minor releases on your major version. Because the module is built on standard models and writes back to native date_planned fields, it stays compatible when you patch within a major version. Moving between major versions (for example 17 to 18) is an upgrade we scope separately. An optional ongoing support and enhancement plan covers new sequencing rules, added work centers and priority changes over time.

Why not just use Odoo's built-in manufacturing scheduler?

Odoo core schedules with infinite capacity: it back-schedules work orders from the deadline as if each work center had unlimited concurrent capacity, so plans can show multiple jobs on the same cell at once. That looks on-time in the MO but overloads the floor and forces manual re-sequencing. This module adds a real finite-capacity solver that respects concurrent-capacity limits, shift calendars, setup and changeover time, and order priority — giving you dates you can actually commit to.

Does it work with Odoo Community or only Enterprise?

Both. The module is built on manufacturing (mrp), routings and resource.resource_calendar, which exist in Community and Enterprise. We target Odoo 17, 18 and 19. On Enterprise we can align with the native Planning/Gantt look and feel; on Community we ship our own OWL drag-and-drop Gantt so the planner experience is the same. We confirm your exact edition and version during scoping.

Will it break my existing MOs, deliveries and reports?

No. The engine writes its results back to the standard mrp.workorder date_planned_start and date_planned_finished fields rather than a parallel shadow schedule, so MRP, deliveries and native reporting read the same dates you plan. It layers on top of your existing routings and BoMs without replacing them, and access is scoped with ir.model.access.csv and record rules so it does not change what other users can see or do.

Can it integrate with our MES or external dashboards?

Yes. The planning model is reachable over Odoo's XML-RPC and JSON-RPC API, so an MES can pull the finalized sequence and push actual start/finish times back, and tools like Power BI can read work-center load and utilization. We can also add automated actions or an ir.cron job to re-run the solver automatically when new MOs are confirmed. Integration scope is agreed during the initial call.

Request a quote

Finite Capacity Planning & Scheduling

Constraint-based finite-capacity APS for Odoo that replaces the infinite-capacity default with realistic, sequence-optimized production plans.

  • Finite-capacity solver that places every work order into a real time slot on its work center, honoring concurrent-capacity limits instead of Odoo's infinite-capacity back-scheduling
  • Work-center shift and calendar awareness built on resource.resource_calendar — jobs are only scheduled inside working hours, across breaks, holidays and multi-shift patterns
  • Setup-time and changeover-aware sequencing: carries setup time on the work center/operation and adds a changeover penalty when product, attribute or tooling changes between consecutive jobs
  • Priority and due-date driven order sequencing using MO priority, commitment date and a configurable weighting rule so the most critical orders claim capacity first

Request a Quotation

Tell us about your Finite Capacity Planning & Scheduling requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.