Technical Lab · 0084

Odoo for steel re-rolling mills and light engineering workshops.

Bangladesh's steel re-rolling mills convert scrap and billet into the rod and bar that feed the country's construction boom, running a continuous-process operation where input cost volatility and mill yield determine profitability more than almost anything else. A short distance away on the shop floor spectrum sit light engineering workshops, machine shops and fabrication units serving other factories with one-off spare parts and custom assemblies, which need an almost entirely different ERP configuration despite sharing the same raw material (steel). This guide covers both, and where the line between them falls inside Odoo.

Bangladesh's Re-Rolling & Light Engineering Sector

Bangladesh's steel industry sits almost entirely on the re-rolling model rather than integrated primary steelmaking: mills including BSRM, GPH Ispat, Abul Khair Steel, KSRM, and a large tier of smaller regional mills melt scrap in induction or electric arc furnaces (or buy billet directly) and roll it into rod, bar, angle, and structural sections that supply the country's construction sector, which has grown consistently with urbanization in Dhaka, Chattogram, and the industrial corridors around them. Alongside this sits a much less consolidated light engineering layer: machine shops, fabrication workshops, and spare-parts manufacturers who serve RMG factories, food processing plants, and the mills themselves with custom parts, replacement components, and small fabricated assemblies.

These two segments share a raw material family but need almost opposite ERP configurations. A re-rolling mill is continuous-process manufacturing at scale against a narrow set of standard products (a handful of rod diameters and steel grades), where the core management questions are yield, fuel efficiency, and input cost timing. A light engineering workshop is job-shop manufacturing against an effectively unlimited set of one-off specifications, where the core management question is whether each individual job was actually profitable once real labor and machine time are counted. The general routing and work center concepts that apply to both, and to Bangladesh manufacturing generally, are covered in Odoo Manufacturing Routing Bangladesh and the broader manufacturing module setup in Odoo Manufacturing Module Setup Bangladesh, but the way those concepts get applied diverges sharply between the two business models, covered section by section below.

Finished rod and bar in Bangladesh must also meet Bangladesh Standards and Testing Institution (BSTI) grade specifications, most commonly 500W and 500 grade TMT (thermo-mechanically treated) bar, which carry defined tensile strength, elongation, and rib pattern requirements that buyers and government infrastructure projects check against mill test certificates before accepting a shipment. A mill's Odoo setup should record the BSTI grade and the corresponding batch test certificate reference against each finished lot, the same lot that already carries the input billet genealogy and yield data, so that a specific delivery's compliance documentation can be pulled directly from the system rather than cross-referenced manually from a separate lab test register when a buyer or a government tender inspector asks for it.

96–98.5%
Billet-to-Rod Yield
Typical conversion yield for a well-run mill rolling clean billet into finished rod
40–50%
Input Cost Share
Approximate share of finished product cost attributable to scrap/billet alone
Tons/hr
Standard Mill KPI
Rolling mill throughput is measured and capacity-planned in tons per hour, not units per shift

Scrap and Billet Input Costing

Scrap steel and billet prices are among the most volatile input costs in Bangladesh manufacturing, moving with international scrap indices (heavy melting scrap benchmarks out of the Turkish and Southeast Asian markets set the tone that Bangladesh import pricing tracks), freight rates, and BDT/USD exchange movement, sometimes shifting materially within a single month. A mill that costs its rolled output using a single blended average across all scrap or billet in stock will systematically misprice product made from an unusually cheap or unusually expensive purchase lot, which matters enormously in a business where margin per ton is already thin and highly sensitive to input timing.

The correct configuration in Odoo tracks each scrap or billet consignment as a distinct lot under Inventory > Configuration > Settings > Traceability, with its actual landed cost recorded through the Landed Costs feature (covering freight, wharfage at Chattogram port for imported billet, and any applicable customs duty). Depending on the mill's actual purchasing pattern, either FIFO costing (which reflects true cost sequence when input batches are large and distinct) or a periodically-revised average cost (more practical when scrap arrives continuously in smaller mixed lots from local scrap dealers) is configured at the product category level under Inventory > Configuration > Product Categories. What matters is that whichever method is chosen, it is chosen deliberately and reviewed against actual input cost swings, rather than left on Odoo's default and forgotten, since the default behavior may not match how volatile this particular input actually is.

