Nach Bearbeitung der Übungen und der Fallstudie können Sie
Unter- und Überbestandskosten bestimmen und das kritische Verhältnis berechnen,
die optimale Menge für eine diskrete, eine normalverteilte und eine empirische Nachfrage bestimmen,
verschiedene Planungsregeln in einem Backtest vergleichen und
das Problem zensierter Nachfrage sowie den Zielkonflikt zwischen Gewinn und Lebensmittelabfall erkennen.
2 Teil 1 – Klausurvorbereitung: Poke-Bowls im Stadion und auf dem Weihnachtsmarkt
HinweisHinweise
Bearbeitungszeit ca. 25 Minuten · Hilfsmittel: nicht programmierbarer Taschenrechner · 25 Punkte
Situation A – Heimspiel. SushiFresh betreibt beim nächsten Heimspiel des SV Waldhof Mannheim einen Stand mit Poke-Bowls. Die Bowls müssen am Morgen vollständig vorbereitet werden. Verkaufspreis 12 €/Bowl, Herstellkosten 5 €/Bowl. Nicht verkaufte Bowls gibt SushiFresh am Abend für 1 €/Bowl an eine Tafel-Initiative ab (Restwert). Aus früheren Spielen schätzt SushiFresh:
Nachfrage [Bowls]
400
500
600
700
Wahrscheinlichkeit
0,1
0,3
0,4
0,2
Aufgabe 1 (5 Punkte). Bestimmen Sie die Unter- und Überbestandskosten, das kritische Verhältnis und die optimale Produktionsmenge.
Der erwartete Gewinn ist bei 600 am höchsten. Das bestätigt das kritische Verhältnis.
Bewertung: 2 Punkte je Zeile, 2 Punkte Vergleich.
Situation B – Weihnachtsmarkt. Auf dem Heidelberger Weihnachtsmarkt ist die Tagesnachfrage normalverteilt mit \(\mu = 300\) und \(\sigma = 60\) Bowls. Verkaufspreis 8 €, Herstellkosten 3 €. Restware muss entsorgt werden (Restwert 0 €).
\(\Phi^{-1}(x)\)
\(x\)
0,600
0,625
0,650
0,700
0,750
0,800
0,833
0,900
0,950
\(z\)
0,253
0,319
0,385
0,524
0,674
0,842
0,967
1,282
1,645
Aufgabe 3 (6 Punkte). Bestimmen Sie die optimale Menge und den zugehörigen α-Servicegrad.
Weil Überbestand billiger wird, produziert SushiFresh mehr; die erwartete Restmenge steigt (von rund 35 auf rund 63 Bowls). Ob mehr Lebensmittel weggeworfen werden, hängt davon ab, ob die App-Kunden die Restware tatsächlich essen. Der Restwert verringert zwar die Verschwendung je Bowl, setzt aber einen Anreiz zur Überproduktion („Rebound-Effekt“).
Bewertung: a) 3 Punkte, b) 3 Punkte.
3 Teil 2 – Fallstudie: Eine französische Bäckerei
3.1 Ausgangslage
Eine familiengeführte Bäckerei in Frankreich backt jeden Morgen Baguettes, Croissants, Pains au chocolat und weitere Backwaren. Was abends übrig bleibt, kann nicht mehr regulär verkauft werden; es wird gespendet, als Tierfutter abgegeben oder günstig über eine App angeboten. Ist die Ware früh ausverkauft, gehen Umsätze verloren.
Die Backmengen legt die Inhaberin bisher nach Erfahrung fest, meist als feste Menge je Wochentag. Sie möchte wissen, ob eine datenbasierte Planung den Gewinn steigern und gleichzeitig den Abfall senken kann.
Die Datei Bakery sales.csv enthält rund 234.000 Kassenpositionen vom 01.01.2021 bis 30.09.2022:
Spalte
Bedeutung
date, time
Datum und Uhrzeit des Verkaufs
ticket_number
Bonnummer
article
Artikelbezeichnung (z. B. TRADITIONAL BAGUETTE, CROISSANT)
Quantity
Menge (auch negative Werte, d. h. Stornos)
unit_price
Stückpreis als Text, z. B. "1,20 €"
WichtigHinweise zur Datenaufbereitung
Bereinigen Sie unit_price (Dezimalkomma, Währungszeichen).
Tage, an denen die Bäckerei geschlossen ist, sind keine Nachfrage von 0.
Die Preise steigen 2022 (Inflation). Verwenden Sie den jeweils gültigen Preis.
3.3 Kostenannahmen
Artikel
Variable Kosten 2021 [€/Stück]
Variable Kosten 2022 [€/Stück]
Restwert [€/Stück]
TRADITIONAL BAGUETTE
0,40
0,48
0,10 (Paniermehl, Tierfutter)
CROISSANT
0,38
0,45
0,30 (Verkauf über App zum Abend)
3.4 Aufgaben
3.4.1 Teil A – Von Kassenbons zur Nachfragezeitreihe
A1. Erzeugen Sie für die beiden Artikel der Kostentabelle eine tägliche Absatzzeitreihe und dokumentieren Sie die Bereinigungsschritte. Analysieren Sie Wochentagseffekte und prüfen Sie die Verteilung der Tagesnachfrage (Histogramm). Ist eine Segmentierung nach Wochentag sinnvoll?
3.4.2 Teil B – Newsvendor-Modell
B1. Bestimmen Sie für die TRADITIONAL BAGUETTE mit den Daten von 2021 \(c^u\), \(c^o\) und das kritische Verhältnis. Berechnen Sie die optimale Backmenge je Wochentag (a) unter Normalverteilungsannahme und (b) als empirisches Quantil.
B2. Wiederholen Sie die Rechnung für das Croissant. Warum unterscheidet sich der optimale Servicegrad so stark von dem der Baguette?
3.4.3 Teil C – Backtest
C1. Kalibrieren Sie zwei Planungsregeln mit den Daten von 2021 und testen Sie sie auf Januar bis September 2022:
Vergleichen Sie realisierten Gewinn, Abfallmenge und den Anteil der Tage ohne Ausverkauf.
3.4.4 Teil D – Empfehlung und Reflexion
D1. Formulieren Sie eine praxistaugliche Empfehlung für die Inhaberin, z. B. als Tabelle »Backmenge je Wochentag«.
D2. Reflexion. Beantworten Sie in der Präsentation:
Die Kassendaten zeigen Verkäufe, nicht Nachfrage. Wie erkennen Sie Ausverkaufstage (z. B. an der Uhrzeit des letzten Verkaufs), und in welche Richtung verzerrt das Ihr \(q^*\)?
Welches Wissen steckt in der »Erfahrung« der Inhaberin, das das Modell nicht kennt?
Gewinn oder weniger Lebensmittelabfall: Wie sollte die Bäckerei diesen Zielkonflikt entscheiden?
4 Anhang: R-Startercode
Code
library(tidyverse)source("../R/scm_functions.R") # newsvendor_normal()raw <-read_csv("Bakery sales.csv")bakery <- raw |>mutate(date =as.Date(date),unit_price =parse_number(unit_price, locale =locale(decimal_mark =",")),article =str_trim(article) )tagesabsatz <- bakery |>filter(article %in%c("TRADITIONAL BAGUETTE", "CROISSANT")) |>group_by(date, article) |>summarise(menge =sum(Quantity), preis =median(unit_price), .groups ="drop") |>mutate(wochentag = lubridate::wday(date, label =TRUE, week_start =1),jahr = lubridate::year(date))# Beispiel: Newsvendor für die Baguette 2021 (alle Tage)b21 <- tagesabsatz |>filter(article =="TRADITIONAL BAGUETTE", jahr ==2021)newsvendor_normal(mu =mean(b21$menge), sigma =sd(b21$menge),p =median(b21$preis), c =0.40, s =0.10)# Empirisches Quantil je WochentagCR <- (median(b21$preis) -0.40) / (median(b21$preis) -0.10)b21 |>group_by(wochentag) |>summarise(q_emp =quantile(menge, CR, type =1))# Realisierter Gewinn einer Menge q bei Nachfrage Dgewinn <-function(q, D, p, c, s) p *pmin(q, D) + s *pmax(q - D, 0) - c * q