ERPNext production planning and MRP

ERPNext turns sales orders, material requests and forecasts into planned production and purchasing through Production Plans and MRP. This page explains how the planning chain works, what drives setup effort, and what to confirm before go-live.

On this page

How ERPNext production planning and MRP decide what to make and buy

The planning manager needs one answer from a steady stream of demand: what to produce, what to buy, and by when. In ERPNext, that answer comes from a Production Plan in the Manufacturing module, which takes open sales orders and material requests as demand and works out the requirements for each item. Forecasts from the Forecasting report can feed the same process for longer horizons. The plan does not start work by itself. It gives the planner a list of proposed production and purchase needs that can then be turned into work orders and purchase requests after review.

A team usually needs this when the arithmetic outgrows a spreadsheet. The typical trigger is a multi-level product, where a finished good depends on sub-assemblies that depend on purchased parts, so one order fans out into several levels of demand. A second trigger is shared raw materials, where several products draw on the same stock and the planner must net existing stock and open purchase orders before ordering again. A third is a longer planning horizon, where orders booked months ahead need to be reflected in material purchases now. Teams with only a few make-to-order items and no shared components may find manual planning adequate for longer.

Before relying on the plan, confirm the specifics against your ERPNext version, since planning fields, options and how sub-assembly demand is shown have changed across releases. Check which BOM is default for each item, whether the plan includes sub-assemblies as separate lines, how it treats existing stock and open purchase orders, and what it does with items that have no default supplier. Run one known sales order through a test plan and compare the output with a hand calculation. Those checks show whether the planning data is accurate enough to trust before you automate purchasing decisions from it.

How a Production Plan explodes demand into sub-assembly and raw material needs

A Production Plan in ERPNext turns demand into a list of what to make and what to buy. You start it from open sales orders or from material requests, and the plan reads the item of each demand line, finds its default BOM, and expands that BOM downward. The key control point is the sub-assembly setting: if you plan without sub-assembly planning, the plan shows only the finished goods and the raw materials their top-level BOM names directly. If you enable sub-assembly planning, the plan also creates production requirements for each intermediate item in the tree, so a motor assembly used in three finished products appears as one consolidated line rather than being hidden inside them.

After expansion, the plan nets each requirement against what you already hold and what is already on order. Confirm which warehouses the plan checks for stock, whether it counts reserved quantities, and whether open purchase orders and in-progress work orders reduce the shortfall. Planning results are only as good as these inputs, so check the default BOMs, item lead times and stock balances before you run the plan, not after. Pay particular attention to items with several active BOMs, because the plan will use the default one unless you select otherwise.

The output is a set of proposed production items and material requests for review, not a set of orders the system places on its own. Someone in planning or purchasing should check each line, adjust quantities or dates, and then submit the material requests and work orders that they accept. Treat this review step as a standing control in your process. Record who approves the plan, and confirm with your ERPNext administrator which roles can create and submit the resulting documents, so that a planning run never becomes an unreviewed purchasing commitment.

Which planning approach fits your production

Make-to-order planning starts from confirmed customer demand. Sales orders are the input, and a Production Plan pulls them in to calculate what must be manufactured and which raw materials must be bought or transferred for each order. Because every quantity traces back to a customer commitment, this approach gives the clearest link between what you promise and what the shop floor builds.

  • Inputs needed: Submitted sales orders with delivery dates, item BOMs that are accurate for the current revision, and current stock and open purchase orders.
  • What ERPNext produces: A Production Plan with planned sub-assemblies and finished items, material requests for shortfalls, and the work orders that follow from the plan.
  • Main trade-off: Lead times are visible only after orders arrive, so long-lead raw materials can delay a promised date unless sales order entry triggers purchasing early.
  • Watch for: Partial deliveries and order changes after planning, which require the plan to be re-run or adjusted.

Before committing to this model, confirm with your team how far in advance sales orders are typically entered and whether your suppliers can meet the lead times that order intake implies.

Configuration options and when each one fits

This table compares the planning inputs and settings that shape a Production Plan in ERPNext, from where demand comes from to how sub-assemblies and stock are netted. Read each row as a decision: the middle column explains when the option suits a manufacturer, and the right column lists what to confirm in your own environment before the plan is trusted. Most planning errors trace back to one of these choices being left at its default.

