The Planner's Today cockpit in Odoo 19: a ranked decision queue beside the selected shortage with its cause sentence, linked documents, gap, value at stake and coverage chart.
Real product · demo data

In development · built and running on Odoo 19

The AI manufacturing planner for Odoo.

What runs short, when, why, and what to do about it.

One ranked queue of decisions, a cause on every exception, and options to buy, make, move or reschedule that it applies as drafts you can undo, never confirmed documents. Every number is computed from your own Odoo records. AI is optional and off by default.

An installed Odoo 19 module · Community and Enterprise · Odoo.sh or self-hosted · In development, with early access for a few design partners being prepared.

Nanti Manufacturing Planner for Odoo: what runs short, and what to do about it 0:55

The real Planner on a fictional sample plant (Orbit Cycles). The draft was undone on camera; nothing was confirmed. In development, running on Odoo 19; AI is off. Transcript and details

See it in under a minute

What runs short, and what to do about it.

The real Planner on a fictional sample plant: a shortage with its cause, the computed options, a draft RFQ applied and undone, Buy, a reschedule previewed, and Pulse.

Read the transcript
  1. What runs short. And what to do about it. Nanti Manufacturing Planner · Odoo 19 · in development.
  2. One ranked queue: Short 558 units, and exactly why.
  3. Options, computed: Each names its constraint and the draft it would create.
  4. Apply: A draft RFQ. Never a confirmed one. Undo: Cancelled, and the option reopens.
  5. Buy: Every suggested purchase, by vendor, with order-by dates.
  6. Capacity: Move work. See every affected operation first.
  7. Pulse: On-time delivery, turns, cover, load. One review.
  8. Planning that looks ahead. Built and running on Odoo 19. Every number from your own records. nanti.ai/manufacturing-planner In development · Odoo 19 Community and Enterprise · drafts only, with undo · real product, demo data.
Nanti Manufacturing Planner for Odoo: what runs short, and what to do about it 0:55 · sound on
The real Planner on a fictional sample plant (Orbit Cycles). The draft was undone on camera; nothing was confirmed. In development, running on Odoo 19; AI is off.

The morning problem

Your plan was right. Yesterday.

The scheduler ran at night. Then a truck slipped, a rush order landed, a work order ran long. By 9 a.m. the plan is history, and the real one lives in a spreadsheet and one planner’s head. Every morning starts with the same three questions:

  1. 01

    What breaks first?

    Which product drops below its floor, at which warehouse, on which day. Not a report to interpret: a date.

  2. 02

    Why?

    The sale that needs it, the purchase that is late, the order that cannot start. One sentence, linked to the documents.

  3. 03

    What do we do about it?

    Buy, make, move or reschedule. Options computed from your own records, applied as drafts you can undo.

Odoo already holds the answers: the orders, the stock, the BoMs, the calendars, the lead times. What is missing is the system that connects them into decisions, and keeps them connected as reality moves. That is the whole product.

Not a mockup

It sees the plant. Then it helps you decide.

In development does not mean imaginary. The planner is built, tested on Odoo 19 Community and Enterprise, and running on our test plant. Every screen on this page is a real capture of the current build.

See
  • A ranked decision queue with a cause on every item
  • Coverage day by day, per product per warehouse
  • Capacity per work center against its calendar
  • Learned lead times and a planning-data scanner
  • Replanning within minutes of a change
Decide
  • Options on every need: buy, make, move, reschedule, expedite
  • Apply creates a draft, never a confirmed document
  • Undo cancels it and reopens the option
  • Buy grouped by vendor, Move between warehouses
  • Reschedules previewed operation by operation
  • 22exception types, each with its cause chain
  • Daylevel coverage, per product, per warehouse
  • Draftsnever confirmed documents, and every one undoable
  • C + EOdoo 19 Community and Enterprise, Odoo.sh or self-hosted

Screen 01 · Today

One queue. Ranked by what it costs.

Every shortage, late supply, blocked order and data gap across your products and warehouses, in one queue ranked by urgency and value at stake. Each item says in one sentence why it exists, and links the exact sales, purchase and manufacturing documents behind it.

Screen 02 · Options

Every shortage comes with options.

Buy, make, move, reschedule or expedite, computed from your own records. Each option names what binds it and the exact draft it would create. Apply creates that draft, never a confirmed document, and Undo cancels it.

Screen 03 · Buy

Buy, grouped by vendor.

Every suggested purchase in one place: the need date, the date to order by, the quantity, the vendor’s observed lead time and on-time rate, price breaks and alternates. One click creates one draft RFQ per vendor.

Screen 04 · Coverage

Day by day, with the break date.

