ERPNext Foundation ERPNext Cloud User Manual Blog Discuss Frappé* Donate

Need definite answers on Scrap Management


I have been scouring the forums looking for haw to handle “Scrap” that is the result of a Production Order. There are many threads and NONE that seem to have the answer.

One post even listed the links to 3 other threads (all of which end with no answer)

Let me give you an example:

  • we buy a product “Peanut Butter” in 10 liter canister as our raw material Item Code: PB0010
  • we buy 0.5 liter jars (to make smaller containers of Peanut Butter) Item Code: PL0132
  • we buy lids for the jars Item code: PL 0133

That makes up the raw materials for a BOM to make 0.5 liter jars of Peanut Butter: Item code: BK0025.

So, this BOM calls for 10 liters of Peanut Butter Item Code PB0010, but when a production order is made, it is not possible to get all 10 liters of Peanut Butter out of the canister. However all 10 liters of the Original Peanut Butter must be accounted for at the end of the run.

Typically from a 10 liter canister of Peanut Butter the manufacturing person can generate somewhere between 18 and 19 of the 0.5 liter jars of Peanut Butter to put into inventory as Item Code BK0025.

  • How can I account for the wasted Peanut Butter that cannot be extracted from the original 10 liter canister?

  • What happens to the extra 0.5 liter jars and lids that were transferred to the WIP location but NOT used because we could not get all the Peanut Butter out of the 10 liter canister? They have to accounted for somehow and made available for use the next time we have a production run.

  • Is it possible to make 2 separate Stock Entries of “Manufacture” type so one can go to inventory and the other to a Scrap Warehouse?

  • Then how can anything sent to the Scrap Warehouse be disposed of properly from an accounting point of view?

I have seen many threads that talk about a “Scrap Warehouse” or a “Scrap Management” set of docs to help with this. There is even a github issue that was supposedly “merged” in October of 2016 for this:

Someone even made up a complete set of Screenshots for this “Feature” if you look here:

Yet, after all of my searching I cannot find a single bit of information about how to use this “feature” that appears to have been added to ERPNext at some point over a year ago! There is nothing in the official ERPNext Online Manual, and nothing on the forum that actually answers this question.

I find it hard to believe that nothing exists for this. It has been a topic of this forum for more than 4 years now, and Manufacturing, is one of the top uses of ERPNext. So where is it, and exactly where do we find information on how to use it?!?

I know I am NOT the only one that wants these questions answered, and I have seen them asked in many places on the forum. However, I have yet to find answers.

If someone can point out links to answer these questions, then I am happy to be corrected on this and will gladly follow whatever instructions you can point to for this.



Well, I was hoping that someone would at least recognize the screen shots and maybe know what is going on with Scrap Management.

At this point I cannot see much value to the “Scarp Warehouse” designation if spilled or damaged raw materials cannot be added and Production Orders cannot be completed when something goes wrong with one of the raw materials.



I have spent the entire morning trying to solve this issue again, and I think I am worse off now than when I started.

So what is the “Correct” way to handle a condition when you find during the execution of a Production Order, a portion of your raw materials are unusable and you are unable to make the entire amount the Production Order called for?

  • You cannot throw away the raw other raw materials that would have been used in the completing of the order.

  • You cannot “Complete” the Production Order without being able to make all of the items you set out to make. Yet when a portion of one raw material is bad or otherwise unusable and you come up short in the total number of items produced, you have no way to complete the Production order and it is left “in Process” forever.

I cannot believe a system like this would overlook something so damaging. Yet the “Scrap Warehouse” only appears to let you move “Completed” items from the production order into it. That just makes no sense at all.

If I manufacture an item that takes 10 different raw materials and each of those raw materials cost more than an hours wages, why would I allow 9 of them to be added to the Scrap Warehouse because one was found to be bad when it was being added to the end product?

