Functions of the MRP system

What are the functions of MRP system? What are its objectives, basic functions and problems?

In this blog post, I will talk about the MRP system, what it is, what kind of questions it answers and why it’s a good tool for production planning.


Material requirements planning (MRP) is a production planning, scheduling, and stock control system, used to manage manufacturing processes. It’s also possible to perform MRP manually, but most MRP systems are managed by software, depending on the number of parts to be organized.


An MRP system must meet these three objectives:

1. Ensure that materials are available for production and products are available for delivery to customers.
2. Try to maintain the stocks levels of materials and finished products at all times.
3. Plan manufacturing activities, sales orders, and purchases.

The ultimate goal of any company is to deliver their product to their customers in the shortest possible time. To achieve this, some kind of planning is necessary and MRP optimizes this objective.

On the other hand, the list of materials (or Bill of Material -BOM-) relates the final product with the components: lists of materials, detail of the materials, components and sub-components necessary for manufacturing each product. This also includes all directions for manufacturing items, such as: roadmaps, labor and machine hours, jobs, assigning batch/lot and serial numbers… Based on this, an MRP system will also specify how long it will take a company to manufacture a product from its components (assuming they are all available) and it will calculate the estimated cost for manufacturing.


The basic functions of an MRP system include: 

stock control, 
management of material lists and 
supply chain. 

Therefore, MRP helps companies maintain inventory levels and to plan manufacturing, purchasing and delivery activities. In addition, companies need to control the amount of material they buy, plan what products are to be produced and in what quantities and ensure that they are able to meet current and future customer demand, and all this at the lowest cost possible.

Making a bad decision in any of these areas will cause the company to lose money, such as:

If insufficient quantities of a material (or the wrong material) are purchased, the company may be unable to meet the deadlines.
If excessive quantities of a material are bought, the money stays in the warehouse. As long as this stock is kept in the warehouse, that money cannot be used.
If the manufacturing process is started at the wrong time, it may cause delivery deadlines to be missed.

The MRP solves these problems by offering answers to the following questions:

What materials are needed?
How many are necessary?
What products must be delivered?
When are they needed?

Material requirements planning can be applied both to items purchased from external suppliers and to sub-components manufactured internally, as components of more complex items. The answer to all of these questions can be found in only one option – fulfillment:


If there are errors in the inventory data, in the bill of materials (BOM) or in the production plan, the output data will also be incorrect. The integrity of the data is also affected by inaccurate stock adjustments, errors in receiving of incoming and outgoing products, errors in stocktaking, etc. 

All these types of errors can be avoided by implementing a global ERP system to manage all this data, flows and processes, to organize inventory and shop floors, and intercommunicate needs, so that each warehouse can redistribute the components to serve the entire company.

To this end, ERPAG ( ) has made notable efforts to provide an MRP as efficient and integrated with the nature of the company, i.e. oriented to the activity of the company with special focus on the productive activity.

Reverse BOM (Bill Of Materials)

camera pieces

What is reverse BOM? When do I need to reverse a Bill Of Materials? Can I reverse a BOM in ERP/MRP software solution?


1. Introduction

In some types of manufactures, it is possible to separate the previously assembled (or received) final product into its constituent components. Such disassembled components may be used to build new products or sell them.

If materials or semi-finished products in the manufacturing process have changes (physical, chemical, etc.) that make it impossible to return them to their original state, then the "reverse BOM" will not be applicable. Example: if we have a pipe that is bent in the process, if we "disassemble" the product we will get a bent pipe, not the straight one that it was at the beginning. In these cases, the "bent pipe" goes to write-off or some additional processing (eg correcting if possible) if the bent pipe cannot be sold.

We will explain the reverse BOM in the simplest cases where the material can be "restored" to its original state.

We will take an example where a customer returned us a bicycle that we sold him.

2. Bill Of Materials example

Our "Bike Speedy" consists of several sub-components, while sub-components consist of different components.

bill of materials

We manufactured the item and sold it to our customer.

sales order customer return