On hand plus scheduled supply minus scheduled demand, per product per warehouse, against the floor: the first day it breaks, the days of cover, and a forecast continuation in teal that never counts as confirmed.

Every product per warehouse, one row each: status, days of cover, and the break date.

Screen 05 · Grid

Weeks at a glance. Drafts never pass for confirmed.

Products by week, grouped by warehouse and category, coloured by health. Expand one to see confirmed demand, an editable rule-based forecast, confirmed supply, and open drafts, Odoo’s own draft RFQs included, marked “not yet confirmed” so nothing is ordered twice.

Screen 06 · Schedule

Capacity you can see. On Community too.

Load per work center per day against its working calendar, overloaded days flagged, and unplanned work drawn instead of dropped. Pick a new date for an order and see every affected operation before anything is written. Confirm writes the dates; Undo restores them.

Preview first: every operation that moves, from when to when. Nothing is written until you confirm.
The floor queue: what is next per work center, and a blocker reported in one click.

Screen 07 · Health

The data that quietly breaks plans.

Missing BoMs, missing vendors, zero-quantity BoM lines, stale reorder rules, unit mismatches, missing lead times and unplanned work, found for you and grouped, each with a sentence on what it breaks. Where your receipts already know the real lead time, adopt it in one click.

Screen 08 · Pulse

One review for the manager.

On-time delivery, inventory turns, days of cover, open exceptions by severity, spend committed with what is overdue, the load on every work center for the next seven days, and the trend of open exceptions.

Load per work center for the next seven days, red when a day is overloaded, and the exception trend.

Every screen on this page is the real module, captured on 28 September 2026 from our Odoo 19 test plant, “Orbit Cycles”: a fictional bicycle maker with invented products, partners and documents. Nothing in the product was altered; the Odoo menu bar is cropped from the frames, and Pulse’s action log is cropped out.

What it catches

22 exception types. Each one says why.

Not a red cell to interpret. Every exception carries one sentence that names the cause and links the documents behind it, grouped the way the Today queue groups them.

22 exception types in the engine’s catalogue
Material
  • Shortage
  • MOQ conflict
Supply
  • Late supply
  • Supply at risk
  • Promise at risk
Production
  • Late MO
  • Blocked MO
Capacity
  • Overload
Stock
  • Excess
  • Dead stock
  • Expiring lot
Planning data
  • Missing lead time
  • Missing vendor
  • Missing BoM
  • Zero BoM line
  • Stale reorder rule
  • Unit mismatch
  • No calendar
  • Unplanned work
  • Stale draft
  • Very old open supply
  • Double replenishment
  • Promise at risk S00001 is committed for Tue 6 Oct, but the shortage behind it can first be covered on Wed 7 Oct.
  • Blocked MO MAIN/MO/00009 starts Fri 2 Oct with Spokes short by 120 Units.
  • Overload Final assembly is overloaded in this week: 24.00 load hours against 16.00 capacity hours.
  • Unplanned work MAIN/MO/00003 has operations with no planned date. Plan it so its work can be scheduled and counted.

Six exceptions in a minute

What goes wrong, and why.

A shortage, a promise at risk, a late purchase order, a blocked manufacturing order, excess stock, and a product with no bill of materials: each caught on the real Today cockpit, each with its cause.

Read the transcript
  1. Six things that go wrong in a plant. Each one with its cause · Nanti Manufacturing Planner.
  2. Shortage: Short 68 units, and the order that needs them.
  3. Promise at risk: The date we promised, and when we can cover it.
  4. Late supply: A purchase order, weeks late.
  5. Blocked manufacturing order: Starts Friday. The spokes aren't there.
  6. Excess: 5,000 reflectors above their limit.
  7. Bad data: missing BoM: Set to manufacture, with no bill of materials.
  8. Exception types · Each with its cause. Supply: shortage · late supply · supply at risk. Promises: promise at risk. Production: blocked MO · late MO · overload. Stock: excess · dead stock. Data: missing BoM · missing vendor · missing lead time · stale reorder rule.
  9. Planning that looks ahead. The deterministic core is built and running on Odoo 19. The AI layer is designed, not built. nanti.ai/manufacturing-planner In development · sample plant Orbit Cycles, fictional data · design partners wanted.
Six things that go wrong in a plant, caught with their cause 1:00 · sound on
The real Planner on a fictional sample plant (Orbit Cycles). In development: the deterministic core is built; the AI layer is designed, not built.

Your Odoo, your call

What it writes. What it never does.

With AI off, which is the default, the Planner writes only what a person applies, and every write is logged and undoable. It never confirms a document on its own.

