Faulty & Wastage Stock: Scrap, Rework & Disposal Reporting – Developer's & Auditor's Nightmare
Complete masterclass on managing faulty stock quarantine, scrap, rework, and disposal in SAP QM, Oracle, Odoo & custom SQL Server ERPs. Includes Bangladeshi manufacturing scenarios – garments, pharma, electronics – with Taka cost impacts, DBA tricks, and AI trends.
1. What is Faulty & Wastage Stock? The Grey Areas Explained
Faulty stock refers to inventory that has failed quality inspection or has been damaged during production, storage, or transit. Wastage stock is a broader term that includes faulty stock plus by-products, offcuts, or expired materials that cannot be sold as standard products. The core challenge is that this stock exists in a limbo state – it's not sellable, but it still occupies warehouse space and must be accounted for.
1.1 The Three Disposition Paths
| Disposition | Description | ERP Action | Value Recovery |
|---|---|---|---|
| Scrap | No economic value; must be destroyed | Move to scrap location, write off value | Possibly sell as raw material |
| Rework | Can be repaired/reprocessed | Create rework order, track costs | Full or partial recovery |
| Return to Vendor | Supplier responsible for defect | Create return delivery, debit note | Credit or replacement |
| Accept with Deviation | Minor issues, use as-is | Usage decision with concession | Full value |
1.2 Why Faulty Stock is a Developer's Nightmare
From a developer's perspective, faulty stock management touches almost every module of an ERP system:
- Inventory Management – Stock must be moved to quarantine, blocked from picking, and tracked separately.
- Quality Management – Inspection results, usage decisions, and certificates must be linked to stock.
- Finance – Inventory valuation must be adjusted; disposal costs must be recorded; revenue leakage must be prevented.
- Production – Rework orders consume faulty stock; scrap reduces yield.
- Procurement – Vendor returns require debit notes and supplier performance tracking.
- Sales – Prevent faulty stock from being allocated to customer orders.
If any of these links break, the result is inventory bloating, inaccurate financials, and audit failures.
2. The Financial & Regulatory Impact in Bangladesh – Garments, Pharma & Electronics
Bangladesh's manufacturing sector loses billions of Taka annually due to poor faulty stock management. The impact varies by industry but is universally significant.
2.1 Garments Industry: Cut Piece Wastage
In Bangladesh's RMG (Ready-Made Garments) sector, fabric cutting generates significant wastage. For a typical order of 10,000 shirts, cutting wastage can range from 8-15% depending on the pattern efficiency and fabric quality. If this wastage is not properly tracked in the ERP, it becomes "invisible" – leading to inaccurate fabric consumption reports and inflated inventory.
Example: A garment factory in Gazipur processes 5,000 kg of cotton fabric daily. At 10% wastage, that's 500 kg of fabric scraps daily. If the ERP doesn't record this scrap properly, the system shows 500 kg more fabric in stock than physically exists. Over a month, this inflates inventory by 15,000 kg, valued at approximately ৳7.5 lakh.
2.2 Pharmaceutical Industry: Batch Rejection & Disposal
Pharmaceutical manufacturing in Bangladesh operates under strict DGDA regulations. A single rejected batch of antibiotics can cost ৳50-80 lakh in lost production. The disposal process is equally critical – pharmaceutical waste must be incinerated or chemically treated, with full documentation for DGDA compliance.
Regulatory Requirement: DGDA mandates that every rejected batch has a documented disposition: rework (if allowed), destruction (with witness signature), or return to API supplier. Without proper ERP tracking, pharma companies face license suspension or export bans.
2.3 Electronics Industry: Faulty IMEI Lots
For mobile phone manufacturers like Helio and Symphony, a "faulty IMEI lot" means a batch of phones that failed QC testing. These units must be quarantined immediately to prevent their IMEI numbers from being sold or activated. BTRC requires that faulty IMEI be reported and deactivated.
3. SAP QM: Quarantine, Usage Decision & Disposal Handling
SAP's Quality Management (QM) module is the most mature solution for faulty stock handling. It integrates inspection lots, usage decisions, and material movements to create a complete audit trail.
3.1 SAP QM Inspection Lot & Quarantine Process
When stock is flagged for inspection, SAP creates an inspection lot and moves the stock to a quality inspection location. This stock is blocked from normal picking and appears as "quality inspection stock" in reports.
3.2 SAP Usage Decision Codes
The usage decision determines what happens to the inspection lot. Common codes:
| Usage Decision Code | Description | Stock Movement | Valuation Impact |
|---|---|---|---|
| A | Accepted | QI → Unrestricted | Normal value |
| R | Rejected/Scrap | QI → Scrap location | Write off value |
| B | Rework | QI → Rework order | Additional cost tracking |
| C | Return to Vendor | QI → Return delivery | Vendor credit |
| D | Accept with Deviation | QI → Unrestricted | Concession record |
3.3 Scrapping in SAP – Movement Type 551
When a usage decision is "Rejected/Scrap", SAP uses movement type 551 to move stock from quality inspection to scrap. This automatically reduces inventory value and records the financial posting.
-- SAP Table: MSEG (Material Document Segment)
-- Scrap movement type 551 for faulty stock
SELECT mseg.mblnr, mseg.zeile, mseg.matnr, mseg.bwart, mseg.menge, mseg.werks
FROM mseg
WHERE mseg.bwart = '551' -- Scrap from inspection
AND mseg.menge > 0
ORDER BY mseg.mblnr;
3.4 Common SAP QM Challenges for Faulty Stock
- Usage decision not linked to inspection results – QC results must be automatically transferred to the inspection lot.
- Scrap location not properly configured – If the scrap storage location is not marked as non-valuated, scrap still appears in inventory valuation.
- Rework orders not tracked – Without a proper rework order, the costs of repair are not captured, and the stock history is incomplete.
- Vendor return processing delay – Faulty stock sits in QI location for months because the return delivery is not created promptly.
4. Oracle & Odoo: Defective Inventory Handling & Scrap Management
4.1 Oracle Inventory: Defective Subinventory & Scrap Transactions
Oracle handles faulty stock through subinventories and transaction types. A best practice is to create a dedicated defective subinventory (e.g., DEFECTIVE) that is non-asset (not included in valuation) and non-reservable (cannot be allocated to orders).
| Oracle Feature | Faulty Stock Application | Bangladesh Use Case |
|---|---|---|
| Defective Subinventory | Quarantine location for faulty stock | Garment factory's defective fabric pieces |
| Scrap Transaction Type | Move stock to scrap account | Pharma rejected tablets disposal |
| Rework Order | Track repair costs | Electronics rework of faulty IMEI phones |
| Vendor Return | Return to supplier for credit | Faulty raw API return |
4.2 Oracle Scrap Transaction Example
-- Oracle SQL: Scrap transaction for faulty stock
-- Move from defective subinventory to scrap account
DECLARE
l_transaction_id NUMBER;
BEGIN
l_transaction_id := INV_MATERIAL_TXN_PUB.SCRAP(
p_api_version => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_commit => FND_API.G_FALSE,
p_item_number => 'HELIO-A26-PRO',
p_subinventory => 'DEFECTIVE',
p_quantity => 500,
p_uom_code => 'EA',
p_scrap_account => 501
);
COMMIT;
END;
4.3 Odoo: Scrap Location & Rework Routes
Odoo provides a Scrap feature in the Inventory module. When a product is scrapped, it's moved to a virtual scrap location. For rework, Odoo uses Manufacturing Orders with a special "Rework" operation type.
- Scrap Location – Configure a virtual location like "Virtual Locations/Scrap" where scrapped items are moved.
- Rework Order – Create a manufacturing order of type "Rework" to consume faulty stock and produce repaired items.
- Quality Alerts – Use Odoo's Quality module to flag faulty stock and block it from delivery.
5. Custom SQL Server: Handling Faulty IMEI Lots & Disposal Reporting
For electronics manufacturers in Bangladesh using custom in-house ERP systems on SQL Server, faulty IMEI management requires careful database design, especially for serial-level tracking.
5.1 Database Schema for Faulty Stock Tracking
-- ============================================
-- FAULTY STOCK TRACKING SCHEMA (SQL Server)
-- ============================================
CREATE TABLE dbo.FaultyStock (
FaultyStockID BIGINT IDENTITY(1,1) PRIMARY KEY,
ItemCode NVARCHAR(50) NOT NULL,
BatchNumber NVARCHAR(50) NULL,
SerialNumber NVARCHAR(50) NULL, -- For IMEI or electronics serial
WarehouseCode NVARCHAR(10) NOT NULL,
Quantity DECIMAL(18,3) NOT NULL,
FaultyReason NVARCHAR(200) NOT NULL,
DetectionDate DATE NOT NULL,
DispositionStatus NVARCHAR(20) NOT NULL DEFAULT 'QUARANTINED',
-- QUARANTINED, SCRAPPED, REWORKED, RETURNED_TO_VENDOR, ACCEPTED_DEVIATION
DispositionDate DATE NULL,
DisposalCost DECIMAL(18,4) NULL,
RecoveryValue DECIMAL(18,4) NULL,
CreatedBy NVARCHAR(50) NOT NULL DEFAULT SYSTEM_USER,
CreatedDate DATETIME2 NOT NULL DEFAULT SYSDATETIME(),
CONSTRAINT FK_FaultyStock_Item FOREIGN KEY (ItemCode) REFERENCES dbo.ItemMaster(ItemCode)
);
CREATE INDEX idx_faulty_status ON dbo.FaultyStock(DispositionStatus);
CREATE INDEX idx_faulty_item ON dbo.FaultyStock(ItemCode);
CREATE INDEX idx_faulty_serial ON dbo.FaultyStock(SerialNumber) WHERE SerialNumber IS NOT NULL;
5.2 Stored Procedure for Faulty IMEI Quarantine
-- ============================================
-- SP: Quarantine faulty IMEI lot
-- ============================================
CREATE PROCEDURE dbo.sp_QuarantineFaultyIMEI
@BatchNumber NVARCHAR(50),
@FaultyReason NVARCHAR(200),
@QuarantineWarehouse NVARCHAR(10)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION;
-- Insert all serials from the batch into faulty stock
INSERT INTO dbo.FaultyStock (ItemCode, BatchNumber, SerialNumber, WarehouseCode, Quantity, FaultyReason, DetectionDate, DispositionStatus)
SELECT im.ItemCode, @BatchNumber, im.IMEINumber, im.WarehouseCode, 1, @FaultyReason, GETDATE(), 'QUARANTINED'
FROM dbo.IMEIMaster im
WHERE im.BatchNumber = @BatchNumber
AND im.Status = 'IN_STOCK';
-- Update IMEI status to quarantined
UPDATE dbo.IMEIMaster
SET Status = 'QUARANTINED', LastTransactionDate = GETDATE()
WHERE BatchNumber = @BatchNumber AND Status = 'IN_STOCK';
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
THROW;
END CATCH
END;
5.3 Disposal Reporting – The Auditor's Most Challenging Queries
Auditors require detailed reports on every scrap and disposal transaction. The most challenging queries include:
- Scrap rate by production batch – Which batches have the highest rejection rate?
- Disposal cost analysis – Transportation, treatment, certification costs per scrap event.
- Recovery value tracking – If scrap is sold as raw material, what is the recovery percentage?
- Vendor return aging – How long has faulty stock been waiting for vendor return?
- Rework success rate – What percentage of reworked items pass QC on second attempt?
-- ============================================
-- REPORT: Scrap rate by production batch with cost
-- ============================================
SELECT
fs.BatchNumber,
im.ItemCode,
im.ItemDescription,
COUNT(fs.FaultyStockID) AS faulty_units,
SUM(fs.Quantity) AS faulty_quantity,
SUM(fs.DisposalCost + fs.RecoveryValue) AS total_financial_impact,
DATEDIFF(DAY, fs.DetectionDate, ISNULL(fs.DispositionDate, GETDATE())) AS quarantine_days
FROM dbo.FaultyStock fs
JOIN dbo.ItemMaster im ON fs.ItemCode = im.ItemCode
WHERE fs.DetectionDate >= DATEADD(MONTH, -6, GETDATE())
GROUP BY fs.BatchNumber, im.ItemCode, im.ItemDescription
ORDER BY faulty_quantity DESC;
6. Common Operational Issues by Role: Developer, Architect, DBA, MIS, Auditor
6.1 ERP Developers
- Missing quarantine workflow – The ERP allows faulty stock to be picked for customer orders because no picking block is implemented.
- Incorrect valuation adjustment – When stock is scrapped, the finance module doesn't automatically post the write-off entry.
- Rework order BOM issues – The rework BOM doesn't include labor or overhead, leading to inaccurate rework cost calculation.
- Serial number complications – For IMEI lots, the developer must ensure that scrapped serials are permanently blocked and reported to BTRC.
6.2 ERP Architects
- Multi-plant disposal tracking – Scrap from one plant may be consolidated at another for disposal. Architecture must handle cross-plant transfers.
- Regulatory compliance integration – DGDA, BSTI, and BTRC each have different reporting requirements for disposal.
- Vendor return workflow – Must integrate with procurement module for debit notes, supplier performance, and replacement tracking.
- Scalability of faulty stock records – Millions of faulty IMEI records require partitioned tables and efficient indexing.
6.3 DBAs
| DBA Issue | Impact | Solution |
|---|---|---|
| High INSERT on FaultyStock table | Lock contention during bulk quarantine | Use bulk insert with minimal logging |
| Slow disposal reports | Auditor queries time out | Materialized views for common reports |
| Index fragmentation | Performance degradation | Schedule index rebuild on faulty stock tables |
| Transaction log growth | Storage exhaustion | Batch commits for bulk scrap operations |
| Concurrency on rework orders | Deadlocks | Optimistic locking, row-level isolation |
6.4 MIS / Reporting Teams
- Scrap rate dashboards – Need real-time visibility into scrap rates by line, shift, and product.
- Disposal compliance reports – Monthly DGDA/BSTI compliance reports with full audit trail.
- Revenue leakage analysis – Identify where faulty stock could have been returned to vendor but was scrapped instead.
- Quarantine aging reports – How long has faulty stock been sitting in quarantine? Older than 30 days is a red flag.
6.5 Auditors
- Segregation of duties – Can the same person create a scrap order AND approve it? This is a control weakness.
- Complete audit trail – Every scrap transaction must have: who, what, when, why, and authorization.
- Valuation accuracy – Is the scrap value correctly written off? Are disposal costs properly capitalized or expensed?
- Fraud detection – Unusual patterns: excessive scrap during specific shifts, scrap without QC documentation, or disposal without witness signatures.
7. Real-World Bangladeshi Business Scenarios
7.1 Scenario 1: Garment Factory – Invisible Cutting Wastage
Company: Prime Apparel Ltd., a large RMG exporter in Gazipur, producing t-shirts for European brands.
Situation: The factory processes 8,000 kg of cotton knit fabric daily. The cutting section reports 10% wastage, but the ERP shows only 6% wastage because offcuts are not properly recorded. The 4% difference (320 kg/day) accumulates as "ghost inventory" in the system.
Impact: Over a month, the system shows 9,600 kg more fabric than physically exists. This triggers incorrect reordering, increases holding costs, and distorts production efficiency reports.
Resolution: Implemented mandatory scrap recording at each cutting station using barcode scanning. The ERP now automatically calculates wastage percentage per cutting order. Wastage is moved to a scrap location in real-time, eliminating ghost inventory.
7.2 Scenario 2: Pharmaceutical – Batch Rejection and Rework Decision
Company: Bengal Pharma Ltd., a leading antibiotic manufacturer in Dhaka.
Situation: Batch #AB-2026-089 (50,000 units of amoxicillin suspension) failed QC due to slightly low viscosity. The QC team needed to decide: scrap or rework?
Rework Analysis:
- Rework cost: Additional mixing, re-testing, labor = ৳4.5 lakh
- Scrap cost: ৳38 lakh loss (material + production costs) + ৳2 lakh disposal
- Rework success probability: 85% (viscosity can be corrected by adding stabilizer)
Decision: Rework. The batch was reworked successfully, saving ৳35 lakh compared to scrapping.
ERP Challenge: The custom ERP did not have a proper rework order type. Developers had to create a custom "rework" production order that tracked: additional material consumption, labor hours, QC retest results, and final yield. The rework order was linked to the original production order for full genealogy.
7.3 Scenario 3: Electronics – Faulty IMEI Lot Quarantine
Company: Helio Bangladesh Ltd., smartphone manufacturer.
Situation: A batch of 5,000 phones (Batch #HEL-A26-2026-09) had a defective camera module. QC detected the issue during final inspection. 1,200 phones were flagged as faulty.
Critical Actions:
- Immediate IMEI quarantine – All 1,200 IMEI numbers were blocked in the ERP, preventing sale or activation.
- BTRC notification – IMEI list submitted to BTRC for temporary deactivation.
- Rework decision – 800 phones could be repaired by replacing the camera module (cost: ৳450/unit). 400 phones had additional motherboard damage and were scrapped.
- Vendor claim – The camera module supplier was notified; 1,200 camera modules were returned for credit (৳180/module).
Financial Impact: Total cost of faulty batch: ৳7.2 lakh (rework) + ৳2.4 lakh (scrap write-off) - ৳2.16 lakh (vendor credit) = ৳7.44 lakh net loss. Without proper IMEI quarantine, the loss could have been 5x higher due to customer returns and warranty claims.
7.4 Scenario 4: Food Processing – Expired Stock Disposal
Company: Dhaka Foods Ltd., a spice and snack manufacturer.
Situation: 2,000 kg of turmeric powder (Batch #TF-2026-01-15) expired on September 1, 2026. The stock was in the finished goods warehouse.
Disposal Process:
- Stock moved to quarantine location in ERP, blocked from sale.
- Disposal approved by QA manager and finance controller (segregation of duties).
- Disposal method: incineration at approved waste treatment facility.
- Disposal cost: ৳12,000 (transport + incineration fee).
- Disposal certificate obtained from waste facility for BSTI compliance.
Financial Recording:
- Inventory write-off: ৳6 lakh (2,000 kg × ৳300/kg)
- Disposal cost: ৳12,000
- Total loss: ৳6.12 lakh
ERP Requirement: The ERP must track disposal documentation, link the disposal certificate to the stock record, and generate a BSTI-compliant disposal report.
8. Workflow Diagrams & Best Practices
8.1 Faulty Stock Disposition Workflow
8.2 Scrap Disposal & Reporting Workflow
8.3 Best Practices Checklist for Faulty Stock Management
- Always quarantine first – Move faulty stock to a dedicated quarantine location immediately upon detection. Never leave it in normal picking locations.
- Automate picking block – Configure the ERP to automatically block quarantined stock from sales orders, production orders, and transfers.
- Document disposition decision – Every faulty item must have a formal disposition: scrap, rework, return, or accept with deviation.
- Track disposal costs – Include transportation, treatment, certification, and labor in disposal cost tracking.
- Maintain full audit trail – Who detected, who approved, who executed, and who verified each disposition.
- Generate compliance reports – DGDA for pharma, BSTI for food, BTRC for electronics – each has specific reporting requirements.
- Monitor quarantine aging – Faulty stock older than 30 days indicates a bottleneck in disposition processing.
- Integrate with finance – Automatic valuation adjustments for scrap, rework cost accrual, and vendor credits.
- Use serial-level tracking for electronics – Each faulty IMEI must be individually tracked and reported to BTRC.
- Conduct monthly scrap analysis – Identify trends by product, line, shift, and operator to drive quality improvement.
8.4 Common Mistakes to Avoid (Dos & Don'ts)
| ✅ DO | ❌ DON'T |
|---|---|
| Quarantine immediately upon detection | Leave faulty stock in normal picking location |
| Track disposal costs separately | Include disposal costs in general overhead |
| Block faulty IMEI from activation | Allow faulty IMEI to enter distribution |
| Document vendor return with debit note | Scrap without exploring vendor claim |
| Maintain segregation of duties | Allow same person to create and approve scrap |
| Generate monthly scrap analysis reports | Review scrap only at year-end audit |
| Use barcode scanning for scrap entry | Manual entry of scrap quantities |
| Link disposal certificates to stock records | Store disposal docs outside ERP |
9. AI & Future Trends in Faulty Stock Management
Artificial intelligence is transforming how manufacturers predict, detect, and manage faulty stock. In Bangladesh's competitive manufacturing environment, AI adoption is becoming a key differentiator.
9.1 AI Applications in Faulty Stock Management
| AI Capability | Faulty Stock Application | Bangladesh Impact |
|---|---|---|
| Predictive Quality Analytics | ML models predict batch failure probability based on raw material quality, machine parameters, and environmental conditions | Reduces garment cutting wastage by 15% |
| Computer Vision Inspection | Automated visual inspection of garments, pharma tablets, and electronic components | Catches defects 10x faster than manual QC |
| Anomaly Detection | Identifies unusual scrap patterns that may indicate fraud or equipment malfunction | Detects scrap fraud in garment factories |
| Disposition Optimization | AI recommends scrap vs. rework vs. vendor return based on cost analysis and recovery probability | Optimizes pharma batch disposition |
| Natural Language Processing | Extracts fault descriptions from QC logs and maintenance records | Improves fault categorization and trend analysis |
9.2 AI-Powered Scrap Rate Prediction
For a garment factory, AI models can predict daily cutting wastage based on:
- Fabric type and quality parameters
- Cutting machine settings and blade sharpness
- Operator experience level
- Pattern complexity
- Ambient temperature and humidity
This allows the factory to adjust settings proactively, reducing wastage by 15-20%.
9.3 Blockchain for Disposal Compliance
For pharmaceutical disposal, blockchain can provide an immutable record of the entire disposal chain: from quarantine → approved disposal → transportation → incineration → certificate issuance. DGDA auditors can verify this chain without relying on manual records.
10. Frequently Asked Questions & Expert Answers
These questions address the most common challenges in faulty stock, scrap, rework, and disposal management for Bangladeshi manufacturers.

0 Comments
thanks for your comments!