OptionWhen it fitsWhat to confirm in your environment
Sales order sourceMake-to-order work where each confirmed customer order should drive production and purchasingWhether sales orders are submitted before planning runs, and which delivery dates the plan should respect
Material request sourceInternal demand such as replenishment, stock-to-min rules or maintenance parts that are not tied to a customer orderWho raises material requests, their approval flow, and whether requests are already filtered for duplicates
Sub-assembly planning onProducts built from in-house sub-assemblies, where each level needs its own work orders or purchase requestsThat multi-level BOMs are complete and that sub-assembly items have correct lead times and default warehouses
Sub-assembly planning offSimple products with one production level, or where sub-assemblies are bought in as finished componentsThat no in-house sub-assembly demand is hidden inside the top-level BOM and will be missed by the plan
Stock netting onPlants with reliable stock records where existing on-hand and open orders should reduce what is plannedStock reconciliation status, reservations and open purchase orders, since netting only works on accurate balances
Warehouse scope (single or multiple)Single-site plants use one scope; multi-site or multi-company groups need explicit warehouse selection so stock from other sites is not countedWhich warehouses are in the netting scope, and whether transit or quarantine stock should be excluded
Forecast useBuild-to-stock lines or long horizons where sales orders alone do not cover demandForecast source and accuracy, the smoothing approach, and who approves forecast figures before they feed MRP
Include forecast in planSuitable only after forecast accuracy has been reviewed for the items concernedWhether forecast demand should be planned separately so it does not double count confirmed orders

Setting up production planning and MRP in ERPNext

This sequence takes an ERPNext instance from a confirmed version and manufacturing configuration to a tested Production Plan that generates reviewed material requests. Each step leaves a check that the next step depends on, so planning runs on data you have verified.

  1. Confirm the ERPNext version and manufacturing settings

    Record the ERPNext and Frappe Framework versions in production and check that the version is still listed as supported on Frappe's support versions page before any configuration starts. Then open the Manufacturing Settings and the Stock Settings in a staging copy and agree with the planning lead which options will be used, such as how material requests are created and which default warehouses apply. Document the chosen values in a configuration sheet. The step is done when the version is confirmed as supported and the settings sheet has been signed off by the operations owner.

  2. Clean up BOMs and item master data

    Export the item master and every active Bill of Materials, then review each finished good and sub-assembly for a default BOM, correct units of measure, valid item groups and a sensible default supplier. Remove or deactivate duplicate BOMs and BOMs for discontinued products, and confirm that multi-level structures point to the sub-assemblies you actually stock or make. Purchasing and production should both sign off on the list. The step is done when a report of active items without a default BOM, or with inconsistent units, returns no unexplained rows.

  3. Set warehouses and reorder logic

    Define the warehouse tree for raw materials, work in progress, finished goods and rejects, and assign default warehouses for each item where stock is held. For each purchased item, set the reorder level, reorder quantity and minimum order quantity based on the buying policy agreed with purchasing, and mark which items are excluded from automatic requests. Confirm that the stock balances at opening match the physical count. The step is done when stock reconciliation reports match the count and each item in scope shows its reorder rule on the item record.

  4. Define the planning horizon and lead times

    Agree the planning horizon, meaning how many days ahead the Production Plan should look, and record the lead time for every purchased item and every operation that feeds the plan. Lead times usually come from supplier confirmations and the shop floor, so ask each owner to validate the figures instead of carrying over old defaults. Check whether the planning horizon matches your supplier calendar and any fixed shutdown periods. The step is done when the lead time register is approved and a sample of ten items has been checked against recent purchase receipts.

  5. Run a test Production Plan on sample data

    Build a test set of a few sales orders for finished goods with multi-level BOMs, including one item that uses a sub-assembly with its own stock, and create a Production Plan from them in a staging site. Use the plan to generate work orders and material requests without submitting them. Compare the expected quantities for each raw material with a manual calculation the planner makes on paper. The step is done when the planned quantities match the manual calculation for every test item, and any gaps are traced to a specific BOM, stock balance or lead time.

  6. Review the generated material requests

    Open the material requests created by the test plan and check each line for the item, quantity, required date, warehouse and the sales order or work order it supports. Confirm that existing stock and open purchase orders were netted off correctly and that sub-assembly demand was not counted twice. Have purchasing check the suggested suppliers and minimum order quantities. Record any rule changes in the configuration sheet and rerun the test. The step is done when a second test run produces requests that purchasing and production both accept without manual correction.

  7. Go live with monitoring and a review cadence

    Move the approved settings, BOM changes and reorder rules to production through the change process your organization uses, and run the first live Production Plan with the planner watching every generated request. Schedule a recurring review of shortages, excess stock and requests that were edited by hand, and assign an owner for changes to BOMs and lead times. Keep the test data and the configuration sheet as evidence of how the plan was validated. The step is done when the first live plan has been reviewed, the owners and review cadence are recorded, and no unexplained requests remain open.