After that, we did a "customer return", our finished product 'appeared' back in our stock.

product list ERPAG

3. Work order - reverse BOM

To reverse a BOM, we have to go through the "Standard - Work Order" option.

create standard work order

When you want to add the BOM based item in the Work Order manually, we have 'reverse' and 'reverse (raw materials) options.

reverse bom

4. Reverse

"Reverse" option will form only the first level, in case you have the multi-level BOM. In our example, that would be the sub-components.

reverse bom to sub components

The final product will now be in the Work Order as an input item, while the sub-components will be in the output items (as products). If you select this option, the sub-components will come back to stock, so if necessary, if you need to "disassemble" them again, you must re-do the work order. We can add “Bill of materials” items indefinitely in one work order. If the same items exist, the quantities will be summed up.

Example of adding sub-components.

adding sub components

And our stock after the work order is completed will look like this:

stock list

5. Reverse (raw materials)

We use this option if we have a multi-level BOM that needs to be disassembled to component levels, and we are too lazy to form work orders separately for each level.

reverse bom raw materials

The components will be automatically summed up in the 'output items'.

The result in our stock list would be the same as in our previous example.

2019. ERPAG Inc.

XERO & ERPAG integration

xero and erpag

1. Introduction

One of the advantages of cloud applications (and ERPAG) is the ability to easily share data. The technology used is the Application programming interface (API). In general, the end user does not even care what technology is being used, so in this text we will focus on user work when integrating ERPAG and XERO.

Xero is accounting software (or as they say "Beautiful Business & accounting Software"), and through connectivity you get the possibility that your accountant (who, of course, uses Xero) can effectively run your business books.

A list of documents that are posted in Xero through API.

erpag and xero document list

Items list:

erpag and xero items list comparison