By forcing all remaining materials to be included in the “Scrap” because one out of the ten was bad, then I am not able to move those 9 left over materials back to stock. That is a costly accounting assumption!

For example, you get a box of 80 wheel bearings along with all the other parts needed to make 8 skate boards that cost $200 each to produce. When you get to the end of the box of bearings you find that 10 bearings out of the 80 are unusable. Now you cannot complete the Production Order because you have no more bearings, yet the system expects you to simply write off the remaining materials to make those last 2 skateboards on the order because of one bad raw material. So you have to finish the Production Order with only 6 of the 8 skateboards you set out to make, and that leaves the Production order in a state of “In Process”.

Now you have close to $400 worth of raw materials stuck in the WIP area and you have no way to allocate more bearings to the Production Order to finish it. For that matter, suppose those bearings were special and you had no more to finish with anyway?

You also have no way to Complete the production order. You also have no material transfer method to move the left over raw materials back to stock and have the accounting follow correctly by removing the value of the raw materials from the production order you started but cannot complete.

I am sorry, but the more I try to make this work, the more frustrated I become.

Can anyone from the foundation or the dev team explain how this is supposed to work.

There is NOTHING in any documentation I can find to deal with “Production Orders” gone wrong. There are so many scenarios where a solution fo rthis is needed.

Anyway… Does anyone have a clue how to solve this?



Have you checked ctge videos too ? Some of the ones that Frappe voiced themselves are quite detailed may be worth looking at


Ok… you got me. What is a ctge video?



Sorry autotype strikes again. I just meant have you checked the videos … ?


Yup, nothing there on Scrap Management. They barley talk about Manufacturing. Mostly basic overview stuff.



hi bkm,

Great that you are finding out these kinks. To be honest, i assumed that this feature is working as it should. Which is let you ad some more raw materials and let you complete the production order . Have you tired adding scrap % to the items in the BOM?



Hmm… not really. It is a function that is not documented enough to understand how it works. I was afraid that whatever x% I put there I would be stuck with in the Production Order and unable to change. There are times when everything “works-as-it-should” and there is nothing to have to scrap. So I don’t want to go the other way and “force” a scrap level at times when there is none.

I guess I will have to invest more time into doing the forensic trace of exactly what the % scrap does in the BOM. Not exactly how I had hoped to be spending my time, but it would be the next logical step.



Hi @bkm

Did you solve this issue ?

I added a scrap material under the scrap table expecting that the proposed scrap qty will be moved to the scrap warehouse after production, but nothing happened. It just ignored what was stated clearly as the proposed scrap item qty.

This means the scrap item and qty is basically useless and not used for any purpose .

This sounds pretty strange, any ideas?


Correct, my observations and test results are the same as yours. Apparently there is nothing in the code to support the handling of scrap or waste from a production order. Some have suggested many steps to get around this, but they all involve creating much extra work using material transfers after the fact and none of them address the ability to set a production order to “Completed” status. The best you can hope for is “Closed” and then you have to populate the comments section with an explanation so you can tell what happened later.

If scrap worked, the production order would handle the scrap or waste as designated by the user and allow for a completed status.

I didn’t notice any advances in this area in the notes about the new features in version 11 either. It appears that the foundation is not concerned about this at all. Very sad status.



I have just started using the manufacturing module.

It is quite surprising that this basic need is absent. Even the smallest manufacturing concern needs this.

I guess we have to raise an issue on github



@JayRam, could you please throw some light on this issue highlighted very detailed by @bkm

Tagging Jay as he has extensive exposure of working on manufacturing module.


Looking for a good answer for this one as well. All the methods using a scrap warehouse etc are cludgey at best. There NEEDS to be a simple scrap transaction to be able to scrap (including serial controlled) items.

This has been a source of frustration for some time.


Agreed. Sad but true.

Sadly, @JayRam must have missed this thread.

So hard to believe that a ERP system that is being promoted as a great manufacturing and distribution package is STILL ignoring all of us that have tried to use it for actual manufacturing businesses.

