Knowledge / Production and Industrial Engineering / Forecasting and aggregate planning

Forecasting and aggregate planning

Production and Industrial Engineering (B.E./B.Tech) · Industrial engineering · free study notes for exams, placements and interviews

In short

Forecasting estimates future demand from past data and judgement; aggregate planning converts that forecast into a 6-18 month plan for total output, workforce, overtime, subcontracting, inventory and backorders at the product-family level (in "aggregate units" or standard labour hours), before it is disaggregated into a Master Production Schedule. Together they decide how much capacity a plant commits to and therefore most of its medium-term cost. They are standard in AICTE/CBCS Industrial Engineering and Operations Management syllabi and carry 4-8 marks in GATE PI/ME under "Production Planning and Inventory Control" - usually as a smoothing, regression, seasonal-index or least-cost aggregate-plan numerical. In Indian industry the same arithmetic drives monthly S&OP meetings at Maruti Suzuki, Tata Motors, Hindustan Unilever, Asian Paints, Amul and ITC, and is the core of planning roles on SAP APO/IBP, Oracle Demantra and Kinaxis.

Explained

What demand data looks like, and what is forecastable

Qualitative (judgemental) methods

Quantitative methods: time-series averaging and smoothing

Trend, regression and seasonality

Measuring and controlling forecast error

Aggregate planning: purpose, inputs and pure strategies

Techniques for solving an aggregate plan

Key points

Formulas and examples

Moving average: F(t+1) = [D(t) + D(t−1) + ... + D(t−n+1)] / n (D = demand in units, n = periods)
Weighted MA: F(t+1) = Σ wᵏ D(t−k+1), with Σ wᵏ = 1
Simple exponential smoothing: F(t+1) = αD(t) + (1−α)F(t) = F(t) + α·e(t), 0 < α < 1
Holt's double smoothing: L(t) = αD(t) + (1−α)[L(t−1)+T(t−1)]; T(t) = β[L(t)−L(t−1)] + (1−β)T(t−1); F(t+m) = L(t) + m·T(t)
Holt-Winters (multiplicative): F(t+m) = [L(t) + m·T(t)] × S(t+m−s), s = season length
Least-squares trend: D = a + bt; b = [nΣtD − ΣtΣD]/[nΣt² − (Σt)²]; a = D̄ − b·t̄. With coded t so Σt = 0: b = ΣtD/Σt², a = ΣD/n
Seasonal index Iₖ = average(actual ÷ centred moving average) for season k, normalised so ΣI = s; Forecast = trend × Iₖ
Errors: e = D − F; MAD = Σ|e|/n; MSE = Σe²/n; MAPE = (100/n)·Σ|e/D| %; CFE = Σe; Tracking signal = CFE/MAD; σ ≈ 1.25 MAD
Aggregate plan costs (₹): Total = Σ[regular-time + overtime + subcontract + hiring + layoff + holding + backorder]
Workers needed in a period = (units required × standard hours per unit) / (working hours per worker in the period)
Inventory balance: I(t) = I(t−1) + P(t) − D(t); cumulative production ≥ cumulative demand for no shortage

Example 1 - moving average, weighted MA, SES and error measures. Monthly demand of a pump (units): Jan 420, Feb 450, Mar 435, Apr 480, May 465. Forecast June.

F(Feb) = 420 + 0.2(420 − 420) = 420.0 F(Mar) = 420 + 0.2(450 − 420) = 426.0 F(Apr) = 426 + 0.2(435 − 426) = 427.8 F(May) = 427.8 + 0.2(480 − 427.8) = 438.24 F(Jun) = 438.24 + 0.2(465 − 438.24) = 443.6 units

CFE = 117.96; MAD = 117.96/4 = 29.49; MSE = (900 + 81 + 2,724.84 + 716.10)/4 = 4,421.94/4 = 1,105.5; RMSE = 33.25. MAPE = 100/4 × (30/450 + 9/435 + 52.2/480 + 26.76/465) = 25 × (0.06667 + 0.02069 + 0.10875 + 0.05755) = 25 × 0.25366 = 6.34%. Tracking signal = 117.96/29.49 = +4.0 - all errors positive, the model is lagging a rising trend and is on the control limit. Raise α or switch to Holt's method.

Example 2 - least-squares trend and seasonal indices. Quarterly demand of a ceiling fan family (thousand units): Q1 60, Q2 100, Q3 70, Q4 50; annual total 280, average 70.

