Skip to Content

By-Products and Scrap in Odoo: Production, Cost and Control

Discover how BrowseInfo helps manufacturers manage Odoo by-products and scrap with better production tracking, costing, inventory control and process visibility.
10 min read
September 14, 2026
Odoo Manufacturing

Introduction

Manufacturing rarely produces only the finished product. Alongside the main output, production can generate reusable materials, secondary products, defective items and unavoidable waste.

The challenge is knowing how each output should be handled. A valuable secondary product should not be treated the same way as material that must be discarded, especially when inventory and production costs are involved.

Odoo provides separate workflows for by-products and scrap, helping manufacturers track secondary outputs, remove unusable materials from available inventory and improve production visibility.

With the right configuration, businesses can connect production, inventory, costing, quality and traceability to understand where materials are being recovered, where they are being lost and how production efficiency can be improved.

What Is a By-Product in Odoo?

A by-product is an additional output created during manufacturing alongside the primary finished product.

For example, a manufacturer produces wooden furniture.

The primary output is:

Finished Table

The production process may also generate:

Wood Offcuts

If those offcuts can be reused or sold, they can be treated as a by-product.

Odoo allows businesses to define by-products on a product's BoM. When the Manufacturing Order is completed, Odoo records the by-product quantity and updates its inventory. By-products can also be associated with a specific manufacturing operation.

The basic flow is:

Components → Manufacturing Process → Finished Product + By-Product

This gives the business visibility into both outputs.

What Is Scrap in Odoo?

Scrap represents material or products that are no longer usable or sellable and need to be removed from usable inventory.

Examples include:

  • Defective components
  • Damaged products
  • Broken materials
  • Contaminated products
  • Production waste
  • Expired items
  • Unrecoverable material

Odoo records scrapped goods by moving them to a virtual Inventory Loss location rather than treating them as usable warehouse stock. Businesses can also create a dedicated scrap location and optionally configure a loss account for financial reporting.

The basic flow is:

Inventory/Production → Scrap → Inventory Loss

This keeps available inventory accurate while preserving a record of what was scrapped.

By-Product vs Scrap : What Is the Difference?

The most important distinction is economic and operational value.

AreaBy-ProductScrap
MeaningSecondary useful outputUnusable or discarded material
InventoryAdded to inventoryRemoved from usable inventory
Potential valueCan be reused or soldUsually represents a loss
BoMCan be defined on BoMUsually handled through scrap operation
TraceabilityCan be trackedCan be traced through scrap records
Production analysisCan contribute by-product cost reportingRepresents inventory loss
ExampleMetal cut-offs reused in productionDamaged metal pieces
ObjectiveRecover valueControl and reduce waste

This distinction should be defined by business policy rather than left to individual operators.

1. Start by Classifying Production Outputs

Before configuring Odoo, classify the different materials generated by production.

For example:

Primary Product

The main product the manufacturing order is designed to produce.

By-Product

A secondary output with useful or recoverable value.

Reusable Material

Material that can return to another production process.

Scrap

Material that cannot reasonably be reused or sold.

Waste

Material that requires disposal according to operational or regulatory requirements.

This classification determines how the material should be represented in Odoo.

2. Configure By-Products on the BoM

When a production process consistently generates a secondary output, defining it on the BoM can provide better inventory visibility.

Odoo's By-Products feature must first be enabled in Manufacturing settings. A by-product can then be added to the BoM with its expected quantity and, when applicable, the operation that produces it.

For example:

BoM: Steel Frame

Primary output:

1 Steel Frame

By-product:

2 kg Steel Offcuts

During production, completing the manufacturing order records both outputs.

This is particularly useful when by-products are generated predictably.

3. Track By-Products at the Right Operation

Some production processes generate different secondary outputs at different stages.

For example:

Cutting → Metal Offcuts

Machining → Metal Shavings

Assembly → Defective Components

Odoo allows a by-product to be associated with a specific manufacturing operation through the BoM configuration.

This provides more detailed production visibility.

Instead of simply reporting:

10 kg scrap/by-product

the business can investigate:

Which production stage generated it?

That distinction can become important when identifying process inefficiencies.

4. Scrap Defective Material During Production

Scrap does not necessarily occur only after production is complete.

A component may become defective during a manufacturing operation.

Odoo supports scrapping from manufacturing operations, including through the Shop Floor workflow. Users can scrap defective components and send them to a scrap location.

A practical workflow is:

Production → Defect Identified → Scrap → Record Reason → Inventory Updated

This helps ensure that defective material is not accidentally counted as available stock.

