Skip to content
Product cover

The Bullwhip Effect in Supply Chains

Tremendous variability in orders along the supply chain can plague companies trying to eliminate excess inventory, forecast product demand, and simply make their supply chain more efficient. What causes the bullwhip effect that distorts information as it is transmitted up the chain? The authors identify four major causes:

1. Demand forecast updating. As each entity along the chain places an order, it replenishes stock and includes some safety stock. With long lead times, there may be weeks of safety stocks, which make the fluctuation in demand more significant.

2. Order batching. Companies may place orders in batches, often to avoid the cost of processing orders more frequently or the high transportation costs for less-than-truckload orders. Suppliers, in turn, face erratic streams of orders, and the bullwhip effect occurs. When order cycles overlap, the effect is even more pronounced.

3. Price fluctuation. Special promotions and price discounts result in customers buying in large quantities and stocking up. When prices return to normal, customers stop buying. As a result, their buying pattern does not reflect their consumption pattern.

4. Rationing and shortage gaming. If product demand exceeds supply, a manufacturer may ration its products. Customers, in turn, may exaggerate their orders to counteract the rationing. Eventually, orders will disappear and cancellations pour in, making it impossible for the manufacturer to determine the real demand for its product.

The authors suggest several ways in which companies can counteract the bullwhip effect:

1. Avoid multiple demand forecast updates. Companies can make demand data from downstream available upstream. Or they can bypass the downstream site by selling directly to the consumer. Also, they can improve operational efficiency to reduce highly variable demand and long resupply lead times.

2. Break order batches. Companies can use electronic data interchange to reduce the cost of placing orders and place orders more frequently. And they can ship assortments of products in a truckload to counter high transportation costs or use third-party logistics companies to handle shipping.

3. Stabilize prices. Manufacturers can reduce the frequency and level of wholesale price discounting to prevent customers from stockpiling. They can also use activity-based costing systems so they can recognize when companies are buying in bulk.

4. Eliminate gaming in shortage situations. In shortages, suppliers can allocate product based on past sales records, rather than on orders, so customers don’t exaggerate their orders. They can also eliminate their generous return policies, so retailers are less likely to cancel orders.

Only by thoroughly understanding the underlying causes of the bullwhip effect, say the authors, can companies counteract and control it.

Purchase Options

Educator and Student Discounts Available. Learn more »

  BENCHMARKS  
Loading Time: Base Classes  0.0039
My Controller Construct  0.0004
Build Nav  0.0007
Controller Execution Time ( Products / Route )  0.0719
Total Execution Time  0.0758
  GET DATA  
No GET data exists
  MEMORY USAGE  
1.5689 MB
  POST DATA  
No POST data exists
  URI STRING  
store/the-bullwhip-effect-in-supply-chains
  CLASS/METHOD  
products/route
  DATABASE:  MITSLOAN_DEV   QUERIES: 68  (Hide)
0.0004  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0021  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0004  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0005  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0009  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0005  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0015  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0002  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0001  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0003  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0003  

SELECT *
FROM (`carts`)
WHERE `cart_id` =  '4a44aebb3d2ae3db56e07134fa14288a'
ORDER BY `created_atDESC 
0.0014  

SELECT SQL_CALC_FOUND_ROWS cat_id
FROM 
(`product_categories`)
WHERE `status_id` =  'A'
AND `url_friendly` =  'the-bullwhip-effect-in-supply-chains'
AND `parent_id` =  
0.0109  

SELECT c.parent_idc.format_id
                    FROM products 
AS pproducts AS c
                    WHERE p
.prod_id c.parent_id AND
                        
c.avail_id IN ('A','B','D') AND
                        
c.type_id 'V' AND
                        (
                            
c.sku 'the-bullwhip-effect-in-supply-chains' OR
                            if(
c.format_id 'Certificate'''p.url_friendly) = 'the-bullwhip-effect-in-supply-chains'
                        
)
                    
LIMIT 1 
0.0011  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  2343 
0.0003  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '2343' 
0.0006  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '2343'
ORDER BY `sortAS
0.0004  

SELECT `cat_id`
FROM (`product_categories__products`)
WHERE `prod_id` =  '2343' 
0.0034  

SELECT *
FROM (`product_flags__products`)
WHERE `prod_id` =  '2343' 
0.0002  