Note: Items are searched and compared through "SKU" (

Customer / Supplier:

erpag and xero business associates comparison

Note: Contacts are searched and compared through "account number" in Xero, or "key" in ERPAG.

2. Connecting ERPAG and XERO

At the time of writing this blog, ERPAG is not listed on the Xero App Marketplace yet (the process is ongoing), but this does not stop us from fully utilizing the integration.

erpag and xero

In Administration panel, in the Integrations section, we have option "Xero".

connect erpag and xero

Click on "Connect to Xero". After that, the page for entering Xero credentials will load.

xero login

After this step, you need to confirm access in the next 30 minutes.

Note: Since ERPAG is not listed on the Xero App Martketplace for now, you will only be allowed access for the next 30 minutes. When the period expires, you can easily extend it by confirming.

3. Products and services - Accounts

On each item (Product or service) it is necessary to set up an Account from Xero.

• Expense account
• Income account
• Inventory asset account (for product)

You can adjust each item individually, in the "XERO" section:

erpag xero accounts

Or through the bulk action:

erpag xero accounts bulk action

xero accounts bulk action

Also, you can set up the "default value" for newly entered items (or imported ones):

xero accounts default value

4. Settings - Value Added Tax (VAT)

For general information about working with VAT you can find on the following link

If your tax system is Valued Added Tax (VAT) you need to "match" tax rates from ERPAG and Xero.

There are two ways to do this:

  • Tax location

tax location

For each tax category you have to select appropriate rate for "Output VAT" and "Input VAT".
  • Tax category

tax category

Here you have to select appropriate tax rate from Xero for each tax location.

5. Settings - Sales Tax (USA)

If you are based in USA, your tax system is a Sales Tax. For more information about working with Sales Tax in ERPAG, you can read on our blog:

Invoiced Sales Order from ERPAG:

erpag invoice

Result in Xero:

xero invoice

Tax Rate from ERPAG will be automatically created in Xero.

xero sales tax

Note: Auto Look Up US tax rates through API keys is not possible.

auto look up sales tax

6. Synchronization  (ERPAG – XERO)

The part of application that is used to synchronize the data is located in the Accounting section.

erpag xero synchronization

For practical reasons we did not want the data to be sent automatically immediately after the documents were created. It has been shown from practice that the data exchange process can take some time and may be partially inaccessible. For example, we create invoices through bulk action and the API service returns the message "too many requests", because each API service has limits in order to prevent its fall. Accountants also prefer to have the appropriate document type first (supplier invoice first and then our invoice).

We send information at our request. Each document must be selected and then "sent" via bulk action.

syncing documents to xero

send documents to xero

The sent document will get a status "Synchronized" or "Error". Documents with the status "Synchronized" are removed from the list. If we want to show them, we have the option "Show - Synchronized".

syncing error

In front of the "error" status, we have a "info button", where we can review the reason of the error and eventually an option how to resolve the problem.

error description

In our example, click on a "setup" would lead us to set an account for an item.

adding xero accounts to products

With bulk action, we have a few more options.

bulk action option

• Status - On Hold

Selected documents are assigned "ON HOLD" status. They appear in the list but they will not be able to sync until the status changes to "READY".

• Status - Ignore

Documents with this status will disappear from the sync list (they can be seen if  "Show Synchronized" is turned on, and you will not be able to "send" them to XERO. This is done in cases when document does not need to be sent to Xero (e.g. Voided or entered manually).

• Status - Ready

This option returns documents with the status "On Hold" or "Ignored" so that they can be synchronized again.

• Delete / Void (Xero)

This deletes the synchronized documents (if in Xero status is "draft") or voids (if status is "approved") from Xero. After Delete / Void they will get a status "Ready".

7. Supplier Invoice (Purchase order)

In the following topics we will explain how each document is transferred to Xero. Of course, our first document is a Supplier Invoice or Purchase Order.

A Purchase Order layout in ERPAG that has a Supplier Invoice generated.

invoiced purchase order

Bill layout in Xero

bill xero

Each document that is sent to Xero has a "draft" status, so it is necessary for the accountant to do "Approving".

The same principles that apply to Bill, they also apply to Landed Cost and Contractor Bill.

With VAT, we sometimes do not have the right to have Input VAT as Deductible. This VAT value can be allocated as a "landed cost" and subsequently be a cost as a Cost of Goods Sold, or immediately to be a cost like a Tax Expense.

It is necessary to specify "Tax Expenses" in the Xero parameters.

tax expense xero

An example of Deductible: No - Tax expenses.

utility bill tax expense

And a result in Xero:

utility bill xero

8. Invoice (Sales Order)

Only sales orders that have status Invoiced will be offered for synchronization. The list will not include sales orders that have non-packed items for which you already created an invoice. In this case, you must complete the packing.

invoice erpag

And the document in Xero

invoice xero

Note: All prices in ERPAG are Tax Exclusive and they are transferred as such to XERO.

Customer return (and voided) will be "Credit note" in Xero

credit note erpag

And a result in Xero

credit note xero

9. Work Order (Manufacturing)

Xero doesn't have a specific document for work orders, or for manufacturing in general.

work order erpag

In order to achieve adequate accounting and inventory control, two dummy documents will be created during synchronization.

• Dummy invoice - where material is "removed" from inventory and Cost Of Goods Sold (COGS) is formed.

xero dummy invoice

• Dummy bill - where a product is "added" to inventory.

xero dummy bill

You will notice that the value here is "0", in order not to form a payable / receivable account.

When a product 01 is sold, COGS will not be re-formed because its stock price is 0. COGS is already posted through the "dummy invoice".

For more information check out our blog on a similar topic:

10. Stock adjustment

These documents are synced in a similar way as Work Orders.

stock adjustment erpag

• "Dummy invoice" - reduces/decreases the amount in stock.

dummy invoice xero

• "Dummy bill" - Increases inventory counts.

dummy bill xero

11. Multi currency

Both in Xero and in ERPAG, working with multi-currency is supported. The currency needs to be opened in ERPAG and Xero

multi currency

xero multi currency

An example of a Sales order with a different currency (USD is a domestic currentcy)

sales order multiple currency erpag

And a result in Xero after synchronization:

sales order with multiple currency xero

2019. ERPAG Inc