ΣD = 1,350 → a = 1,350/5 = 270. ΣtD = (−2)(240) + (−1)(258) + 0 + (1)(280) + (2)(300) = −480 − 258 + 0 + 280 + 600 = 142 → b = 142/10 = 14.2 thousand units per year.

Example 3 - level versus chase plan (full cost comparison). Four-month forecast (units): M1 1,200; M2 1,600; M3 2,000; M4 1,200 - total 6,000. One worker makes 100 units/month. Opening workforce 12, opening inventory 0, closing inventory may be 0. Costs: regular time ₹18,000 per worker-month; hiring ₹6,000 per worker; layoff ₹10,000 per worker; holding ₹60 per unit per month on closing stock. No shortages allowed.

*Level plan:* 6,000/4 = 1,500 units/month → 15 workers throughout; hire 3 at the start.

MonthProductionDemandClosing stock
M11,5001,200300
M21,5001,600200
M31,5002,000−300 → shortage
M41,5001,2000

Production 1,600, 1,600, 1,600, 1,200 = 6,000. Closing stock: 400, 400, 0, 0 → total stock-months 800. Hiring = 4 workers × ₹6,000 = ₹24,000. Layoff at M4 = 4 × ₹10,000 = ₹40,000. Regular time = (16 + 16 + 16 + 12) × ₹18,000 = 60 × 18,000 = ₹10,80,000. Holding = 800 × ₹60 = ₹48,000. Total = 10,80,000 + 24,000 + 40,000 + 48,000 = ₹11,92,000.

*Chase plan:* workers = demand/100 → 12, 16, 20, 12. Regular time = (12 + 16 + 20 + 12) × ₹18,000 = 60 × 18,000 = ₹10,80,000. Hiring = 4 (M2) + 4 (M3) = 8 × ₹6,000 = ₹48,000. Layoff = 8 (M4) × ₹10,000 = ₹80,000. Holding = 0. Total = 10,80,000 + 48,000 + 80,000 = ₹12,08,000.

PlanRegular timeHireLayoffHoldingTotal
Level (build ahead)₹10,80,000₹24,000₹40,000₹48,000₹11,92,000
Chase₹10,80,000₹48,000₹80,000₹0₹12,08,000

Regular-time cost is identical because total output is the same; the level plan wins by ₹16,000 because ₹48,000 of holding is cheaper than the extra ₹64,000 of hire-and-fire churn. Raise holding cost to ₹150/unit/month and holding becomes ₹1,20,000 - the chase plan then wins. That trade-off is the whole of aggregate planning.

Example 4 - overtime and subcontracting (mixed plan). Demand for a month: 2,400 units. Regular capacity 1,800 units at ₹400/unit; overtime up to 400 units at ₹560/unit; subcontract unlimited at ₹620/unit; holding ₹30/unit/month; 300 units are in opening stock and may be used.

Example 5 - transportation-model cost cells. Period-1 regular production costs ₹400/unit; carrying to period 2 costs ₹30/unit-month. So the cell cost (source: period-1 regular time → destination: period-2 demand) is 400 + 30 = ₹430; to period 3 it is 400 + 60 = ₹460. Period-1 overtime (₹560) serving period-3 demand costs 560 + 60 = ₹620 - equal to fresh subcontracting, so the model is indifferent between them. Unused capacity is assigned to a dummy destination at zero cost; backorder cells (a later period supplying an earlier demand) carry the backorder penalty per period.

MethodData neededHandles trendHandles seasonalityTypical use
NaiveLast valueNoNoBenchmark, very stable items
Moving average (n)Last n valuesPoorly (lags)NoStable, low-value items
SES (α)Last forecastPoorly (lags)NoThousands of SKUs, stock control
Holt (α, β)Level + trendYesNoGrowing product lines
Holt-Winters (α, β, γ)Level, trend, seasonYesYesSeasonal FMCG, fans, coolers
RegressionCausal variable seriesYesVia dummiesCement, tractors, commodity demand
Decomposition2-3 seasons of historyYesYesQuarterly/monthly planning
Delphi / surveyExpert or buyer inputn/an/aNew product, long range

Where it is used

Interview questions

Common mistakes

Related topics

Production planning and control · Inventory control: EOQ and ABC · MRP and ERP in manufacturing · Scheduling and sequencing · Operations research basics · Queuing theory and simulation

Open in the Knowledge reader →Find jobs →