SELECT `sku`
FROM (`products__xsell`)
WHERE `prod_id` =  '2343'
ORDER BY IF(position 010) AS, `position
0.0113  

SELECT `products`.`parent_id`
FROM (`transaction_lines`)
JOIN `productsON `products`.`sku` = `transaction_lines`.`sku`
JOIN `product_categories__productsON `products`.`parent_id` = `product_categories__products`.`prod_id`
WHERE `products`.`avail_id` =  'A'
AND TO_DAYS(transaction_lines.updated_at) < (TO_DAYS(NOW()) - 90)
AND `
product_categories__products`.`cat_idIN ('248') 
GROUP BY `products`.`parent_id`
ORDER BY COUNT(*) DESC
LIMIT 6 
0.0008  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '2343' 
0.0009  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '2343' 
0.0007  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '2343'
ORDER BY `sortAS
0.0005  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '217' 
0.0017  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '217' 
0.0003  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '217'
ORDER BY `sortAS
0.0006  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '3775' 
0.0028  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '3775' 
0.0015  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '3775'
ORDER BY `sortAS
0.0001  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '2699' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '2699' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '2699'
ORDER BY `sortAS
0.0001  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '2723' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '2723' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '2723'
ORDER BY `sortAS
0.0002  

SELECT `parent_id`
FROM (`products`)
WHERE `prod_id` =  '655' 
0.0002  

SELECT *
FROM (`products`)
WHERE `products`.`prod_id` =  '655' 
0.0002  

SELECT *
FROM (`authors`)
JOIN `products__authorsON `authors`.`author_id` = `products__authors`.`author_id`
WHERE `products__authors`.`prod_id` =  '655'
ORDER BY `sortAS
0.0024  

SELECT SQL_CALC_FOUND_ROWS media_idposition
FROM 
(`media`)
WHERE `foreign_key_table` =  'products'
AND `foreign_key_column` =  'prod_id'
AND `foreign_key_value` =  '2343'
AND `kind` =  'image_600x600'
ORDER BY IF(position 010) AS, `position
0.0003  

SELECT *
FROM (`media`)
WHERE `media`.`media_id` =  '1059' 
0.0003  

SELECT *
FROM (`mime_types`)
WHERE `mime_types`.`extension` =  'jpg' 
0.0001  

SELECT *
FROM (`media_metadata`)
WHERE `media_id` =  '1059' 
0.0004  

SELECT SQL_CALC_FOUND_ROWS media_idposition
FROM 
(`media`)
WHERE `foreign_key_table` =  'products'
AND `foreign_key_column` =  'prod_id'
AND `foreign_key_value` =  '2343'
AND `kind` =  'gallery_image'
ORDER BY IF(position 010) AS, `position
0.0003  

SELECT *
FROM (`products`)
WHERE `avail_idIN ('A''B''C''H') 
AND `
parent_id` =  '2343'
AND `type_id` =  'V'
ORDER BY IF(position 010) AS, `position`, `title
0.0001  

SELECT `c`.`format_id`, `c`.`price`, `c`.`sale_price`
FROM (`productsAS c)
WHERE `c`.`prod_id` =  '2344'
LIMIT 1 
0.0003  

SELECT SQL_CALC_FOUND_ROWS media_idposition
FROM 
(`media`)
WHERE `foreign_key_table` =  'products'
AND `foreign_key_column` =  'prod_id'
AND `foreign_key_value` =  '2344'
AND `kind` =  'thumbnail'
ORDER BY IF(position 010) AS, `position
0.0002  

SELECT `product_categories__products`.`cat_id`
FROM (`product_categories__products`)
JOIN `product_categoriesON `product_categories__products`.`cat_id` = `product_categories`.`cat_id`
WHERE `product_categories__products`.`prod_id` =  '2343'
AND `product_categories`.`parent_id` =  1
AND `product_categories__products`.`cat_idNOT IN (1261)  
0.0004  

SELECT `cat_idAS id, `parent_idAS parent, `status_id`, `name`, `description`, `url_friendly`, `page_title`, `meta_keywords`, `meta_description`, `position`, `updated_at`
FROM (`product_categories`)
WHERE `cat_id` != 1
ORDER BY 
`parent_id`, IF(position 010) AS, `position`, `name
0.0004  

SELECT *
FROM (`product_categories`)
WHERE `status_id` =  'A'
AND `parent_id` =  1
AND `cat_idNOT IN (1261) 
ORDER BY `name
0.0002  

SELECT *
FROM (`site_settings`)
WHERE `option_key` =  'announcement' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)