Where MRP results go wrong and how to prevent it

MRP in ERPNext is only as good as the data it reads. The risks below share one pattern: a small error in a BOM, a stock balance, a lead time or a forecast gets multiplied through every level of the plan. Each card names the cause and the control that keeps the output usable.

Inaccurate BOMs

MRP explodes each finished item through its BOM, so a missing sub-assembly, an outdated quantity or a wrong item code produces wrong purchase suggestions at every level below it. Check that each active BOM matches the current engineering or process drawing, that sub-assemblies are linked as their own BOMs where they are stocked, and that scrap allowances are intentional. Restrict who can submit BOM changes and review a sample of BOMs against production records each cycle.

Stale stock balances

Production Plan and Material Request suggestions subtract available stock from gross requirements. If stock is overstated because of unposted receipts, unrecorded consumption or open reservations, MRP will skip purchases that are actually needed. Run a stock reconciliation or cycle count for the items with the highest requirements before each planning run, and confirm that reserved quantities are current so that committed stock is not counted twice.

Wrong lead times

Planned order dates depend on the lead time set on each item and supplier, and on the manufacturing lead time in the plan. Lead times that were set for a price negotiation or a one-off order push release dates too early or too late. Compare the lead times in ERPNext with actual receipt dates from the last several purchase cycles, and assign one owner in purchasing to update them when a supplier changes its delivery performance.

Unposted stock movements

Material transfers to the shop floor, job card completions and finished goods receipts that happen on paper but are not entered in ERPNext leave the system with the wrong on-hand quantity. The plan then orders material that is already in production or double counts finished goods. Set a daily cut-off for stock entries, require material transfer for manufacture against each work order, and review open work orders and draft stock entries before running MRP.

Unclear forecast ownership

Forecasts from the Forecasting report, sales teams or spreadsheets reach the plan through different routes, and nobody is accountable when they miss. If no one owns the forecast, planners cannot tell whether a spike reflects a real order pipeline or a guess. Name an owner for each product family who signs off the forecast horizon, records the source of each figure and reviews forecast accuracy against actual sales orders at a fixed interval.

Trusting output without review

Production Plans and suggested Material Requests look authoritative, so planners often convert them to purchase orders and work orders without checking. Errors in the inputs then reach suppliers and the shop floor before anyone notices. Build a review step where a planner checks the largest suggested purchases, the items with changed lead times and any requirement that conflicts with capacity, and keep a record of changes made before the plan is released.

Questions buyers ask before planning MRP in ERPNext

What does it cost to set up production planning and MRP in ERPNext?

Self-hosting ERPNext has no license fee, so the cost is the work to configure planning and the infrastructure to run it. The ERPNext pricing page states that self-hosting is free and that Frappe Cloud hosting starts at 5 US dollars per month for shared site hosting, with servers starting at 20 US dollars per month for shared instances and 125 US dollars per month for dedicated servers. Those are hosting figures, not implementation costs. Implementation is a separate line: the people who clean BOM data, configure planning settings, build reports and train planners. Recurring costs include hosting, support and upgrades. Ask any partner for a written scope that separates one-time configuration from recurring operations, and ask which items depend on your data quality.

How long does an ERPNext planning rollout take, and what drives the timeline?

The timeline depends mostly on the state of your master data and how many products have multi-level structures. Supplied facts do not give a duration, so ask for one in the written scope rather than assuming one. The main drivers are the number of finished goods and sub-assemblies, how many BOMs need rebuilding, whether suppliers and lead times are recorded, how many warehouses and companies are in scope, and how many planners need training. Parallel work also matters: a rollout that waits on purchasing data or on a forecast method decision will stall. Confirm with the partner which milestones are fixed, which depend on your inputs, and what happens if your data arrives late.

What must our team provide before MRP can produce useful plans?