5. Create Clear Scrap Reasons

Simply recording that material was scrapped is not enough.

Manufacturers should understand why it happened.

Common scrap reasons include:

  • Machine failure
  • Incorrect setup
  • Material defect
  • Operator error
  • Quality failure
  • Damaged during handling
  • Wrong specification
  • Packaging damage
  • Expired material

A structured reason framework makes production analysis more useful.

For example:

Scrap ReasonPossible Root CauseCorrective Action
Machine defectEquipment issueMaintenance
Wrong dimensionsSetup errorProcess review
Material defectSupplier qualityVendor investigation
Handling damageWarehouse processOperator training
Quality failureProduction variationProcess improvement

The objective is to move from recording scrap to reducing recurring scrap.

6. Understand the Cost Impact of Scrap

Scrap is not just a quantity problem.

It can represent a real financial loss.

When inventory is scrapped, Odoo decreases inventory value according to the applicable costing rules.

For example:

100 units produced

5 units scrapped

The business has not simply lost five units.

It may also have consumed:

  • Raw materials
  • Machine time
  • Labor
  • Energy
  • Production capacity

Therefore, scrap analysis should consider the broader production cost.

7. Understand By-Product Cost

By-products can also affect production cost analysis.

Odoo's Production Analysis report includes a By-Products Total Cost measure, alongside production cost, component cost, operation cost, employee cost and yield percentage.

This gives manufacturers an opportunity to analyze the economic impact of secondary outputs.

For example:

Total Manufacturing Cost

Primary Product Value


By-Product Value

The exact accounting treatment depends on the company's costing and valuation configuration, so finance and manufacturing teams should agree on the intended treatment before implementation.

8. Separate Normal Scrap From Abnormal Scrap

Not all scrap is necessarily a production failure.

Some manufacturing processes naturally generate a predictable amount of waste.

For example:

Expected process loss: 2%

Actual result:

2.1%

This may be normal.

But if actual scrap reaches:

8%

the production team should investigate.

This creates a useful distinction:

Normal Scrap

Expected within the manufacturing process.

Abnormal Scrap

Higher than the accepted production threshold.

The ERP should help the business identify the difference.

9. Use Yield to Monitor Production Efficiency

Yield is an important manufacturing KPI because it connects production output with expected production demand.

Odoo's Production Analysis includes Yield Percentage (%), along with measures for quantity produced, quantity demanded, costs and production duration.

For example:

Demanded: 1,000 units

Produced: 970 units

Yield: 97%

A declining yield can indicate:

  • Increased scrap
  • Production defects
  • Machine problems
  • Material quality issues
  • Process inefficiencies

Yield should therefore be reviewed alongside scrap data.

10. Connect Scrap With Quality Management

Scrap data becomes more valuable when it is connected to quality processes.

A useful operational sequence is:

Quality Check → Failure → Scrap Decision → Scrap Reason → Corrective Action

Instead of simply removing defective material, the business can investigate recurring quality failures.

For example:

Product A → 4% scrap

Product B → 1% scrap

If Product A repeatedly produces more scrap, management can investigate its:

  • BoM
  • Work center
  • components
  • supplier
  • manufacturing method
  • quality controls

This transforms scrap from an accounting event into a process-improvement signal.

11. Track Lot and Serial Information Where Required

Traceability becomes important when by-products or scrap involve regulated or controlled products.

Odoo supports tracking by lot and serial numbers and by-products can also carry tracking information where applicable.

For example:

Manufacturing Order → Lot → By-Product → Storage

or:

Manufacturing Order → Component Lot → Defect → Scrap

This can help businesses investigate where specific material originated and which production order generated it.

12. Define Who Can Scrap Inventory

Scrapping inventory changes stock availability and can affect financial values.

Therefore, not every warehouse or production employee should necessarily have unlimited authority to scrap material.

Define responsibilities such as:

RoleResponsibility
OperatorIdentify defective material
Quality TeamConfirm defect
Warehouse TeamProcess scrap movement
Production ManagerApprove significant scrap
FinanceReview material financial impact
ManagementMonitor recurring losses

The exact approval structure should depend on the value and risk of the inventory.

13. Use Production Analysis to Find Improvement Opportunities

Once by-products and scrap are recorded consistently, production reporting becomes more useful.

Review:

  • Quantity Produced
  • Yield Percentage
  • Total Cost
  • Component Cost
  • Operation Cost
  • By-Product Total Cost
  • Production Duration
  • Employee Cost