Practical Shortcut

Mills sourcing scrap from many small local dealers rather than a few large import contracts should resist the temptation to create a separate lot for every few-ton delivery. Group same-week, same-grade scrap receipts into weekly costing lots instead. This keeps the lot count manageable while still capturing the cost volatility that actually matters, which is week-to-week and month-to-month movement, not delivery-to-delivery noise.

Rolling Mill Routing: Furnace to Cooling Bed

A rolling mill's production flow is a fixed sequence of distinct physical stages, each with its own capacity ceiling and its own dominant cost driver, and each should be its own work center under Manufacturing > Configuration > Work Centers rather than a single generic "rolling" operation.

Stage 1
Reheating furnace
Billet or pre-rolled scrap is heated to rolling temperature (typically 1100-1200°C). Furnace fuel, mostly natural gas under current industrial gas tariffs, is the dominant cost driver at this stage and the main source of mill scale (oxidation) loss.
Stage 2
Roughing mill stand
Initial reduction passes bring the heated billet down toward intermediate size. Roll wear and stand changeover time are the main capacity constraints here.
Stage 3
Intermediate mill stands
Successive passes continue reducing cross-section toward final diameter. Throughput (tons per hour) is set largely by stand speed matching across this sequence.
Stage 4
Finishing mill stand
Final sizing pass produces the target rod or bar diameter and section profile to spec.
Stage 5
Cooling bed & bundling
Rolled product is air- or water-cooled, cut to length, bundled, and weighed, generating the actual output weight used in yield calculation.

Each work center's capacity is expressed in tons per hour rather than piece count, matching how mills actually plan shifts and schedule production. Attaching furnace fuel cost as a cost-per-ton or cost-per-hour figure on the reheating furnace work center's costing tab, and roll/stand maintenance cost as a per-ton figure on the rolling stands, means a manufacturing order rolled through the full sequence accumulates a realistic allocated cost at each stage rather than a single blended "conversion cost" figure that hides which stage is actually expensive.

Yield / Conversion Ratio Tracking

Yield, the ratio of finished product weight to input billet or scrap weight, is the single most important operational KPI in a re-rolling mill, because the loss (mill scale from oxidation during reheating, crop ends trimmed from the leading and trailing edge of each bar, and any rejected out-of-tolerance product) is pure margin erosion on an input that already represents 40 to 50 percent of finished cost. A mill rolling clean, consistent billet typically achieves 96 to 98.5 percent yield to finished rod. A mill melting its own mixed scrap through an induction or arc furnace first sees materially lower overall yield from raw scrap through to finished rod, commonly 85 to 90 percent, because melting losses (slag, oxidation during the melt itself) stack on top of the rolling-stage loss.

96–98.5%
Clean Billet → Rod
Yield when rolling purchased billet directly
85–90%
Raw Scrap → Rod
Overall yield when melting mixed scrap in-house before rolling
1–2%
Yield Swing = Margin Swing
A one to two point yield change moves bottom-line margin meaningfully at mill scale

In Odoo, yield tracking is set up by recording actual output weight at the cooling bed work order against the actual input weight consumed at the furnace stage for the same manufacturing order, using the Manufacturing app's actual component consumption versus BOM standard quantity comparison. Tracked by shift, by billet source or scrap grade, and by furnace operator, this turns yield from a number finance calculates once a month from aggregate tonnage figures into a live operational signal that a production manager can act on the same week a specific furnace setting or scrap grade starts underperforming.

Light Engineering: Make-to-Order Job Costing