MRP is only as accurate as the data it reads. Before the build starts, your team should provide:

  • Complete and approved BOMs for each planned item, including sub-assemblies and scrap items
  • Supplier lead times, minimum order quantities and purchase units for each purchased item
  • Opening stock by warehouse, with counts you trust, and open sales orders and purchase orders
  • Work center and operation data if capacity matters to your schedule
  • Named owners who will approve BOM changes and planning parameters

Missing or stale lead times are the most common cause of plans that look correct and are wrong. Ask the partner to name which inputs they will validate and which remain your responsibility.

Can our internal team set up MRP in ERPNext without a partner?

Yes, for a small catalog with clean data and a planner who knows the ERPNext manufacturing modules, an internal team can configure Production Plans and Material Requests. The ERPNext source is open and self-hosting is free, so the question is capacity and skill, not licensing. A partner usually adds value where the BOM structure is deep, where forecasts feed planning, where custom reports or integrations are needed, or where the team must go live on a fixed date. Honest self-assessment should cover who will own BOM accuracy after go-live, who will run upgrades, and who will investigate planning exceptions. If those roles are unclear internally, a written partner scope can cover them.

How do demand forecasts feed into MRP in ERPNext?

Forecasts give MRP a demand signal for periods that have no confirmed sales orders yet. In ERPNext, a forecast based on past sales orders, deliveries or quotations can be used to shape the demand planning that the Production Plan reads, so the team plans material for longer horizons as well as confirmed orders. Practical points to check with a partner include which document types supply history, which smoothing approach is used and why, how forecast error is reviewed, and whether the forecast is reviewed by a person before it drives purchasing. Forecast quality depends on sales history, so ask how returns, cancelled orders and seasonal patterns are handled before the first plan is trusted.

What changes when we upgrade ERPNext to a new major version?

Upgrades change how planning data is stored and displayed, so each major version step needs its own test plan. The Frappe supported versions page lists version 15 as planned for support until the end of 2027 and version 16 until the end of 2029, and version 14 reached end of life on January 31, 2026. Those dates set the window for planning a move. Before upgrading, test your BOMs, Production Plans, work orders and stock reconciliations on a copy of production data, and confirm that any custom scripts still run. Note that Server Scripts are disabled by default from version 15 and must be enabled with server_script_enabled, so custom planning logic may need review. Ask the partner how they handle regression testing and rollback.

Does Frappe support our ERPNext version, and what does that mean for warranty?

Frappe's supported versions policy says a customer must be on a listed version and subscribed to a matching Frappe Cloud support plan to receive warranty coverage from Frappe. If you self-host, confirm which support route applies to your installation before go-live, because that affects who you call when a planning run fails. Check the supported versions page for current dates, and ask any implementation partner to state in writing which versions they support and how they keep your installation on a supported line.

Access, audit and operational controls for planning data

Production Plans and MRP runs touch sales demand, stock, BOMs and purchasing at once, so a wrong change can spread quickly. The controls below cover who may run and approve planning, how changes are traced, how data is protected before bulk actions, and how long-running jobs are watched. Confirm each one against your own access model before go-live.

Who can run and approve plans

Production Plan creation, submission and material request generation should sit with planners, while approval of the resulting purchase demand belongs to a named manager. In ERPNext, these actions are controlled through role permissions on the Production Plan DocType, so separate the create and submit rights and test them with a non-admin user. Confirm which roles can submit plans that trigger purchasing, and who may cancel a submitted plan.

Role permissions on BOMs and purchase requests

A BOM change alters every future plan that uses it, and a Material Request raised from MRP can start purchasing without a second check. Restrict who can create, amend or submit BOMs, and who can edit Material Requests after MRP has generated them. Review these permissions in the Role Permissions Manager and confirm them with the team that owns product structures and procurement.

Audit trail of planning changes

ERPNext records document versions and comments, which helps explain how a plan or Material Request changed over time. Check whether version tracking is enabled for the DocTypes your planners edit, and decide who reviews the history after a plan is amended. Ask your auditors which evidence they expect for planning decisions and whether ERPNext's records meet that need without an export to another system.

Backups before mass updates

Bulk updates to BOMs, item data or reorder levels through the Data Import tool can change many records in one step, and reversing them by hand is slow. Take a database backup and a site export before each mass change, and run the import first on a copy of the site. Confirm the restore procedure and the time it takes with your operations team, since the import documentation advises loading only a few thousand records at a time.