I mean I sort of get it. Scrap Management is almost as complex a component of manufacturing as the rest of the BOM/work order functions. However, it does not mean that you can completely ignore this most important function and hope that nobody notices. :roll_eyes:

The core developers have spent tons of time making tons of new additions to the system in areas that further push the ERPNExt program into even newer areas of business. Yet if this Scrap Management fiasco is an indicator of how they are just throwing crap together and never revisiting it to fix important issues, then how can we expect this to actually become a great product?!?

How do you justify continuing to make version after version without ever correcting this?!?

I no longer promote this product to manufacturing facilities. I only use it for retailers and distributors. Manufacturing is COMPLETELY USELESS without a proper way to manage production orders that encounter bad raw materials.

If you were using this to build cars, you would not want to scrap a few entire cars just because you have a bad batch of light bulbs for the dome light! Yet that is EXACTLY what you are expected to do in ERPNext!

I give up!!!



Whoa! Don’t give up buddy. Never, never, never, never give up! Ever!!

On that inspirational note,

How about we address the following:

We let you add multiple Parent Items into the BOM. These can be By products (in case of process industries), Scrap or maybe it just makes optimal sense to make two or more products together. Think nesting complexities, etc.

BTW: You guys can do that already without a BOM. So, just go to Stock Entry, purpose Manufacture. Don’t use a BOM and just add multiple transformed items with Destination Warehouses and consume the raw material for making these transformed items. However, you will need to manually set the valuation rate for these items. Maybe our Make Multiple Item BOM will let you set the valuation rate percentages of the items in it.

If you are especially grappling with variable outputs of items, scrap, etc., there is no way you can use a BOM anyways. Or even if you do, you will have to change the quantities of the input/output items.

Does that work for you guys? Or will it create more problems than the problems it solves?




I’m very new here so apologies if I sound silly…Any reason you don’t want to do a stock entry (manufacturing) with custom inputs and outputs? I agree its a bit annoying to have to manually update quantities and values each time but it seems to do the job okay. One issue is that you can’t use work orders since those require a BOM to be specified.

To save a bit of time, you can initially load the items and quantities as per a BOM (Tick “From BOM”, input the production quantity, and click on get items which will populate the list), and then edit the lines items that need to be edited. So if you have a complicated BOM with 10 inputs, 1 output and 2 scrap items defined, you only need to edit the 1 or 2 lines that may have been changed from the “standard” BOM. It looks a little funny because “From BOM” remains ticked which is then not technically correct, but that’s a minor irritant!


This is EXACTLY the point @JayRam !!!

The ERPNext deve team “started” to develop a manufacturing module by creating the BOM and Production Order processes. However, they never finished the job. A live production environment CANNOT operate properly without a way to handle unexpected variable output. You can’t build scrap into the BOM because you will never know how much (if any) scrap there might be.

You suggest working without a BOM as a way to manage this scrap process. If I have to work without a BOM then what good is your manufacturing module?!? It isn’t any good and that is my point!

Regardless of the reason, this thread never received an answer and it only further proved my other point about problem persisting for over 4 years now. Did that sink in? …over 4 YEARS NOW.

I no longer market ERPNext to my clients as a manufacturing management tool because it fails miserably.

In a perfect world where everything is always just right, the ERPNext manufacturing module might be passable. The reality of everyday manufacturing is a vastly different world.

  • Production orders almost never end exactly even because the raw materials going into them have their own variable quality. The more we come to depend on materials made in China, the worse this problem gets every year.

  • Humans make mistakes. Whether that be in counting incorrectly the number of washers they add to a bolt, or how much mild acid they are supposed to add to a weed killer formula, or how much of that special mild acid they spill on the manufacturing floor and loose down the drain. All of these are real everyday events that MUST be able to be resolved by the lower lever employees in the process. When you have a manufacturing floor with 50 employees making products and you are issuing 100 to 125 Production Orders per day to the workers on the line, then you had better have a fast and effecient way to handle scrap and way to return unused materials back to stock when a production order ends prematurely.