Light engineering workshops, machine shops fabricating custom brackets, replacement gears, or conveyor parts for RMG and food processing factories, or general fabrication units building tanks, structural steel, or custom equipment, need a fundamentally different Odoo setup from a re-rolling mill, even though both consume steel as a primary input. Where a mill runs standard products at continuous volume, a workshop runs make-to-order (MTO) jobs where every order can have a unique specification, a unique one-off routing through cutting, turning, milling, welding, and finishing work centers, and a unique bill of materials that often does not exist as reusable master data at all.

01

MTO route on sales order

Each customer job triggers its own Manufacturing Order directly from the Sales Order under the Make-to-Order route, rather than drawing from forecasted stock.

02

Job-specific BOM

A one-off BOM is created per job specification rather than maintained as standing catalog data, reflecting the actual custom nature of the work.

03

Actual labor & machine time booking

Operators log actual time against each work center per job (lathe, mill, welding bay) so true job cost, not an estimated quote, is what gets compared against the invoiced price.

04

Per-job margin reporting

Odoo's Manufacturing Order cost analysis surfaces actual versus quoted cost per job, the single most useful report a workshop owner never had on paper before.

A re-rolling mill loses money one basis point of yield at a time. A light engineering workshop loses money one underquoted job at a time. Neither loss shows up without actual cost tracked at the point where the work actually happens.

Barcode-driven data capture at each work center, whether that is a mill's cooling bed weighing station or a workshop's individual machine bays, closes the gap between what the ERP assumes happened and what actually happened on the shop floor, a discipline covered in more general terms in Odoo Barcode & Warehouse Scanning Bangladesh, and one that pays for itself faster in job-shop environments than almost anywhere else, since a workshop without accurate time booking per job is, in cost terms, flying blind on every single order it accepts.

Spare parts inventory adds a second layer of complexity for light engineering workshops that both fabricate custom jobs and stock a catalog of common replacement parts (bearings, belts, standard fasteners, gaskets) for repeat customers. This dual nature, part make-to-order job shop and part make-to-stock spares distributor, is handled in Odoo by running two distinct routes side by side on the same database: an MTO route for custom fabrication jobs as described above, and a standard reordering-rule-driven make-to-stock route for catalog spare parts under Inventory > Configuration > Reordering Rules, so that a workshop does not force every repeat bearing sale through a full custom manufacturing order, while still capturing true job cost on the fabrication work that actually needs it.

Subcontracted operations are also common in this sector on both sides of the divide: mills sometimes subcontract galvanizing or specific finishing treatments to external processors, and light engineering workshops routinely subcontract heat treatment, chrome plating, or CNC operations they do not have in-house capacity for. Odoo's subcontracting BOM mechanics, where a component is sent to a vendor and returned as a semi-finished or finished input to the next production step, apply here just as they do in the RMG job-work context, and the cost of the subcontracted operation (vendor invoice plus any freight to and from the subcontractor) rolls into the finished job or product cost the same way an in-house operation's labor and machine time would.

Costing a Ton of Finished Rod End to End

Bringing the pieces together for a mill, the true cost of a ton of finished rod in Odoo rolls up through the actual lot cost of the billet or scrap consumed (landed cost included), furnace fuel allocated per ton processed, rolling stand wear and labor allocated per ton across the roughing, intermediate, and finishing stages, and the yield-adjusted effective input cost (a mill running at 97 percent yield needs roughly three percent more input tonnage per ton of finished product than one running at 100 percent, a difference that compounds directly into effective cost per ton sold). This end-to-end roll-up, refreshed against actual input costs and actual yield rather than a static standard cost set once a year, is what lets mill management price against real-time scrap market movement with confidence instead of a rule-of-thumb markup that either leaves margin on the table when input prices fall or erodes margin unnoticed when they rise.

