Lorixen.

Production Capacity in an App: Does “Available” Mean Time, Space or Simultaneous Units?

Before adding a production calendar to a business app, define what consumes capacity. An empty rectangle on the calendar does not say how many units a machine can process together, whether it needs preparation or whether the right operator is available. A useful schedule needs an agreed model behind its colours.

Start with one representative work centre and a product it actually processes. This is a guide to specifying that model, not a promise of production throughput or a substitute for engineering and safety limits.

Ask what one capacity unit represents

A work centre might represent one machine, a bench or a deliberately pooled resource. Decide which physical constraint the record stands for. Do not call several different machines one resource unless their shared capacity and permitted routing really support that choice.

Odoo 19's work-centre documentation gives a concrete example: its Product Capacities tab describes how many product units can be produced at one time in a work centre. The documentation separately defines working hours, setup time, cleanup time and alternative work centres.

These are product-specific concepts, not proof that a capacity field in another tool has the same meaning. Write down the unit your implementation will use. “Units per cycle” is different from “units per hour.” Ask what duration belongs to a cycle and whether capacity varies by product.

A larger job may require several processing groups

Consider an invented drying process. Only a limited number of compatible items fit together, and each group occupies the chamber for its processing period. A quantity larger than one group cannot be scheduled as though every item starts simultaneously.

Decide whether a partly filled group occupies the same processing time as a full one. Specify whether compatible jobs may share a group and, if they may, how staff know which output belongs to which job. Do not assume mixing is permitted just because unused physical space exists. Product handling, contamination and safety constraints must come from qualified people.

You do not need to automate grouping immediately. A manual planner with visible capacity warnings can be a reasonable first scope, provided nobody mistakes a warning-only calendar for an enforced reservation system.

Preparation and cleanup can occupy the same resource

Ask when the work centre becomes unavailable and when it is genuinely ready for the next job. Loading, tooling, cleaning or checks may occupy the constrained resource even when no finished units are being produced. Alternatively, some preparation may happen elsewhere. Model the actual case rather than adding every activity blindly to the same calendar.

Odoo documents separate setup and cleanup values. Your project still needs rules about when these apply: each order, each processing group or a particular change between products. Do not count one preparation repeatedly if your agreed process shares it, or omit a required changeover because two jobs have the same customer.

If the team cannot yet provide reliable durations, label estimates as estimates. A precise-looking finish time should not imply that the underlying assumptions have been measured.

Machine availability is not the whole feasibility check

A free machine can still be unusable for the proposed job. Decide whether the schedule must consider operator availability, tooling, materials or another shared resource. An app that checks only machine occupancy should say so.

Likewise, an alternative work centre is not automatically interchangeable. Confirm that it is permitted for this operation and specify any different duration or capacity. Odoo's alternative-centre field illustrates a routing concept; it does not establish the technical suitability of a replacement machine in your business.

Avoid promising the customer a delivery time solely from this calendar if later stages or material readiness are outside the model. A feasible planned operation is not a guaranteed completed order.

Make the scheduler demonstrate its assumptions

Use fictional jobs in your acceptance criteria:

  • A job fitting one processing group and a larger job consume the intended capacity differently.
  • A partly filled group follows the agreed duration rule.
  • Setup and cleanup reserve the correct resource at the correct boundary.
  • A product-specific limit is not replaced silently by a generic default.
  • A second booking cannot exceed an enforced shared capacity; a warning-only design remains clearly labelled.
  • Moving work to an alternative centre uses its agreed constraints.
  • Missing operator or material checks are either implemented or explicitly outside the schedule's promise.

For a production-planning app discussion, bring a blank job card and describe a real processing cycle without confidential data. The first deliverable should be an explainable schedule for that cycle, not an elaborate dashboard built on an undefined capacity number.

Three scope questions

Is machine capacity the same as staff capacity?

No. They can constrain the same job independently. Specify which resources your first version checks and what the planner must still confirm.

Should the app always schedule automatically?

Not necessarily. Manual placement with honest constraints may solve the immediate problem. Automatic scheduling adds decisions about priority, rearrangement and conflicts that need their own scope.

Does a planned finish prove output is ready?

No. Keep a calculated plan separate from reported completion and any required release checks. The calendar describes an intended use of resources, not a finished physical result.

WhatsAppLet’s talk