When a planner clicks
  1. Apply creates a draft purchase order (RFQ), a draft manufacturing order or a draft internal transfer.
  2. Undo cancels a draft it created and reopens the option.
  3. Confirm on a reschedule writes the order’s and work orders’ planned dates, after a preview. Undo restores them.
  4. Adopt learned lead time (an administrator) writes the observed delay onto the vendor line.
  5. Snooze, assign, dismiss and reported blockers post notes and activities.
Never
  • Confirms a document on a planner’s click
  • Invents a quantity, a date or a price with a language model
  • Sends anything out with AI off
  • Changes stock quantities
  • Posts accounting entries
  • Deletes your records
  • Deterministic every figure computed from your records, never generated
  • Opt-in per company nothing is computed until an administrator runs the first plan
  • The plant’s own day “today” and nightly runs follow the plant’s time zone
  • Staging-safe runs on an Odoo.sh staging copy, even with scheduled jobs off
  • Server-side permissions enforced by the server, not by hiding buttons
  • Append-only log every action, who did it, before and after

A day on the plan

Reality moves. Watch the plan answer.

Six things that happen in every plant, and exactly what the Planner does about each, with no AI involved.

The vendor slipped. The plan already knows.

What happens

A purchase line’s date passes with the receipt still open. The Planner flags the supply late, turns the product’s coverage short with the break date, and writes a cause that names both the sale demanding it and the late purchase order. If the vendor’s own history says deliveries run late, open purchases are flagged at risk before the date even passes.

What you do

Open the purchase order straight from the cause, or take a computed option, such as buying from a vendor who arrives earlier, applied as a draft RFQ you can undo.

The honest comparison

Odoo plans. This makes the plan decidable.

Odoo 19 already ships reordering rules, the forecasted report, replenishment, and, on Enterprise, MPS and a planning Gantt. The Planner does not replace any of it. It is the decision layer on top.

Odoo out of the box
With the Planner
What needs a decision today?
a forecasted report per product, suggestions per reordering rule
one queue across products and warehouses, ranked by urgency and value at stake, each item with its reason
When does this product actually run out?
a replenishment quantity, when the scheduler runs
a day-by-day balance against the floor, the break date and the days of cover
What should we do about it?
reordering rules and MPS create replenishment
options that name their constraint and preview their draft; Apply creates drafts only; Undo
Is next week over capacity?
the planning Gantt is Enterprise-only
load per work center per day against its calendar, overload flags, a reschedule preview and undo, on Community too
A vendor says 14 days but delivers in 24
the configured lead time is the truth
observed p50 and p90 lead times from your receipts, next to the configured value, with a one-click adopt
Is our master data safe to plan on?
you find out when a plan goes wrong
Health lists the gaps that silently break planning, with why each one matters

The left column is Odoo doing its job, and we build on it, not against it. The right column is what the Planner adds, on the same records.

AI, on your terms

AI comes last. And it is optional.

The planner is complete with AI off, and AI is off by default. The contract is set before any AI ships: the engine computes every quantity, date and price; a model only chooses among the options the engine computed, and explains why.

AI off · the default

The full planner, exactly as it runs on this page. Nothing leaves your server: the module makes no outbound calls.

AI on · your choice

A compact excerpt of one planning decision, the exception and the engine’s options, goes to the provider you pick: our hosted service, your own key, or a local model. The model never sets a number.

In development · not released

An AI employee for planning

It is being built to prepare decisions, draft documents and, inside limits a supervisor sets and only after earning trust, act on routine ones: Suggest, Prepare, Act, with a trust ladder and a pause switch. It chooses only among options the planning engine computed; it never sets a quantity, a date or a price.

Straight about status

Where this stands.

In development, with the planner built and running on Odoo 19. Nothing is available to customers yet. Here is the line between what is real today and what is not, exactly where it sits.

Built and running
  • The Today queue, 22 exception types with cause chains, day-level coverage per warehouse, and replanning within minutes of a change
  • Computed options with Apply as drafts and Undo; Buy grouped by vendor; Move between warehouses; promises at risk
  • The schedule with capacity per work center, reschedule previews, confirm and undo, and the floor queue
  • The Grid with rule-based forecasting, learned lead times, Health, and Pulse
  • Odoo 19 Community and Enterprise, Odoo.sh and self-hosted, English
Not yet
  • The AI employee: built, not released; AI stays off by default
  • An approval step for drafts above a value, being finished on the screens
  • Designed only: a chat panel, what-if scenarios, statistical forecasting, an automatic scheduler, and MCP tools through the Execution Layer for Odoo
  • Pricing and an install path: announced with early access, which is being prepared with a few design partners

Plain answers

Asked, answered.

What is Nanti Manufacturing Planner?