One further point worth flagging for management evaluating an ERP investment in this sector: the payback case for a mill is almost always built on yield and fuel visibility rather than on the general efficiency gains a typical ERP pitch leads with. A one percentage point yield improvement on a mid-size mill rolling several thousand tons a month is worth far more in a single year than the entire cost of a well-executed Odoo implementation, which is the argument that tends to actually move a mill-owning family to invest, more than any generic promise of "better visibility."

Steel & Metal Manufacturing Consultation

If your mill is still averaging scrap cost across volatile purchase lots, treating the furnace and rolling stands as one undifferentiated cost pool, or your workshop is quoting jobs without ever finding out what they actually cost to produce, I can configure Odoo's lot costing, work centers, and MTO job routing to match how your operation actually runs. Contact me for a strategy session →

Frequently asked questions

How do you cost scrap and billet input in Odoo for a steel re-rolling mill?

Scrap and billet should be tracked using Odoo's Lot/Serial tracking combined with either FIFO or a landed-cost-adjusted average costing method, configured under Inventory > Configuration > Settings > Traceability and the product category's costing method. Because scrap steel and billet prices are genuinely volatile, often moving week to week with international scrap indices and local currency movement, a mill that uses a single blended average cost across all inventory will misprice output made from a specific expensive or cheap purchase lot. Recording each scrap or billet consignment as its own lot with its actual landed cost (including freight, wharfage, and any import duty where billet is imported) lets the rolling mill's output costing reflect what that specific batch actually cost to acquire, not a stale average.

How is a rolling mill's production routing modeled in Odoo?

The rolling mill routing is built as a sequence of work centers under Manufacturing > Configuration > Work Centers and Routings, typically: reheating furnace (billet or scrap brought to rolling temperature), roughing mill stand, intermediate mill stands, finishing mill stand, and cooling bed. Each work center carries its own capacity (tons per hour is the standard mill KPI) and its own cost driver (furnace fuel, usually natural gas, is the dominant cost at the reheating stage, while stand wear and roll changes drive cost at the rolling stages). Modeling these as separate sequential work centers rather than one lump "rolling" operation is what lets a mill see which specific stage is actually constraining throughput on a given shift.

What is a normal yield or conversion ratio for a Bangladesh re-rolling mill?

Well-run Bangladesh re-rolling mills processing billet into rod or bar typically achieve a yield (finished product weight divided by input billet weight) in the range of 96 to 98.5 percent, since the main loss is mill scale (oxidation loss during reheating) and crop ends trimmed from each bar. Mills processing lower-quality mixed scrap through their own induction or arc furnace into billet first, before rolling, see meaningfully lower overall yield from raw scrap to finished rod, commonly in the 85 to 90 percent range, because scrap melting itself carries a higher loss than rolling an already-clean billet. Tracking this ratio by shift and by input source in Odoo is the single most direct way to see whether a yield problem originates in melting, reheating, or rolling.

How does a light engineering workshop's Odoo setup differ from a re-rolling mill's?

A re-rolling mill runs continuous-process manufacturing against a small number of standard products (specific rod diameters and grades) at high volume, so standard BOMs and routings with well-established yield benchmarks fit well. A light engineering workshop instead runs make-to-order job costing, where each customer job has its own specification, its own one-off routing through cutting, machining, welding, and finishing work centers, and its own material list. In Odoo this is handled with Manufacturing Orders linked to Sales Orders under a Make-to-Order (MTO) route, with job-specific BOMs created per order rather than maintained as standing master data, and actual labor and machine time booked against each job to produce a true per-job cost rather than a standard product cost.

Can Odoo track furnace fuel cost per ton of rolled steel?

Yes, by attaching a cost-per-hour or cost-per-ton figure to the reheating furnace work center under its costing configuration, so that every manufacturing order routed through the furnace picks up a proportional fuel cost based on time in the furnace or tonnage processed. This is important in Bangladesh because reheating furnace fuel is typically the largest single cost component in the rolling process after the billet or scrap itself, and a mill that leaves furnace fuel as unallocated factory overhead loses the ability to see which product sizes or which furnace operating patterns are actually most fuel-efficient per ton produced.