Fallstudie 6: Der Bullwhip-Effekt

SushiFresh-Übungen, empirische Messung in US-Wirtschaftsdaten und Simulation von Gegenmaßnahmen

Autor:in

Supply Chain Management – Gruppenarbeit

HinweisSteckbrief
Thema Nachfrageaufschaukelung in mehrstufigen Supply Chains
Vorlesungsbezug Block 3 „Unsicherheits- und Risikomanagement in Supply Chains“: Bullwhip-Effekt und Beer Game
Teil 1 Klausurvorbereitung: Aufgaben mit Stift und Papier zu einer neuen SushiFresh-Entscheidungssituation (25–30 Min.)
Teil 2 Datenbasierte Fallstudie: reale Umsatz- und Bestandsdaten des U.S. Census Bureau (über FRED) und eine Simulation
Gruppengröße 3–6 Personen (Teil 2)
Ergebnis Präsentation (20 Min.) + Diskussion (10 Min.), Foliensatz (PDF) und reproduzierbarer R-/Quarto-Code

1 Lernziele

Nach Bearbeitung der Übungen und der Fallstudie können Sie

  • Bestellmengen einer Bestellniveau-Politik mit rollierender Parameterschätzung berechnen,
  • den Bullwhip-Effekt als Varianzverhältnis messen,
  • die Schranke nach Chen et al. (2000) anwenden und
  • die Wirkung von Gegenmaßnahmen (längere Prognosefenster, kürzere Lieferzeiten, Informationsaustausch) quantitativ bewerten.

2 Teil 1 – Klausurvorbereitung: Reisbestellungen beim Großhändler

HinweisHinweise

Bearbeitungszeit ca. 25 Minuten · Hilfsmittel: nicht programmierbarer Taschenrechner · 25 Punkte

Die Küche in Mannheim bestellt Sushi-Reis wöchentlich beim Großhändler AsiaFood. Die Wiederbeschaffungszeit beträgt \(L = 1\) Woche. Der Disponent setzt das Bestellniveau auf den erwarteten Bedarf von \(L + 1 = 2\) Wochen (ohne Sicherheitsbestand) und schätzt den Wochenbedarf als gleitenden Durchschnitt der letzten zwei Wochen (einschließlich der aktuellen Woche):

\[\hat\mu_t = \frac{d_{t-1} + d_t}{2}, \qquad S_t = 2\,\hat\mu_t, \qquad q_t = d_t + S_t - S_{t-1}.\]

Der Reisbedarf (kg) der letzten acht Wochen:

Woche \(t\) 1 2 3 4 5 6 7 8
Bedarf \(d_t\) 100 120 80 100 140 100 90 110

Aufgabe 1 (8 Punkte). Berechnen Sie \(\hat\mu_t\), \(S_t\) und die Bestellmenge \(q_t\) für die Wochen 2 bis 8. (In Woche 2 wird \(S_2\) nur berechnet, bestellt wird ab Woche 3.)

Woche \(t\) 2 3 4 5 6 7 8
\(d_t\) 120 80 100 140 100 90 110
\(\hat\mu_t\) 110 100 90 120 120 95 100
\(S_t\) 220 200 180 240 240 190 200
\(q_t\) – 60 80 200 100 40 120

Beispiel Woche 5: \(\hat\mu_5 = (100 + 140)/2 = 120\), \(S_5 = 240\), \(q_5 = 140 + 240 - 180 = 200\).

Bewertung: 2 Punkte für \(\hat\mu\), 2 Punkte für \(S\), 4 Punkte für \(q\).

Aufgabe 2 (7 Punkte). Berechnen Sie für die Wochen 3 bis 8 Mittelwert und Varianz von Bedarf und Bestellungen sowie das Varianzverhältnis \(\operatorname{Var}(q)/\operatorname{Var}(d)\) (Stichprobenvarianz, Division durch \(n-1\)). Interpretieren Sie das Ergebnis.

Mittelwert Varianz (\(n - 1 = 5\))
Bedarf (80, 100, 140, 100, 90, 110) 103,3 2.133,3 / 5 = 426,7
Bestellungen (60, 80, 200, 100, 40, 120) 100,0 16.000 / 5 = 3.200

$(q)/(d) = 3.200/426{,}7 = $ 7,5. Die Bestellungen schwanken siebeneinhalbmal so stark wie der Bedarf, obwohl die Mengen im Mittel gleich sind. Ursache ist die Neuschätzung des Bestellniveaus: Jede Bedarfsänderung wird doppelt weitergegeben (einmal als Bedarf, einmal als Änderung von \(S\)).

Bewertung: 4 Punkte Rechnung, 1 Punkt Verhältnis, 2 Punkte Interpretation.

Aufgabe 3 (4 Punkte). Berechnen Sie die untere Schranke nach Chen et al. (2000), \(1 + 2L/p + 2L^2/p^2\), für das Prognosefenster \(p = 2\) und \(p = 4\). Was empfehlen Sie dem Disponenten?

\(p = 2\): \(1 + 2 \cdot 1/2 + 2 \cdot 1/4 = 2{,}5\). \(\quad p = 4\): \(1 + 0{,}5 + 0{,}125 = 1{,}625\).