Background job monitoring for large plans

Large Production Plans and MRP runs execute as background jobs through the scheduler and workers, so a plan can look stuck while work continues or fail without a visible error on the form. Set up monitoring of the worker and scheduler services, and check the background job queue after each large run. Agree with planners who is alerted when a job fails and how a failed run is restarted without duplicating Material Requests.

Server scripts that touch planning

Custom Server Scripts that alter planning logic run with broad database access, so they need a stricter review than form settings. In version 15 and later they are disabled by default and must be enabled with the server_script_enabled setting, and public shared Frappe Cloud benches do not allow them. Decide who may write and approve these scripts, and record which planning rules they change.

When planning in ERPNext needs a partner and when it does not

A planning lead can usually configure Production Planning and MRP internally when the company runs one plant, its BOMs are clean and mostly single-level or lightly nested, and demand comes from sales orders and material requests rather than a statistical model. In that case the work is mainly disciplined master data: item defaults, reorder levels, lead times on suppliers and items, and a habit of running the Production Plan from sales orders before each planning cycle. Your own team can test that setup by taking one finished product through the full chain, from a sales order to a Production Plan, the sub-assembly work orders it creates, and the raw material requirements it shows, then comparing the output with what the shop floor actually builds and buys.

Outside help becomes more valuable when the tree gets deep, when several plants share sub-assemblies or suppliers, or when forecasts must come from your own history rather than from simple order data. Multi-plant planning raises questions about which warehouse and company each requirement belongs to, how inter-company transfers are treated, and who approves a plan. Custom forecasting may mean feeding external demand signals or adjusting the built-in Forecasting report, which touches custom fields and scripts and so falls under the controls that govern customization. Ask any partner, including DeployOpen, for a written scope that names the plants, BOM depth, forecast method and planning horizon covered, and what is excluded. DeployOpen agrees scope, deliverables and timelines in writing before work starts, so you can compare that document against your own estimate.

On cost, the ERPNext pricing page states that self-hosting ERPNext carries no license fee, so the money goes to infrastructure, your staff time and any implementation help. Hosting on Frappe Cloud is a separate, recurring choice with its own published starting prices. Implementation fees are one-time, while infrastructure, upgrades and support recur. Before you decide, confirm which ERPNext version you will run against the supported versions list, because planning configuration must be retested at each upgrade. Keep the internal option if your checks pass, and bring in a partner for the multi-plant, deep-BOM or custom forecasting pieces you cannot yet verify.

How DeployOpen delivers ERPNext production planning

DeployOpen plans, implements and supports ERPNext production planning and MRP inside your own infrastructure, from the first scoping conversation to ongoing operation. Engagements are fixed-scope, so the planning rules, data and deliverables are agreed in writing before the build starts.

How we scope

  • Map how demand enters today, from sales orders, material requests and forecasts, to Production Plans
  • Document BOM depth, sub-assembly stocking points and which items are made versus bought
  • Agree which planning horizons need forecasts and delivery schedules, and where they come from
  • Confirm item master data, lead times and stock settings that MRP will depend on
  • Write the scope, deliverables and timeline into a fixed-scope proposal before any work starts

How we build

  • Configure Production Plan settings, planning sources and item-level MRP parameters in a test site
  • Build sub-assembly planning rules and check raw material requirements against sample orders
  • Connect forecasting inputs and delivery schedules to planning using agreed data sources
  • Test planned orders, material requests and purchase suggestions with your planners using realistic data sets
  • Document customizations separately so they can be reviewed and upgraded without forking ERPNext

How we hand over

  • Deliver a runbook for running Production Plans, reviewing MRP output and resolving shortages
  • Provide test scripts and expected results so your team can repeat planning checks after changes
  • Train planners and buyers on the configured workflow, exceptions and approval steps
  • Record the configuration, custom code and data load steps in handover documentation
  • Confirm ownership of the environment, credentials and backups before closing the engagement

How we support

  • Offer ongoing support, upgrades and testing as a retainer, scoped separately from the build
  • Review ERPNext release notes for each planned upgrade and assess planning impact before applying it
  • Re-run planning test cases after upgrades, data changes or new product launches
  • Tune planning parameters as lead times, supplier performance and demand patterns change
  • Agree response expectations and service levels in the retainer, confirmed in writing

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.