Project · Independent project, Aug – Oct 2026
Cost Optimization with Linear Programming
Choosing the cheapest kiln-fuel mix across a cement producer's four plants.
- Rs 794 mn
- saved a year (4.0%)
- Rs 1,361
- per GJ, from Rs 1,418
- 4 × 6
- plants and fuel sources
- 8
- scenarios tested
A cement kiln needs a fixed amount of heat for every tonne of clinker, and that heat can come from several coals or from alternative fuels like rice husk and shredded tyres.
Using public data for a listed Pakistani cement producer with four plants, I built a linear program that picks the cheapest delivered mix for each plant. It has to meet every kiln's heat demand, keep the coal blend no higher in sulphur than today, and stay within supply limits. I checked the result with a second solver, rebuilt the model in Excel Solver, and tested it under eight scenarios.
The cheapest mix, plant by plant
The optimized mix is 4.0% cheaper than using the company-wide FY2025 mix at every plant, Rs 19.76 bn down to Rs 18.97 bn a year. About Rs 472 million of that comes from sending each plant its nearest coal, and Rs 322 million from burning more biomass and tyre fuel.
- FY25 fuel mix
- Optimized mix
Tap or hover on a plant to read it. Arrow keys work too.
Fuel cost per GJ of kiln heat, model year FY2025. The FY25 mix is the company-wide mix used at every plant. Supply limits and alternative-fuel prices are simulated.
Show the numbers
| Plant | FY25 mix (Rs per GJ) | Optimized (Rs per GJ) | Change |
|---|---|---|---|
| Wah | 1,421 | 1,298 | -8.7% |
| Jhang Bahtar | 1,414 | 1,333 | -5.7% |
| Nizampur | 1,412 | 1,375 | -2.7% |
| Dera Ghazi Khan | 1,432 | 1,418 | -1.0% |
| All plants | 1,418 | 1,361 | -4.0% |
What the model changes
- No imported coal is worth buying. Salt Range coal goes to the three northern plants, and most Balochistan coal goes to Dera Ghazi Khan.
- Wah saves the most (8.7%) and Dera Ghazi Khan the least (1.0%). The coal nearest to Dera Ghazi Khan is high in sulphur, so it still needs Afghan coal hauled a long way.
- The sulphur limit binds at all four plants. One more tonne of tyre-derived fuel would save about Rs 30,645, of biomass Rs 5,675, and of Salt Range coal Rs 2,308.
Scenarios
I re-solved the model with one input changed at a time. Losing Afghan coal adds Rs 1.03 bn a year (5.4%); that really happened when the border closed in October 2025. Local coals are high in sulphur, so the model then has to bring in about 153,000 t of imported coal. The saving holds up when coal prices move, and it grows when freight gets more expensive.
- Bill goes up
- Bill goes down
Tap or hover on a scenario to read it. Arrow keys work too.
Change in the optimized annual fuel bill against the base case (Rs 18.97 bn), re-solving with one input changed at a time.
Show the numbers
| Scenario | Optimized bill (Rs bn a year) | Rs per GJ | Change against base |
|---|---|---|---|
| Coal prices +10% | 20.63 | 1,480 | 8.7% |
| Afghan coal unavailable | 20.00 | 1,435 | 5.4% |
| Freight rates +25% | 19.18 | 1,376 | 1.1% |
| Alt-fuel cap 10% of heat | 19.17 | 1,375 | 1.1% |
| Alt-fuel cap 20% of heat | 18.96 | 1,360 | -0.04% |
| Biomass and tyre supply +50% | 18.70 | 1,342 | -1.4% |
| Coal prices -10% | 17.31 | 1,242 | -8.7% |
How much alternative fuel helps
Raising the cap on alternative fuels barely helps, because biomass and tyre supply runs out first. The cost stops falling from about a 14% cap.
Tap or hover on the chart to read each cap. Arrow keys work too.
Optimized fuel cost per GJ of kiln heat as the cap on alternative fuels (their share of kiln heat) moves from 5% to 25%.
Show the numbers
| Cap (share of kiln heat) | Optimized cost (Rs per GJ) |
|---|---|
| 5% | 1,401.12 |
| 6% | 1,395.98 |
| 7.000000000000001% | 1,390.84 |
| 8% | 1,385.71 |
| 9% | 1,380.57 |
| 10% | 1,375.43 |
| 11% | 1,370.29 |
| 12% | 1,365.16 |
| 13% | 1,361.94 |
| 14.000000000000002% | 1,361.42 |
| 15% | 1,360.91 |
| 16% | 1,360.57 |
| 17% | 1,360.53 |
| 18% | 1,360.50 |
| 19% | 1,360.47 |
| 20% | 1,360.43 |
| 21% | 1,360.40 |
| 22% | 1,360.36 |
| 23% | 1,360.33 |
| 24% | 1,360.30 |
| 25% | 1,360.26 |
What I did
- Built a multi-plant fuel-blending linear program in R (lpSolve): heat, sulphur, alternative-fuel and supply constraints
- Built the dataset from company reports and published fuel data, tagging every number as verified, calculated, assumed or simulated
- Checked the optimum with a second solver (GLPK) and confirmed the shadow prices by re-solving
- Rebuilt the model in Excel Solver with formulas and a reconciliation to R
- Ran scenario and sensitivity analysis and made the charts in ggplot2
Read this first
This is an independent project built from public data. It isn't affiliated with the company, and the optimized mix is not its actual procurement plan. Supply limits and alternative-fuel prices are simulated, so the saving is a modeled result.