Ein längeres Prognosefenster glättet die Schätzung und senkt den Bullwhip-Effekt. Empfehlung: über mindestens vier Wochen mitteln (oder exponentielle Glättung mit kleinem Glättungsparameter), sofern der Bedarf keinen Trend hat.

Bewertung: 2 Punkte Rechnung, 2 Punkte Empfehlung.

Aufgabe 4 (6 Punkte). AsiaFood verwendet dieselbe Bestellpolitik gegenüber seinem Importeur.

  1. Was erwarten Sie für die Schwankung der Bestellungen von AsiaFood? Begründen Sie.

  2. Nennen Sie zwei Gegenmaßnahmen und ordnen Sie sie je einer Ursache des Bullwhip-Effekts nach Lee et al. (1997) zu.

  1. AsiaFood sieht die Bestellungen von SushiFresh als Nachfrage, die bereits 7,5-mal so stark schwankt. Mit derselben Politik verstärkt AsiaFood diese Schwankung erneut; die Varianz wächst stromaufwärts multiplikativ.

  2. Zum Beispiel:

  • Informationsaustausch (AsiaFood erhält die Verbrauchsdaten der Küche) → Ursache: Nachfrageprognosen auf Basis der Bestellungen,
  • längeres Prognosefenster / stabile Bestellniveaus → Ursache: Nachfrageprognosen,
  • kleinere, regelmäßige Bestellungen statt Sammelbestellungen → Ursache: Bestellbündelung,
  • stabile Preise statt Aktionsrabatte → Ursache: Preisschwankungen,
  • faire Zuteilung bei Knappheit → Ursache: Rationierungsspiel.

Bewertung: a) 2 Punkte, b) je Maßnahme mit Ursache 2 Punkte.

3 Teil 2 – Fallstudie: Bullwhip-Effekt in der US-Wirtschaft

3.1 Ausgangslage

Seit Forrester (1961) und Lee et al. (1997) ist bekannt, dass die Schwankungen der Bestellungen stromaufwärts in einer Supply Chain zunehmen. Die Jahre 2020–2023 haben gezeigt, wie stark sich das auswirken kann: Auf den Nachfrageeinbruch zu Beginn der Pandemie folgten Hamsterkäufe, später Knappheit bei Halbleitern und schließlich volle Lager.

Ein Beratungsunternehmen soll für einen Branchenverband

  1. empirisch prüfen, ob der Bullwhip-Effekt in der US-Wirtschaft zwischen Einzelhandel, Großhandel und Industrie messbar ist, und
  2. in einer Simulation zeigen, welche Gegenmaßnahmen den Effekt in einer vierstufigen Supply Chain am wirksamsten dämpfen.

3.2 Daten

3.2.1 Manufacturing and Trade Inventories and Sales (MTIS)

Das U.S. Census Bureau veröffentlicht monatlich Umsätze und Lagerbestände (Mio. USD, saisonbereinigt) für drei Stufen. Die Reihen sind frei über FRED abrufbar, z. B. als CSV unter https://fred.stlouisfed.org/graph/fredgraph.csv?id=<ID>.

Stufe Umsatz Lagerbestand (Monatsende)
Einzelhandel RETAILSMSA RETAILIMSA
Großhandel (Merchant Wholesalers) WHLSLRSMSA WHLSLRIMSA
Industrie (Manufacturers) MNFCTRSMSA MNFCTRIMSA

Da Bestellungen nicht direkt beobachtet werden, verwendet die empirische Literatur (z. B. Cachon et al. 2007) als Näherung die Beschaffung einer Stufe, \(P_t = S_t + I_t - I_{t-1}\), mit Umsatz \(S_t\) und Lagerbestand \(I_t\). Der Bullwhip-Effekt einer Stufe ist \(B = \operatorname{Var}(P)/\operatorname{Var}(S)\).

3.2.2 Endkundennachfrage für die Simulation

Verwenden Sie eine reale Zeitreihe Ihrer Wahl, z. B. den Tagesabsatz eines Artikels der französischen Bäckerei (Fallstudie 5) oder eine monatliche Einzelhandelsumsatzreihe aus FRED (z. B. RSXFS).

3.3 Aufgaben

3.3.1 Teil A – Empirische Messung

A1. Laden Sie die sechs MTIS-Reihen ab 1992, berechnen Sie \(P_t\) je Stufe und das Varianzverhältnis \(B\) auf den ersten Differenzen für die Perioden 1992–2019 und 2020–heute. Ist \(B > 1\)? Wie unterscheiden sich Stufen und Perioden?

3.3.2 Teil B – Simulation einer vierstufigen Supply Chain

B1. Simulieren Sie mit simuliere_bullwhip() (Anhang) und Ihrer realen Endkundennachfrage den Basisfall mit vier Stufen (\(L = 2\), \(p = 4\), \(z = 1{,}65\)). Stellen Sie \(B_k\) je Stufe der Schranke nach Chen et al. gegenüber.

B2. Untersuchen Sie zwei Gegenmaßnahmen und stellen Sie die Ergebnisse vergleichend dar:

Szenario Veränderung
Längeres Prognosefenster \(p = 8\) und \(p = 26\)
Kürzere Lieferzeit \(L = 1\)
Informationsaustausch info_sharing = TRUE

An welcher Ursache nach Lee et al. (1997) setzt die wirksamste Maßnahme an?

3.3.3 Teil C – Beer Game (in der Lehrveranstaltung)

C1. Dokumentieren Sie im Beer Game Bestellungen und Bestände Ihrer Gruppe je Runde und berechnen Sie die Varianzverhältnisse je Stufe.

3.3.4 Teil D – Empfehlung und Reflexion

D1. Welche zwei Maßnahmen sollten Unternehmen zuerst umsetzen, und welche Voraussetzungen (IT, Vertrauen, Verträge) sind dafür nötig?

D2. Reflexion. Beantworten Sie in der Präsentation:

  1. Warum ist der Bullwhip-Effekt in den aggregierten Wirtschaftsdaten schwächer als in Simulation und Beer Game?
  2. Was hat das Beer Game über Ihr eigenes Entscheidungsverhalten gezeigt (z. B. Vernachlässigung der Pipeline-Bestände)?
  3. Wie lassen sich die Engpässe und Überbestände der Jahre 2020–2023 mit Ihren Ergebnissen erklären?

4 Literatur

  • Cachon, G. P.; Randall, T.; Schmidt, G. M. (2007): In Search of the Bullwhip Effect. Manufacturing & Service Operations Management 9(4), 457–479.
  • Chen, F.; Drezner, Z.; Ryan, J. K.; Simchi-Levi, D. (2000): Quantifying the Bullwhip Effect in a Simple Supply Chain. Management Science 46(3), 436–443.
  • Lee, H. L.; Padmanabhan, V.; Whang, S. (1997): The Bullwhip Effect in Supply Chains. Sloan Management Review 38(3), 93–102.
  • Sterman, J. D. (1989): Modeling Managerial Behavior: Misperceptions of Feedback in a Dynamic Decision Making Experiment. Management Science 35(3), 321–339.
  • Folien und Reader zur Vorlesung, Block 3.

5 Anhang: R-Startercode

Code
library(tidyverse)

lade_fred <- function(id) {
  read_csv(paste0("https://fred.stlouisfed.org/graph/fredgraph.csv?id=", id),
           show_col_types = FALSE) |>
    rename(datum = 1, wert = 2)
}

stufen <- tribble(
  ~stufe,         ~umsatz,      ~bestand,
  "Einzelhandel", "RETAILSMSA", "RETAILIMSA",
  "Großhandel",   "WHLSLRSMSA", "WHLSLRIMSA",
  "Industrie",    "MNFCTRSMSA", "MNFCTRIMSA"
)

mtis <- stufen |>
  mutate(daten = map2(umsatz, bestand, \(u, b)
    inner_join(lade_fred(u) |> rename(S = wert),
               lade_fred(b) |> rename(I = wert), by = "datum"))) |>
  select(stufe, daten) |> unnest(daten) |>
  group_by(stufe) |>
  mutate(P = S + I - lag(I), periode = if_else(year(datum) < 2020, "1992–2019", "ab 2020")) |>
  ungroup() |> drop_na(P)

mtis |> group_by(stufe, periode) |>
  summarise(B_diff = var(diff(P)) / var(diff(S)), .groups = "drop")
Code
# Bestellniveau-Politik mit gleitender Schätzung von mu und sigma über p Perioden;
# stufen > 1 bildet eine Kette (die Bestellungen einer Stufe sind die Nachfrage der nächsten)
simuliere_bullwhip <- function(D, stufen = 1, L = 2, p = 3, z = qnorm(0.95),
                               info_sharing = FALSE) {
  n <- length(D)
  O <- matrix(NA_real_, nrow = n, ncol = stufen + 1)
  O[, 1] <- D                                    # Spalte 1 = Endkundennachfrage
  for (k in 1:stufen) {
    d_k   <- O[, k]                              # Nachfrage, die Stufe k sieht
    d_fc  <- if (info_sharing) D else d_k        # Datengrundlage der Prognose
    S_alt <- NA
    for (t in seq_len(n)) {
      if (t < p) { O[t, k + 1] <- d_k[t]; next } # Einschwingphase
      fenster <- d_fc[(t - p + 1):t]
      S <- mean(fenster) * (L + 1) + z * sd(fenster) * sqrt(L + 1)
      O[t, k + 1] <- if (is.na(S_alt)) d_k[t] else max(0, d_k[t] + S - S_alt)
      S_alt <- S
    }
  }
  colnames(O) <- c("Endkunde", paste0("Stufe_", 1:stufen))
  as.data.frame(O)
}

# Demonstration mit künstlicher Nachfrage – ersetzen Sie D durch Ihre reale Reihe
set.seed(42)
D <- round(rnorm(156, mean = 100, sd = 15))
sim <- simuliere_bullwhip(D, stufen = 4, L = 2, p = 4, z = 1.65)
round(sapply(sim[-(1:20), ], var) / var(D[-(1:20)]), 2)