Odoo's Production Analysis provides these measures for evaluating manufacturing performance.

The goal is not simply to produce reports.

Ask:

Which products generate the most scrap?

Which production lines have declining yield?

Which operations generate the most waste?

Which by-products have recoverable value?

These questions turn production data into operational decisions.

A Practical By-Product and Scrap Workflow in Odoo

A structured manufacturing process can follow:

BoM Design

Define Primary Product

Define Expected By-Products

Manufacturing Order

Production Operations

Identify Defects

Scrap Unusable Material

Record By-Products

Complete Manufacturing Order

Review Costs & Yield

Analyze Scrap

Improve Production Process

This approach connects production, inventory, quality and cost control.

Common By-Product and Scrap Mistakes

Treating Every Residual Material as Scrap

Some residual materials may have reusable or saleable value.

Not Defining By-Products on the BoM

Predictable secondary outputs become difficult to track consistently.

Recording Scrap Without a Reason

This makes root-cause analysis difficult.

Ignoring Cost Impact

Scrap can represent material, labor, machine and inventory-value losses.

Mixing Normal and Abnormal Scrap

Expected production loss should be evaluated differently from unusual waste.

Allowing Uncontrolled Scrap Adjustments

Scrapping should have appropriate operational and financial controls.

Not Reviewing Repeated Scrap

Recurring scrap is often a process-improvement opportunity.

Odoo By-Product and Scrap Implementation Checklist

Before going live, confirm that your manufacturing team has:

  • Classified primary products, by-products, reusable materials and scrap

  • Enabled the required By-Products functionality

  • Added predictable by-products to relevant BoMs

  • Defined operation-specific by-products where required

  • Created appropriate scrap locations

  • Defined scrap reasons

  • Established scrap approval rules

  • Tested scrap during manufacturing

  • Tested lot and serial tracking where applicable

  • Reviewed inventory valuation implications

  • Defined normal scrap expectations

  • Established yield KPIs

  • Tested production reporting

  • Assigned responsibility for significant scrap

  • Defined corrective-action procedures

Frequently Asked Question

1. What is a by-product in Odoo?

A by-product is a secondary product created during manufacturing alongside the main finished product. Odoo can track its quantity and inventory movement through the BoM and manufacturing order.

2. What is scrap in Odoo?

Scrap represents damaged, defective, or unusable materials or products that should be removed from available inventory. Odoo records them in a scrap or Inventory Loss location.

3. What is the difference between by-products and scrap?

By-products are usable secondary outputs that may have inventory value, while scrap represents material that is discarded or otherwise treated as a loss.

4. Can Odoo track by-products during manufacturing?

Yes. By-products can be added to a Bill of Materials with quantities and, when applicable, assigned to a specific production operation.

5. Can scrap be recorded during production in Odoo?

Yes. Odoo allows components or finished products to be scrapped during manufacturing workflows, with the scrap recorded separately from usable inventory.

6. Can Odoo track the reason for scrap?

Yes. Scrap orders can include a scrap reason, helping manufacturers analyze recurring defects, waste and production problems.

7. Can by-products have lot or serial numbers?

Yes. Where tracking is required, by-products can be recorded with lot or serial numbers to maintain traceability through inventory and manufacturing.

8. Does scrap affect inventory valuation?

Scrapping removes the item from available inventory and with the appropriate Inventory Loss configuration, the financial impact can also be reflected in accounting reports.

Conclusion

Manufacturing performance is not measured only by finished goods.

A production process can generate valuable by-products, recoverable materials, or costly scrap. If those outputs are not correctly represented in the ERP, management may have an incomplete picture of production efficiency and cost.

Odoo provides separate mechanisms for tracking by-products and scrapping unusable inventory. By-products can be defined on BoMs and recorded as production outputs, while scrap can be moved to Inventory Loss locations and analyzed as part of inventory control.

The practical approach is:

Define → Produce → Classify → Track → Cost → Analyze → Improve

When by-products and scrap are treated as part of the manufacturing process rather than as afterthoughts, Odoo can provide better visibility into material utilization, production yield, inventory accuracy and operational losses.

By-Products and Scrap in Odoo: Production, Cost and Control
Makdoom Mullani Odoo Sales Account Manager

About the Author

I am a B2B SaaS Sales Professional with 15+ years of experience working with enterprise and mid-market organizations. I specialize in strategic account management, customer success, and technology-driven business transformation. I work closely with business leaders to drive technology adoption, improve operational efficiency, and deliver measurable business outcomes through SaaS and retail technology solutions.
Book a Consultation

Share this post