Currently this requires the intervention of someone with higher level accounting authority in the system to make MANUAL adjustments to the cost of unused materials and the movement of them back to inventory.

This is a ridiculous approach to manufacturing. Every REAL ERP system that handles Manufacturing has simple Production Order rectification pages that allow workers to successfully complete a production order without making the entire original amount and to list the items on the BOM that were either bad or otherwise unusable while allowing the rest of the materials to be moved back into inventory all with a single submit. This way the worker on the production line can continue working his shift without impacting the rest of the work he is supposed to complete for the day.

In each case the production orders that have ‘exceptions’ for the ay are reviewed by the production manager and appropriate comments are added to the closed production order to explain what went wrong.

No matter how you look at this, working outside the regular BOM and Manufacturing process is NOT going to properly allow you to get accurate reporting about how your efficient your manufacturing processes are running. THAT is the whole reason people use ERP systems in the first place.

So am I frustrated? Of course I am.

In my opinion the entire Manufacturing module should go back to being Beta and taken off the official list of working modules until the developers and the foundation decide they want to actually have a real Manufacturing module and invest in the time to finish it the way it should have been done years ago.

That pretty much says it all. If you cannot use a BOM then you really do NOT have a Manufacturing process in your ERP system.

Scarp management is NOT something you can build in at the beginning of a Production Order unless you are doing something like cutting out wodden toys from lumber. In that one case I can see your current method ‘maybe’ working. If you buy lumber by the linear meter and you only use 70cm of a linear board to make a product, then the remaining 30% is always going to be waste. However, those perfect scenarios are the exception and not the rule.

So… yeah I did give up. I do not believe anyone is paying attention to this except for the few of us that actually tried to use it in a live manufacturing environment.

The saddest part of this is I actually have one client that decided they LIKED the idea of having to scrap all the remaining raw materials left in a incomplete production order. They Liked it because they figured out they could track the real materials in a spread sheet outside the system and use it to hide money from their government.

So is that how you want ERPNext to be known, as the system that gives you a fraudulent path through manufacturing so you can hide money? You almost force them into it with the current configuration. It was the actions of this customer that caused me to stop implementing ERPNext in manufacturing locations. An ERP system should never make it easy to perpetuate fraud. They were supposed to be designed to do the opposite.

The current state of Manufacturing in ERPNext is horrible and incomplete.

I do not even want to try to engineer the fix for this myself. I have done similar things for other parts of the core system and had the PR’s rejected becsuse someone didn’t like how something was done. So, I will not invest the many thousands of dollars it would take to finish the module for you. I have thrown away enough money in rejected PR’s already and have lost my drive for it.

So, again… yes, I give up.



Whoa buddy! That’s a shame. Please reconsider. Let’s fix it together. If the PR gets rejected, we will harass them till it gets accepted. While tweaking the code so that it passes their muster.

I don’t come here much. When I do, I find out that I spend WAYYYY more time here than I should and that’s detrimental to my business.

Reset your anger and bitterness and let’s start again.




You are right.

My thoughts about this module are done. I will not let it get me so upset any longer. That is why I walked away form it almost a year ago in the first place.

I am not capable of fighting for this alone and if nobody is going to be supportive of fixing the issue, then I cannot possibly waste anymore of my time on it. It is unfair to all of us that actually try to us EPRNext to enable small and medium businesses to focus on their business and less time having to try to manage the small details.

This does not change my attitude toward the module, it just means that I will not loose any more time to it or loose my voice talking about it.

Thanks for the sanity check.

Point taken. And I will not contribute to this thread any longer. Maybe you close it so it will eventually just fall out of readership. You can PM me if you think there is something more I should do or if I should do something different.