A planning cockpit that installs inside Odoo 19 and reads your own records: BoMs, stock per warehouse, open sales, purchase and manufacturing orders, and work-center calendars. It shows what runs short and when, why, and the options to fix it, and applies the one you choose as a draft you can undo. It is in development, built and running on Odoo 19 Community and Enterprise, and built by nanti.ai.

Does it need AI to work?

No. The planner is a deterministic engine and works fully with AI off, which is the default. When AI is used, a model only chooses among the options the engine computed and explains the choice; it never produces a quantity, a date or a price. The numbers come from your data, never from the model.

What does it write into Odoo?

With AI off, which is the default, it writes only what a planner applies: draft purchase, manufacturing and transfer documents, reschedules you confirm, and vendor lead times an administrator adopts, all logged and undoable. It never confirms a document on its own, never changes stock quantities, never posts accounting entries, and never deletes your records.

Can it create purchase and manufacturing orders?

Yes, as drafts. When a planner clicks Apply on a computed option, it creates a draft RFQ, a draft manufacturing order or a draft internal transfer, and Buy creates one draft RFQ per vendor. It never confirms them, and Undo cancels a draft it created. Open drafts, including Odoo’s own draft RFQs, count as pending supply and are shown as not yet confirmed, so the same need is never proposed twice.

How is this different from Odoo reordering rules and MPS?

Odoo gives you the forecasted report per product and replenishment per reordering rule. The Planner gives one decision queue across products and warehouses, ranked by urgency and value at stake, where every item says in one sentence why it exists and links the documents behind it; a day-by-day balance with the break date; computed options that name their constraint and the draft they would create; and capacity per work center on Community too. It builds on Odoo’s planning rather than replacing it.

What exceptions does it catch?

22 exception types, each with a one-sentence cause and links to the documents behind it: shortage and MOQ conflict; late supply, supply at risk and promise at risk; late and blocked manufacturing orders; overload; excess, dead stock and expiring lots; and planning-data problems such as a missing lead time, vendor or BoM, a zero BoM line, a stale reorder rule, a unit mismatch, a work center with no calendar, unplanned work, a stale draft, very old open supply and double replenishment.

Does it plan against real capacity?

It shows the load on each work center per day against its working calendar, flags overloaded days, and draws unplanned or overdue work instead of dropping it. You can move an order and preview every affected operation before anything is written, then confirm or undo. It does not schedule or level capacity by itself; an automatic scheduler is designed, not built.

How fast does it react to a change?

Confirming an order, changing a purchase date, validating a receipt, finishing a manufacturing order, adjusting stock, or editing a BoM, reorder rule or vendor lead time queues a replan of the affected products. After a short delay, two minutes by default, they are recomputed inside the current plan. A full plan runs nightly and on demand.

What are learned lead times?

From your received purchase lines the Planner computes each vendor’s typical and conservative receipt delay and on-time rate, shows them next to the configured lead time, flags open purchases likely to slip, and lets an administrator adopt the observed value in one click.

Does it forecast demand?

Yes, with named rule-based methods you set per product or category and per warehouse: moving average, same period last year, weekly profile and growth factor. Forecast rows are labelled, editable per week in the Grid, consumed by confirmed demand, and scored against what actually happened. Confirmed demand always wins. It does not do statistical forecasting.

Which Odoo versions and editions does it support?

Odoo 19, Community and Enterprise, on Odoo.sh or self-hosted, including an Odoo.sh staging copy where scheduled jobs are switched off. It needs the Community apps Manufacturing, Inventory, Purchase and Sales. Odoo Online cannot install third-party modules. The interface is in English today.

Will AI run my plant on its own?

No. An AI employee for planning is in development and not released. It is being built to prepare decisions, draft documents and, inside limits a supervisor sets and only after earning trust, act on routine ones, choosing only among options the planning engine computed. AI stays off by default, and the planner is complete without it.

Does my data leave my server?

With AI off, which is the default, no: the module makes no outbound calls. If AI is turned on, a compact excerpt of one planning decision, the exception and the engine’s options, goes to the provider you choose: our hosted service, your own key, or a local model. We do not train models on your business data.

Can I use it from Claude or ChatGPT?

Not yet. Publishing the Planner’s functions as MCP tools through the Execution Layer for Odoo is designed, not built.

How do I get it, and what does it cost?

It is not available yet. Early access with a few design partners, on their own staging databases, is being prepared, and pricing is announced with it. If you run manufacturing on Odoo 19, write to hello@nanti.ai.

Early access

Plan with us first.

We are preparing early access with a few manufacturers on Odoo 19, on their own staging databases. If you run manufacturing on Odoo 19, write to us: design partners get the first deployments and a real say in what the planner learns next. Or follow the build, and we write when something real opens.

One list, real milestones only. No newsletters, no spam.