How to Scrap Inventory Using an Analytic Account in Odoo

A non-technical guide to understanding the business case.

Scrapping inventory in Odoo is a function designed to remove a quantity on hand from the system. Inventory is occasionally scrapped for a few different reasons including expiration, damage, or unexpected inventory used to perform another task.

An inventory scrap is not the same as adjusting your inventory counts for the purposes of correcting quantities. Scraps are instead used for the purpose of depleting inventory outside of the traditional stock counts. Often, an inventory location is designed to accrue an expense to a specific account in the general ledger that identifies waste or unexpected consumption. For example, a company may define an inventory location specifically for disposing of "expired scrap". Movements of inventory into the scrap location create automated journal entries (when configured to do so).

In base Odoo, the Analytic Account is not a part of the scrap function. SSI has developed an open source customization that allows a company to directly charge the scrapped inventory to a job, or any other type of analytic account. 


In this example we can pretend that we sell doors. During the course of installing a door, my team has accidentally damaged a brass door knob. Luckily, we have another brass door knob on hand but I can't simply take it from inventory. Processing an inventory adjustment will correct the quantity on hand, but true cost of goods will still be incorrect on the job. The goal will be to remove the door knob from my inventory and directly cost it to the job that we are performing. In order to do both, scrapping the inventory to the analytic account is the correct solution.

The inventory location is set to debit the 40065 account upon movement to that location as shown below:

The next step is to process the scrap with the analytic account chosen for the job that we are working on today.

The result is a journal entry that has the debit (expense) side classified to the analytic account of my job. 

This $23.25 expense is now added to the other entries for this Analytic Account as a cost of this job and will reduce the job's gross margin accordingly.


Users of Odoo can benefit from the ability to "Charge" the scrapped inventory to Analytic Accounts instead of manually trying to allocate this unexpected expense after the fact. This expense will not be seen as a "Cost of Goods Sold" on the invoice, but in fact a direct expense to the company for re-work.

If you are looking to learn more about Analytic Accounts, please see this post next. If you want to learn more about this app, please Contact Us.

How to Scrap Inventory Using an Analytic Account in Odoo
Kyle Robinson September 13, 2020
​Share this post
How we integrated Synology NAS to Odoo
...and why