Nachfrage prognostizieren: Autokorrelation, Saisonalität und ehrliche Fehlerbänder

Kurz gesagt

Niveau: Profi

  • Eine Nachfrageprognose ist eine Regression auf den Kalender: ein Trend plus Dummy Variablen für Saisons, bewegliche Feiertage und Ereignisse.
  • Fehler in Zeitreihen sind autokorreliert, deshalb überschätzt eine einfache Regression ihre eigene Genauigkeit. Prüf Durbin Watson und die ACF der Residuen, dann schätze mit AR(1) Fehlern.
  • Beurteile jedes Modell an Wochen, die es nie gesehen hat, mit MAE und MAPE, und lass es "dieselbe Woche im Vorjahr plus Wachstum" schlagen, bevor es seine Komplexität verdient.
  • Berichte ein 80 % Prognoseintervall, nicht nur einen Punkt, und bestell Ware und plane Personal gegen das Band.
  • Eine Prognose ist, was passiert, wenn sich nichts ändert, ein Ziel ist, was du willst. Benenne die Lücke und lass das Marketing sie erarbeiten.

Eine Prognose ist eine Regression mit dem Kalender als Treiber, und der Kalender ist der leichte Teil. Der schwere Teil ist der Fehler: In einer Zeitreihe folgt auf eine gute Woche eine gute Woche, die üblichen Standardfehler schmeicheln dem Modell, und eine Punktprognose ohne Band ist ein verkleidetes Ziel. Mit drei Jahren Wochenbestellungen eines erfundenen Linzer Shops für Geschenkkörbe baut dieses Kapitel ein saisonales Modell mit AR(1) Fehlern, lässt es auf einem Holdout gegen einfachere Verfahren antreten und macht aus dem Sieger eine Weihnachtsprognose mit 80 % Band, aus der eine Bestellung und ein Dienstplan fürs Packteam werden. Teil 10 von 21 der Serie Marketing Analytics.

Der Freitag, an dem im Packraum das Schleifenband ausging

In Woche 51 des Jahres 2024 ging Korbwerk das breite Satinband aus, das um jeden Weihnachtskorb kommt. Nicht die Körbe, das Band. Korbwerk ist der erfundene Onlineshop für Geschenkkörbe in Linz aus früheren Kapiteln, geführt von Lena. Jemand hatte "ein bisschen mehr als letztes Jahr" bestellt, und das war am Ende rund ein Fünftel weniger, als die Woche tatsächlich brachte. Zwei Leute aus dem Packteam fuhren am Freitagabend quer durch Linz und das halbe Mühlviertel, um Band aufzutreiben, und die Marge dieser Woche überlebte das Benzin, die Überstunden und den Eilkurier nicht.

Nichts an dieser Woche war unvorhersehbar. Der Shop hatte Jahre an Wochenbestellungen, und Weihnachten fällt jedes Jahr auf dasselbe Datum. Es fehlten nicht die Daten. Es fehlte eine Prognose mit einem ehrlichen Fehlerband, und jemand, der bereit war, gegen das obere Ende dieses Bands zu planen statt gegen die Mitte.

Darum geht es in diesem Kapitel: Nachfrage über die Zeit vorherzusagen, mit eingebauten Saisons und einer Unsicherheit, die in Bestellungen angegeben wird statt in Adjektiven. Korbwerk und jede Zahl in diesem Kapitel sind erfunden, damit ich jeden Schritt zeigen kann. Die Methode ist die, die ich verwende.

Wo dieses Kapitel in der Serie steht

Das ist Kapitel 10 von 21 meiner Serie Marketing Analytics, und es schließt den zweiten Teil ab, die Verfahren für abhängige Variablen. Das vorige Kapitel über Panelregression und Umsatz auf vergleichbarer Fläche hat viele Läden durch die Zeit begleitet. Dieses folgt einem einzigen Shop und nimmt die Zeit ernst. Das nächste Kapitel über simultane Gleichungen eröffnet den dritten Teil, in dem der Pfeil zwischen Marketing und Umsatz in beide Richtungen zeigt.

Eine Prognose ist eine Regression mit dem Kalender als Treiber

Das meiste Geheimnisvolle an Prognosen verschwindet, sobald du sie als Regression siehst, deren Treiber aus dem Kalender gebaut sind: ein Trend (ein Zähler, der 1, 2, 3 zählt, ein Schritt pro Woche), Indikatoren für Saisons und Feiertage und Ereignisse wie eine Firmenkundenkampagne oder ein ausverkauftes Lager. Das Ergebnis sind Bestellungen pro Woche.

Was sich ändert, ist der Fehlerterm. In einer Zeitreihe folgt auf eine gute Woche gern eine gute Woche. Lag der Shop in Woche 20 um 40 Bestellungen über dem Modell, liegt er wahrscheinlich auch in Woche 21 darüber, denn was den Überschuss ausgelöst hat (ein Pressebericht, ein ausverkaufter Wettbewerber, ein warmes Wochenende), schaltet sich nicht Sonntag um Mitternacht ab. Das ist Autokorrelation, und sie bricht die gewöhnliche Regression still und leise, sobald Zeit im Spiel ist.

Autokorrelation: Die Überraschung der letzten Woche sickert in diese Woche

Die einfachste Beschreibung ist der autoregressive Prozess erster Ordnung, geschrieben AR(1):

εt=ρ εt−1+ut\varepsilon_t = \rho\,\varepsilon_{t-1} + u_t

Dabei ist εt\varepsilon_t der Fehler des Modells in Woche tt, ρ\rho (rho) der Autokorrelationskoeffizient, eine Zahl zwischen minus 1 und 1, εt−1\varepsilon_{t-1} der Fehler der Vorwoche und utu_t ein frischer, unabhängiger Schock. Mit ρ=0\rho = 0 bist du zurück bei der gewöhnlichen Regression. Die Gleichung ist selbst eine kleine Regression des Fehlers auf seine eigene Vergangenheit, siehe Grundlagen: Regression, und ρ\rho verhält sich wie eine Korrelation, siehe Grundlagen: Korrelation.

Ein Beispiel: Das Modell von Korbwerk weiter unten findet ρ=0,34\rho = 0{,}34. Angenommen, das Modell lag in Woche 20 um 50 Bestellungen zu niedrig, also ε20=50\varepsilon_{20} = 50. Der erwartete Fehler in Woche 21 ist 0,34×50=170{,}34 \times 50 = 17, in Woche 22 sind es 0,34×17≈60{,}34 \times 17 \approx 6, und in Woche 23 etwa 2. Rund ein Drittel jeder Überraschung trägt sich in die Folgewoche, und innerhalb eines Monats ist sie verklungen.

Warum ist das wichtig? Die Methode der kleinsten Quadrate (OLS, die übliche Schätzung einer Regression) liefert auch bei autokorrelierten Fehlern noch vernünftige Koeffizienten, aber sie sind nicht mehr die besten Schätzungen, und die Tests darauf stimmen nicht. Meist kommen die p Werte zu klein heraus, Treiber sehen also wichtiger aus, als sie sind.1 Schlimmer noch für Prognosen: Das Modell wirft weg, was der Fehler der letzten Woche über die nächste sagt, und das ist kostenlose Information.

Zwei Diagnosen

Die erste ist die Durbin Watson Statistik:

DW=∑t=2T(et−et−1)2∑t=1Tet2≈2 (1−ρ^)DW = \frac{\sum_{t=2}^{T} (e_t - e_{t-1})^2}{\sum_{t=1}^{T} e_t^2} \approx 2\,(1 - \hat\rho)

Dabei ist ete_t das geschätzte Residuum in Woche tt, et−1e_{t-1} das Residuum eine Woche früher, TT die Zahl der Wochen und ρ^\hat\rho die geschätzte Autokorrelation der Residuen. Sie liegt zwischen 0 und 4 und ist 2, wenn es keine Autokorrelation gibt.2 Als grobe Richtschnur: Unter etwa 1,5 heißt positive Autokorrelation, der übliche Fall bei Umsatzdaten, über etwa 2,5 heißt negative Autokorrelation, oft ein Zeichen, dass die Reihe einmal zu oft differenziert wurde. Den Bezug zur Korrelation erklärt Grundlagen: Korrelation.

Ein Beispiel: Mit ρ^=0,34\hat\rho = 0{,}34 ergibt die Näherung 2×(1−0,34)=2×0,66=1,322 \times (1 - 0{,}34) = 2 \times 0{,}66 = 1{,}32. Das saisonale Modell von Korbwerk liefert 1,31. Klar unter 2, die Fehler müssen also behandelt werden.

Die zweite ist die Autokorrelationsfunktion, die ACF: ein Balken pro Verzögerung, der zeigt, wie stark die Residuen mit sich selbst eine, zwei, drei Wochen zuvor korrelieren. Der Balken bei Verzögerung kk ist

rk=∑t=k+1T(et−eˉ)(et−k−eˉ)∑t=1T(et−eˉ)2r_k = \frac{\sum_{t=k+1}^{T} (e_t - \bar{e})(e_{t-k} - \bar{e})}{\sum_{t=1}^{T} (e_t - \bar{e})^2}

Dabei ist rkr_k die Autokorrelation bei Verzögerung kk, ete_t das Residuum in Woche tt, et−ke_{t-k} das Residuum kk Wochen früher, eˉ\bar{e} das mittlere Residuum und TT die Zahl der Wochen.3 Es ist die Pearson Korrelation der Reihe mit einer verschobenen Kopie ihrer selbst, siehe Grundlagen: Korrelation.

Ein Beispiel: Für die Residuen von Korbwerk ist r1r_1 etwa 0,34, r2r_2 etwa 0,12 und r3r_3 etwa 0,04, jeder ungefähr ein Drittel des vorigen. Ein hoher Balken bei Verzögerung 1, und danach fällt alles so ab: Das ist die Handschrift von AR(1). Ein hoher Balken bei Verzögerung 52 hieße, dass dem Modell eine Saison fehlt.

Trend, Saison und der Rest

Es hilft zu sehen, was ein Kalendermodell auseinanderhalten will. Die additive Zerlegung schreibt jede Woche als drei Teile:

yt=Tt+St+Rty_t = T_t + S_t + R_t

Dabei ist yty_t die Zahl der Bestellungen in Woche tt, TtT_t der Trend (wo das Geschäft gerade steht), StS_t die saisonale Komponente (was diese Jahreszeit hinzufügt oder wegnimmt) und RtR_t der Rest, alles andere.4 Wächst der saisonale Ausschlag proportional mit dem Geschäft, passt die multiplikative Form yt=Tt×St×Rty_t = T_t \times S_t \times R_t besser, und das ist der Saisonindex aus Grundlagen: Saisonalität.

Ein Beispiel: In Woche 51 des Jahres 2025 stand der Trend von Korbwerk bei rund 308 Bestellungen, die letzte Bestellwoche vor Weihnachten bringt 523 dazu, Trend plus Saison sind also 308+523=831308 + 523 = 831. Tatsächlich kamen 845 Bestellungen, der Rest ist also 845−831=14845 - 831 = 14. Die Prognose besteht aus den ersten beiden Teilen. Beim Fehlerband geht es um den dritten.

Saisons als Dummy Variablen

Eine Dummy Variable ist eine Spalte voller Nullen mit Einsen in den Wochen einer Saison. Mehrere davon in einer Regression ergeben das saisonale Dummy Modell:

yt=β0+β1 t+∑k=1Kγk Dk,t+εty_t = \beta_0 + \beta_1\,t + \sum_{k=1}^{K} \gamma_k\,D_{k,t} + \varepsilon_t

Dabei ist yty_t die Zahl der Bestellungen in Woche tt. β0\beta_0 ist das Niveau einer normalen Woche zu Beginn der Stichprobe. β1\beta_1 ist der Trend, die Veränderung der Wochenbestellungen von einer Woche zur nächsten, und tt zählt die Wochen. Dk,tD_{k,t} ist 1, wenn Woche tt zur Saison kk gehört, sonst 0, bei insgesamt KK Saisons. γk\gamma_k (gamma) gibt an, wie viele Bestellungen Saison kk zu einer normalen Woche hinzufügt oder abzieht. εt\varepsilon_t ist der Fehler, der dem AR(1) Prozess von oben folgen darf. Der Teil β0+β1t\beta_0 + \beta_1 t ist der Trend TtT_t der Zerlegung, die Dummies sind die Saison StS_t. Es ist eine gewöhnliche Regression, siehe Grundlagen: Regression.

Die Versuchung ist, jeder der 52 Wochen einen eigenen Dummy zu geben. Bei 156 Wochen Geschichte sind das 52 Koeffizienten aus je drei Beobachtungen: die Vergangenheit perfekt nachgebildet, die Zukunft schlecht vorhergesagt, weil jedes zufällige Wackeln zur "Saison" wird. Fass die Wochen stattdessen zu Saisons zusammen, die für das Geschäft etwas bedeuten. Für einen Shop mit Geschenkkörben: November, Anfang Dezember, die letzte Bestellwoche vor Weihnachten, die tote Zeit um Neujahr, Jänner, Muttertag und Vatertag. Alles andere ist eine normale Woche, und die normale Woche misst der Achsenabschnitt.

Bewegliche Feiertage bekommen einen Dummy, der mit ihnen wandert.5 Der Muttertag ist in Österreich der zweite Sonntag im Mai:6 14. Mai 2023, 12. Mai 2024, 11. Mai 2025, 10. Mai 2026. In ISO Kalenderwochen ist das Woche 18 oder 19, er wandert also kaum. Der Vatertag ist in Österreich der zweite Sonntag im Juni:7 11. Juni 2023, 9. Juni 2024, 8. Juni 2025, 14. Juni 2026, also Woche 23 oder 24, auch er wandert kaum. Richtig wandern Ostern und mit ihm Christi Himmelfahrt, 39 Tage nach Ostersonntag und damit immer ein Donnerstag,8 in Österreich ein gesetzlicher Feiertag:9 18. Mai 2023, 9. Mai 2024, 29. Mai 2025, 14. Mai 2026, irgendwo zwischen Woche 18 und Woche 22. Ein Feiertag mitten in der Woche kostet einen Versandtag, und genau so ein Tag gehört aus dem Kalender gebaut, nicht aus der Wochennummer. Die Dummies für Muttertag und Vatertag markieren jeweils die zwei Wochen vor dem Tag, wo immer sie in einem Jahr liegen.

Noch eine Wahl: linearer oder logarithmischer Trend. Ein linearer Trend fügt jede Woche eine feste Zahl Bestellungen hinzu. Ein logarithmischer Trend, bei dem du den Logarithmus der Bestellungen regressierst, fügt einen festen Prozentsatz hinzu, und die Dummies werden ebenfalls zu prozentualen Effekten. Das ist richtig, wenn Weihnachten die Bestellungen verdreifacht, statt feste 500 dazuzulegen. Bei Korbwerk wuchs die Weihnachtsspitze von Jahr zu Jahr, aber weniger als proportional zu den normalen Wochen, und das lineare Modell gewann auf dem Holdout. Es ist eine Wahl, die du testen kannst. Logarithmen erklärt Grundlagen: Logarithmen.

Rechenbeispiel: die 156 Wochen von Korbwerk in einem Modell

Die Daten sind abgeschlossene Bestellungen pro Woche von der ersten ISO Woche 2023 (ab Montag, 2. Jänner) bis zur letzten Woche 2025, also 156 Wochen. Ich habe auf den ersten 130 Wochen geschätzt und die letzten 26 zurückgehalten, die zweite Hälfte von 2025 mit dem ganzen Weihnachtsgeschäft, als Holdout, den das Modell nie gesehen hat. Danach habe ich auf allen 156 Wochen neu geschätzt, um 2026 zu prognostizieren. Hier das neu geschätzte Modell mit AR(1) Fehlern.

TermKoeffizient (Bestellungen pro Woche)StandardfehlerLesart
Achsenabschnitt (normale Woche, Anfang 2023)2129eine normale Woche zu Beginn der Stichprobe
Trend pro Woche0,620,09rund 32 zusätzliche Wochenbestellungen pro Jahr
November (Wochen 45 bis 48)plus 14821Geschenkekäufer fangen früh an, Firmenanfragen kommen
Anfang Dezember (Wochen 49 und 50)plus 39129der Anstieg
Letzte Bestellwoche (Woche 51)plus 52341die Spitze, die Woche mit dem Band
Weihnachten bis Neujahr (Wochen 52 und 1)minus 9629am Stefanitag bestellt niemand einen Geschenkkorb
Jänner (Wochen 2 bis 5)minus 6121die Wochen der guten Vorsätze
Muttertag (zwei Wochen davor)plus 11729zweite Spitze des Jahres
Vatertag (zwei Wochen davor)plus 6429kleiner und unsicherer
Firmenkundenkampagne läuft (Ereignis)plus 8826die Wochen, in denen ein Mailing an Firmen lief

Gütemaße: R2R^2 von 0,91, ein Standardfehler der Residuen von 36 Bestellungen pro Woche für die frischen Schocks utu_t, Durbin Watson 1,31, geschätztes ρ\rho von 0,34. Die angegebenen Standardfehler berücksichtigen die AR(1) Fehler. Die naiven aus gewöhnlichem OLS waren rund 30 % kleiner und ließen den Vatertagseffekt viel sicherer aussehen, als er ist.

Zeile für Zeile gelesen. Eine normale Woche Anfang 2023 brachte 212 Bestellungen, und jede Woche seither hat 0,62 dazugelegt (0,62×52≈320{,}62 \times 52 \approx 32 pro Jahr), eine normale Woche Ende 2025 liegt also bei 212+0,62×156≈309212 + 0{,}62 \times 156 \approx 309. Der November legt 148 auf den Trend, Anfang Dezember 391 und Woche 51 523, eine Woche 51 Ende 2025 kommt also auf rund 830 Bestellungen. Dann fällt der Boden weg: Die Wochen um Neujahr liegen 96 unter einer normalen Woche und der Jänner 61 darunter.

Der Muttertag ist in jeder der beiden Wochen davor 117 zusätzliche Bestellungen wert. Der Vatertag bringt 64 mit einem Standardfehler von 29, die ehrliche Aussage ist also ein 90 % Intervall von 64±1,645×2964 \pm 1{,}645 \times 29, ungefähr 16 bis 112, "wahrscheinlich um die 60". Der Dummy für die Firmenkampagne sagt, dass ein laufendes Mailing rund 88 Bestellungen pro Woche wert ist. Das ist die Zahl, die Lena haben wollte, und die Zahl, die ich ohne den Standardfehler daneben nicht geglaubt hätte.

Eine typische Woche je SaisonErwartete Bestellungen in einer Woche jeder Saison, Ende 2025: normale Woche 309, November 457, Anfang Dezember 700, Woche 51 832, Weihnachten bis Neujahr 213, Jänner 248, Muttertag 426, Vatertag 373.Erwartete Bestellungen in einer Woche, Ende 202502505007501.000309NormaleWoche457November700AnfangDezember832Woche51213WeihnachtenbisNeujahr248Jänner426Muttertag373VatertagBestellungen pro WocheSaison

Die waagrechte Achse listet die Saisons, die senkrechte die erwarteten Bestellungen in einer Woche dieser Saison, die normale Woche von 309 plus den Koeffizienten der Saison. Die Botschaft: Woche 51 ist fast drei normale Wochen, und die Wochen danach sind die ruhigsten des Jahres. Wer für "eine durchschnittliche Woche" plant, plant für keine davon.

Einfache Modelle, die schwer zu schlagen sind

Bevor du dich in eine Regression verliebst, lern die Vergleichsmaßstäbe kennen. Das saisonale naive Verfahren sagt, jede Woche wird so wie dieselbe Woche im Vorjahr.10 Nimm einen Wachstumsfaktor dazu, und du hast ein Modell, das viele Unternehmen schon morgen gut gebrauchen könnten:

y^t=g×yt−52\hat y_{t} = g \times y_{t-52}

Dabei ist y^t\hat y_t die Prognose für Woche tt, yt−52y_{t-52} die tatsächliche Zahl der Bestellungen in derselben Woche ein Jahr zuvor und gg der Wachstumsfaktor, 1,12 für 12 % Wachstum. Ein Wachstumsfaktor ist eine prozentuale Veränderung, als Multiplikator geschrieben, siehe Grundlagen: Prozente, und vergleichbare Wochen im Abstand eines Jahres zu vergleichen ist die Idee des Vorjahresvergleichs aus Grundlagen: Saisonalität.

Ein Beispiel: Woche 51 des Jahres 2024 brachte 780 Bestellungen, die Woche mit dem Band. Das saisonale naive Verfahren mit Wachstum sagt für Woche 51 des Jahres 2025 1,12×780=873,61{,}12 \times 780 = 873{,}6 voraus, rund 874. Tatsächlich waren es 845, ein Fehler von 29 Bestellungen, also 29/845=3,4 %29 / 845 = 3{,}4\,\%. Es weiß nichts, kostet nichts und ist peinlich schwer zu schlagen.

Die exponentielle Glättung nach Holt Winters führt drei laufende Werte, ein Niveau, einen Trend und ein saisonales Muster, und schiebt jeden ein Stück in Richtung dessen, was gerade passiert ist.11 Sie passt sich an, wenn sich das Geschäft verändert, was das Dummy Modell nicht tut, und sie braucht kein Kalenderwissen. Das ist zugleich ihre Schwäche: Sie kann nicht wissen, dass Himmelfahrt dieses Jahr drei Wochen später liegt.

ARIMA (AutoRegressive Integrated Moving Average) sind drei Ideen, zusammengeschraubt.12 AR: die Reihe auf ihre eigene Vergangenheit regressieren. I: sie differenzieren, diese Woche minus letzte Woche, um den Trend zu entfernen. MA: auf vergangene Fehler regressieren. Die kleinste nützliche Version, ARIMA(1,1,1), lautet

yt′=c+ϕ1 yt−1′+θ1 ut−1+ut,yt′=yt−yt−1y'_t = c + \phi_1\,y'_{t-1} + \theta_1\,u_{t-1} + u_t, \qquad y'_t = y_t - y_{t-1}

Dabei ist yt′y'_t die Veränderung der Bestellungen von letzter Woche zu dieser, cc eine konstante Drift, ϕ1\phi_1 (phi), wie viel von der Veränderung der Vorwoche sich wiederholt, yt−1′y'_{t-1} die Veränderung der Vorwoche, θ1\theta_1 (theta), wie viel vom Schock der Vorwoche hinüberreicht, ut−1u_{t-1} der Schock der Vorwoche und utu_t der dieser Woche. Saisonales ARIMA wiederholt den Trick bei Verzögerung 52 und vergleicht jede Woche mit derselben Woche ein Jahr zuvor. Jedes Teil ist eine Regression auf verzögerte Werte, siehe Grundlagen: Regression.

Ein Beispiel, mit Koeffizienten, die nur zur Veranschaulichung erfunden sind: c=0,6c = 0{,}6, ϕ1=0,3\phi_1 = 0{,}3, θ1=−0,5\theta_1 = -0{,}5. Letzte Woche stiegen die Bestellungen um 20, und der Schock der letzten Woche war plus 10. Die prognostizierte Veränderung ist 0,6+0,3×20−0,5×10=0,6+6−5=1,60{,}6 + 0{,}3 \times 20 - 0{,}5 \times 10 = 0{,}6 + 6 - 5 = 1{,}6, für nächste Woche werden also die Bestellungen dieser Woche plus rund 2 vorhergesagt.

Mein Dummy Modell mit AR(1) Fehlern ist im Grunde ein kleines ARIMA mit von Hand gebauten Kalenderregressoren, was die Lehrbücher Regression mit ARIMA Fehlern nennen,1 und deshalb landen die beiden in der Tabelle unten nah beieinander.

Meine Regel: Das Modell, das in den Betrieb geht, muss das saisonale naive Verfahren mit Wachstum auf einem Holdout schlagen, und zwar mit einem Abstand, der eine Entscheidung ändern würde. Schafft es das nicht, hat es seine Komplexität nicht verdient, und genau das steht dann im Papier.

Eine Prognose an Wochen beurteilen, die sie nie gesehen hat

Gütemaße betreffen die Vergangenheit. Eine Prognose wird auf dem Holdout beurteilt, den vor dem Modell verborgenen Wochen, mit zwei Maßen:

MAE=1n∑t=1n∣yt−y^t∣MAPE=100n∑t=1n∣yt−y^tyt∣\text{MAE} = \frac{1}{n}\sum_{t=1}^{n}\left|y_t - \hat y_t\right| \qquad \text{MAPE} = \frac{100}{n}\sum_{t=1}^{n}\left|\frac{y_t - \hat y_t}{y_t}\right|

yty_t ist der tatsächliche Wert in Holdout Woche tt, y^t\hat y_t die Prognose dafür, nn die Zahl der Holdout Wochen, und die senkrechten Striche nehmen die Größe des Fehlers ohne sein Vorzeichen. Der MAE, der mittlere absolute Fehler, ist in Bestellungen angegeben, der Zahl, die das Lager versteht. Der MAPE, der mittlere absolute prozentuale Fehler, lässt sich über Produkte und Shops vergleichen, ist aber undefiniert, wenn eine Woche null Verkäufe hat, und extrem, wenn sie sehr wenige hat.13 Beides sind Mittelwerte, siehe Grundlagen: der Mittelwert, und die Prozente erklärt Grundlagen: Prozente.

Ein Beispiel: Ein Fehler von 28 Bestellungen in der toten Woche nach Weihnachten, bei 236 tatsächlichen Bestellungen, sind 28/236=11,9 %28 / 236 = 11{,}9\,\%. Dieselben 28 Bestellungen in Woche 51, bei 845 tatsächlichen Bestellungen, wären 28/845=3,3 %28 / 845 = 3{,}3\,\%. Dieselben Bestellungen, ein ganz anderer Prozentsatz. Ich plane deshalb mit dem MAE und vergleiche mit dem MAPE.

Hier die Tabelle für den Holdout von 26 Wochen. Die letzte Spalte ist die Prognose für das ganze vierte Quartal 2025 minus dem, was tatsächlich passiert ist, in Prozent.

ModellMAE (Bestellungen pro Woche)MAPEQ4 2025 gesamt, Prognose minus Ist
Saisonal naiv (dieselbe Woche im Vorjahr)4114,2 %minus 7,8 %
Saisonal naiv mal 1,12 Wachstum3311,0 %plus 1,9 %
Saisonale Dummy Regression, gewöhnliches OLS299,6 %minus 3,6 %
Saisonale Dummy Regression mit AR(1) Fehlern268,7 %minus 3,1 %
Exponentielle Glättung nach Holt Winters309,9 %plus 3,4 %
Saisonales ARIMA, automatisch ausgewählt3110,3 %minus 4,1 %

So liest du sie. Das einfache saisonale naive Verfahren schätzt fast 8 % zu niedrig, weil es nicht weiß, dass der Shop wächst. Mit Wachstumsfaktor ist es plötzlich ernst zu nehmen, im Quartal innerhalb von 2 % und nur 7 Bestellungen pro Woche hinter dem Sieger. Das Dummy Modell mit AR(1) Fehlern gewinnt beim MAE mit 26 Bestellungen pro Woche, und die AR(1) Korrektur allein bringt gegenüber gewöhnlichem OLS 3 Bestellungen pro Woche, 3/29≈10 %3 / 29 \approx 10\,\% weniger Fehler ohne einen einzigen zusätzlichen Datenpunkt. Alle ernsthaften Modelle liegen bei der Quartalssumme innerhalb von etwa 4 %. Die Unterschiede stecken in den einzelnen Wochen, und dort wird das Band bestellt.

Holdout Q4 2025, tatsächliche Bestellungen gegen PrognoseBestellungen in den ISO Wochen 40 bis 52 des Jahres 2025 gegen das Modell, das ohne sie geschätzt wurde. Die tatsächlichen Bestellungen reichen von 281 bis zu einer Spitze von 845 in Woche 51, danach 236. Die Prognose steigt in Stufen von etwa 304 im Oktober auf 453, 696, 828 in Woche 51 und 208.Tatsächliche und prognostizierte Bestellungen, Q4 202502505007501.000W40W43W46W49W52IstPrognoseBestellungen pro WocheISO Woche 2025

Die waagrechte Achse ist die ISO Woche 2025, die senkrechte die Bestellungen pro Woche. Die Prognose ist eine Treppe, weil Dummies innerhalb einer Saison flach sind und dazwischen eine Stufe machen, und die tatsächlichen Werte schwanken um sie herum.

Rechenbeispiel: das Holdout Quartal bewerten

Über diese 13 Wochen sind die absoluten Fehler 22, 30, 8, 37, 4, 21, 45, 1, 58, 27, 45, 17 und 28 Bestellungen. Zusammen sind das 343, der MAE ist also 343/13≈26,4343 / 13 \approx 26{,}4 Bestellungen. Der MAPE kommt auf 6,2 %, weniger als der Wert über 26 Wochen, weil die schwachen Sommerwochen im längeren Holdout diesen Prozentsatz nach oben ziehen. Die prognostizierte Summe für das Quartal ist 5.760 gegen 5.945 tatsächliche, 5.760/5.945−1=−3,1 %5.760 / 5.945 - 1 = -3{,}1\,\%, die Zahl in der Tabelle.

Der größte relative Fehler ist Woche 52, 208 prognostiziert gegen 236 tatsächlich, 12 % daneben in einer Woche, die für den Betrieb keine Rolle spielt. Der Fehler, auf den es angekommen wäre, Woche 51, war 828 gegen 845, 2 %. Das ist die Woche, in der mit "ein bisschen mehr als letztes Jahr" das Band ausging.

Das Fehlerband ist die Prognose

Eine Punktprognose ohne Band ist ein Ziel im Tabellenkostüm. Das Band ist das Prognoseintervall:

y^T+h±z0.90 σ^hσ^h2=σ^u2 1−ρ2h1−ρ2+xT+h⊤V xT+h\hat y_{T+h} \pm z_{0.90}\,\hat\sigma_h \qquad \hat\sigma_h^2 = \hat\sigma_u^2\,\frac{1 - \rho^{2h}}{1 - \rho^2} + \mathbf{x}_{T+h}^\top \mathbf{V}\,\mathbf{x}_{T+h}

y^T+h\hat y_{T+h} ist die Punktprognose hh Wochen nach der letzten beobachteten Woche TT. z0.90z_{0.90} ist 1,28, das Quantil der Normalverteilung, das in jedem Ende 10 % übrig lässt, das Band deckt also 80 % ab.14 σ^h\hat\sigma_h ist der Standardfehler der Prognose beim Horizont hh und hat zwei Teile. Der erste ist die aufsummierte Fehlervarianz von AR(1): σ^u2\hat\sigma_u^2 ist die Varianz der frischen Schocks, und der Bruch wächst mit hh gegen 1/(1−ρ2)1/(1-\rho^2), weit voraus ist die Fehlervarianz also σ^u2/(1−ρ2)\hat\sigma_u^2/(1-\rho^2). Der zweite ist die Unsicherheit über die Koeffizienten: xT+h\mathbf{x}_{T+h} ist die Zeile der Regressoren für die Prognosewoche (der Trendwert und welche Dummies an sind), ⊤^\top legt sie auf die Seite, und V\mathbf{V} ist die Kovarianzmatrix der geschätzten Koeffizienten, die quadrierten Standardfehler plus wie sie sich gemeinsam bewegen. Die Normalverteilung und ihre Quantile erklärt Grundlagen: Verteilungen, den Standardfehler Grundlagen: Streuung und die Matrizenrechnung Grundlagen: Matrizen.

Rechenbeispiel: das Band für Woche 51 des Jahres 2026

Woche 51 des Jahres 2026 ist Woche 207 der Daten, 51 Wochen nach der letzten beobachteten Woche, ρ2h\rho^{2h} ist also praktisch null. Der Fehlerteil ist 362/(1−0,342)=1.296/0,8844≈1.46536^2 / (1 - 0{,}34^2) = 1.296 / 0{,}8844 \approx 1.465. Der Koeffiziententeil hat zwei Stücke: Achsenabschnitt und Trend zusammen, die in der Kovarianzmatrix dieses Beispiels bei Woche 207 auf rund 123 kommen (sie heben sich teilweise auf, weil ein höherer Achsenabschnitt mit einem flacheren Trend einhergeht), und den Dummy für Woche 51, 412=1.68141^2 = 1.681. Insgesamt ist σ^h2≈1.465+123+1.681=3.269\hat\sigma_h^2 \approx 1.465 + 123 + 1.681 = 3.269, also σ^h≈57,2\hat\sigma_h \approx 57{,}2. Die Punktprognose ist 212+0,62×207+523≈863212 + 0{,}62 \times 207 + 523 \approx 863. Das Band ist 863±1,28×57,2=863±73863 \pm 1{,}28 \times 57{,}2 = 863 \pm 73, also 790 bis 936. Woche 51 bekommt das breiteste Band des Quartals, vor allem weil ihr Dummy auf nur drei Wochen Geschichte ruht.

Zwei Dinge, die oft verwechselt werden. Ein Konfidenzintervall sagt, wo die durchschnittliche Woche 51 landen würde, wenn man die Geschichte viele Male neu ablaufen lassen könnte. Ein Prognoseintervall sagt, wo die tatsächliche Woche 51 landen wird, und es ist immer breiter. Zum Planen brauchst du das Prognoseintervall, siehe Grundlagen: Konfidenzintervalle. Und 80 %, nicht 95 %: Ein 95 % Band ist bei einem jungen Shop zu breit, um irgendetwas zu entscheiden, während 80 % heißt, dass eine von fünf Wochen außerhalb landet, eine Quote, die man spüren und einplanen kann.

Hier die Prognose für Q4 2026 aus dem Modell, das auf allen 156 Wochen neu geschätzt wurde. Wochen innerhalb einer Saison unterscheiden sich nur durch den Trend, deshalb zeige ich jede Saison einmal. 2026 ist im ISO Kalender ein langes Jahr, mit einer Woche 53 vom 28. Dezember bis 3. Jänner,15 und dieses Beispiel zählt diese Woche zum neuen Jahr, das Quartal umfasst hier also die Wochen 40 bis 52.

Woche 2026Punktprognose80 % unten80 % obenAktive Saison
40 bis 44 (je Woche)335284386normal
45 bis 48 (je Woche)486428544November
49 und 50 (je Woche)730667793Anfang Dezember
51863790936letzte Bestellwoche
52245182308Weihnachten bis Neujahr
Q4 gesamt6.1905.8506.530

Die Summe ist 5×335+4×486+2×730+863+245=6.1875 \times 335 + 4 \times 486 + 2 \times 730 + 863 + 245 = 6.187, gerundet 6.190. Das Band für die Quartalssumme, 5.850 bis 6.530, ist relativ gesehen schmaler als die Wochenbänder: plus oder minus 5,5 % gegen plus oder minus 8,5 % in Woche 51. Wöchentliche Fehler heben sich über ein Quartal teilweise auf, aber wegen der Autokorrelation weniger, als unabhängige Fehler es täten. Ignorierst du ρ\rho, kommt der Fehlerteil des Quartalsbands um mehr als ein Viertel zu schmal heraus.

Prognose, Ziel, Entscheidung

Der Marketingplan von Korbwerk sagt 7.000 Bestellungen in Q4 2026. Die Prognose sagt 6.190, mit einem 80 % Band, das bei 6.530 endet. Die beiden widersprechen sich nicht, sie sind verschiedene Dinge. Die Prognose ist, was passiert, wenn der Shop weitermacht wie bisher. Das Ziel ist, was Lena will. Die Lücke, rund 810 Bestellungen, muss das Marketing über den Trend hinaus erarbeiten, und jetzt hat sie eine Größe, also kann sie ein Budget und einen Testplan bekommen.

Lass das Ziel nie still zur Prognose werden. Dann plant das Lager für 7.000, die Buchhaltung bucht den Umsatz ein, und im Jänner entdeckt jemand, dass Hoffnung keine Saison ist.

Rechenbeispiel: vom Band zur Bestellung und zum Dienstplan

Das Beispiel nimmt an, dass die Verpackung pro Korb rund € 1,80 Lagerkosten verursacht und sich jahrelang hält, ein Überschuss kostet also wenig und ein Mangel viel. Verpackung wird deshalb auf das obere Band bestellt: 940 Kartons und Bandlängen für Woche 51 und 795 für jede der beiden Wochen davor. Verderbliches wird auf die Punktprognose bestellt, mit einem Nachbestellpunkt am Ende von Woche 49.

Das Beispiel nimmt außerdem an, dass eine Person im Packteam rund 140 Körbe pro Woche schafft. Woche 51 braucht 863/140≈6,2863 / 140 \approx 6{,}2 Leute bei der Punktprognose und 936/140≈6,7936 / 140 \approx 6{,}7 beim oberen Band, also werden sechs eingeplant und eine siebte Schicht bis Woche 49 fest zugesagt, falls der November über 500 pro Woche hereinkommt. Das Band geht nicht wieder aus, und niemand verbringt einen Freitagabend auf der Suche danach quer durch Linz.

Selbst durchführen

Die Daten, die du brauchst: eine Zeile pro Woche mit abgeschlossenen Bestellungen, idealerweise auch dem Umsatz, mindestens zwei volle Jahre zurück und besser drei, denn eine Saison, die man einmal gesehen hat, ist eine Anekdote, und eine, die man zweimal gesehen hat, eine Hypothese. Aus einem Solidus Shop ist das eine Abfrage:

select date_trunc('week', completed_at)::date as week_start,
       count(*)                              as orders,
       sum(total)                            as revenue
from spree_orders
where state = 'complete'
  and completed_at >= '2023-01-02'
group by 1
order by 1;

Dann die Saisons, ein Holdout, gewöhnliches OLS für die Durbin Watson Prüfung und eine neue Schätzung mit AR(1) Fehlern über GLSAR aus statsmodels, das eine Regression mit autoregressiven Fehlern in einem iterativen zweistufigen Verfahren schätzt:16

import pandas as pd, statsmodels.api as sm

df = pd.read_csv("weekly_orders.csv", parse_dates=["week_start"])
df["t"] = range(1, len(df) + 1)
df["iso_week"] = df.week_start.dt.isocalendar().week.astype(int)
df["nov"] = df.iso_week.between(45, 48).astype(int)
df["early_dec"] = df.iso_week.between(49, 50).astype(int)
df["w51"] = (df.iso_week == 51).astype(int)
df["xmas_ny"] = df.iso_week.isin([52, 53, 1]).astype(int)
df["jan"] = df.iso_week.between(2, 5).astype(int)
# Feiertage und Anlässe (Muttertag, Vatertag, Ostern, Christi Himmelfahrt) kommen aus einer Datumstabelle, nicht aus der Wochennummer

X = sm.add_constant(df[["t", "nov", "early_dec", "w51", "xmas_ny", "jan"]])
train, test = df.index < 130, df.index >= 130
ols = sm.OLS(df.orders[train], X[train]).fit()
print("Durbin Watson:", round(sm.stats.durbin_watson(ols.resid), 2))

ar1 = sm.GLSAR(df.orders[train], X[train], rho=1).iterative_fit(maxiter=5)
print("rho:", round(ar1.model.rho[0], 2))
pred = ar1.predict(X[test])  # der Kalenderteil, der Fehler der Vorwoche kommt mit rho^h obendrauf und verklingt schnell
print("Holdout MAE:", round((pred - df.orders[test]).abs().mean(), 1))

naive = df.orders.shift(52) * 1.12
print("MAE naiv mit Wachstum:", round((naive[test] - df.orders[test]).abs().mean(), 1))

Ich habe es auf einer simulierten Reihe von 156 Wochen laufen lassen, gebaut aus den Koeffizienten oben. Schlägt deine Regression die letzte Zeile auf dem Holdout nicht, halt an und denk nach, bevor du irgendetwas hinzufügst.

Wie lange es dauert: ein Tag für saubere Wochendaten und ein erstes Modell, eine Woche, um Saisons, Holdout und Bänder festzuzurren, ein paar Tage mehr für eine Tabelle, die Lager und Marketingleitung beide akzeptieren. Länger, wenn die Geschichte ausverkaufte Wochen enthält, denn eine ausverkaufte Woche zeichnet auf, was du liefern konntest, nicht was die Leute wollten.

Prüfungen, bevor du ihm traust. Trag die Residuen über die Zeit auf und such nach Läufen über und unter null. Schau dir die ACF der Residuen bei den Verzögerungen 1 und 52 an. Prüf, ob die geschätzten Quartalssummen mit der Buchhaltung übereinstimmen. Dann zeig das Band den Leuten, die danach handeln werden, und frag, was passieren müsste, damit die tatsächlichen Werte es verlassen. Ihre Antworten sind die Ereignis Dummies des nächsten Jahres.

Fallstricke

Ein Dummy für jede Woche. Zweiundfünfzig Dummies auf drei Jahren Daten sind Auswendiglernen, nicht Modellieren. Fass Wochen zu Saisons zusammen, die das Geschäft kennt, und lass dir von der ACF sagen, ob du eine übersehen hast.

Feiertage, die wandern. Christi Himmelfahrt springt mit Ostern zwischen den Wochen 18 und 22,8 Ostern selbst wandert durch März und April, und 2024 lagen Christi Himmelfahrt und Muttertag sogar in derselben Kalenderwoche, so dass ein Modell die beiden nur auseinanderhalten kann, weil sie in anderen Jahren getrennt liegen. Der Black Friday, der Freitag nach dem vierten Donnerstag im November,17 wechselt zwischen den Wochen 47 und 48. Manche Jahre haben 53 ISO Wochen, so wie 2026.15 Ein fester Wochendummy für einen beweglichen Feiertag verschmiert den Effekt über zwei Wochen und halbiert ihn. Bau den Dummy aus dem Kalender, nicht aus der Wochennummer.

Nach der Anpassung benoten. Ein R2R^2 von 0,91 auf den Trainingsdaten sagt, dass das Modell die Vergangenheit gelernt hat. Nur der Holdout sagt, ob es irgendetwas über die Zukunft weiß. Stimmst du die Saisons ab, indem du auf den Holdout Fehler schaust, hast du ihn zu Trainingsdaten gemacht und brauchst einen neuen.

Die naiven Standardfehler berichten. Der Vatertagseffekt hatte vor der AR(1) Korrektur einen t Wert von 3,1 und danach 64/29=2,264 / 29 = 2{,}2. Das eine ist ein Befund, das andere ein Vielleicht, und wer den Shop führt, verdient zu wissen, welches.

Das Ziel zur Prognose werden lassen. Der Plan sagt 7.000, also wird die Prognose angeschoben, eine Annahme nach der anderen, bis sie auch 7.000 sagt. Dann hat niemand mehr eine Prognose. Halt sie in getrennten Spalten, benenne die Lücke und lass das Marketing sie erarbeiten.

Wie ich das für Kunden mache

Das Ergebnis ist eine Prognose, gegen die das Unternehmen planen kann, kein Modell: eine Tabelle von Wochen mit Punktprognose, 80 % Band und Saison, dazu ein Entscheidungspapier auf einer Seite, das sagt, was bestellt wird, wer im Dienstplan steht und was die tatsächlichen Werte aus dem Band drücken würde. Dahinter steht das Modell, in einem Repository, das dir gehört, mit der Holdout Tabelle, die zeigt, was es geschlagen hat und um wie viel.

Es beginnt mit dem kostenlosen Workshop, in dem wir uns deine Geschichte anschauen und uns auf die Saisons, die Ereignisse und die Entscheidungen einigen, die die Prognose stützen soll. Danach zwei Wochen echte Arbeit auf meine Rechnung, bevor du dich auf irgendetwas festlegst: die Wochendaten, die Kalenderdummies, die Vergleichsmaßstäbe, der Holdout und das Papier. Ist die Geschichte zu kurz oder zu lückenhaft für eine ehrliche Prognose, steht genau das im Papier, mit dem, was du sammeln solltest und wie lange.

Die Daten, die ich brauche, sind unspektakulär: Bestellungen und Umsatz pro Woche für mindestens zwei Jahre, die Daten jeder Kampagne, jedes ausverkauften Artikels und jeder Preisänderung, an die du dich erinnerst, und die letzten Bestelltermine, die du vor jedem Weihnachten veröffentlicht hast. Bei Solidus Shops hole ich das direkt aus der Datenbank, als Teil meiner Arbeit an der Solidus Entwicklung. Die Modellierung gehört zur Data Science, und die Honorare stehen auf der Preisseite. Deine Rohdaten bleiben deine (die Regeln für Code und Modelle stehen in den Bedingungen für Analytics und Data Science), und die Zahlen kommen mit Fehlermargen oder gar nicht.

Für den breiteren Werkzeugkasten deckt mein vollständiger Leitfaden zu Prognosen die Familien der Verfahren ab, und der Beitrag über KI gestützte Bedarfsprognosen für eCommerce zeigt, was sich ändert, wenn du Tausende Produkte hast statt eines Shops.

Fragen an jeden, der dir eine Prognose vorlegt

  • Wie breit ist das 80 % Band um diese Zahl, in Stück, und welche Woche ist die breiteste?
  • Welche Wochen wurden zurückgehalten, als das Modell beurteilt wurde, und wie hoch war der MAE darauf?
  • Hat es "dieselbe Woche im Vorjahr plus Wachstum" geschlagen? Um wie viel?
  • Wie hoch war die Durbin Watson Statistik, und was habt ihr dagegen getan?
  • Wie werden bewegliche Feiertage behandelt, und was passiert in einem Jahr mit 53 Wochen?
  • Wo steht das Ziel getrennt von der Prognose, und wie groß ist die Lücke?
  • Was müsste passieren, damit die tatsächlichen Werte aus dem Band fallen, und wer achtet darauf?

Die Serie ist von Mike Grigsbys Marketing Analytics inspiriert.18 Die Erklärungen, Beispiele und Zahlen hier sind meine eigenen.

Footnotes

  1. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Kapitel 10 Dynamic regression models, Abschnitt 10.1 Estimation (Regression mit ARIMA Fehlern), OTexts, 2021, https://otexts.com/fpp3/regarima.html

  2. statsmodels, statsmodels.stats.stattools.durbin_watson, Dokumentation, https://www.statsmodels.org/stable/generated/statsmodels.stats.stattools.durbin_watson.html

  3. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 2.8 Autocorrelation, OTexts, 2021, https://otexts.com/fpp3/acf.html

  4. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 3.2 Time series components, OTexts, 2021, https://otexts.com/fpp3/components.html

  5. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 7.4 Some useful predictors (saisonale Dummy Variablen, Ostern), OTexts, 2021, https://otexts.com/fpp3/useful-predictors.html

  6. Wikipedia, Muttertag (Abschnitt Daten in der Welt: Österreich am zweiten Sonntag im Mai), https://de.wikipedia.org/wiki/Muttertag

  7. Wikipedia, Vatertag (Abschnitt Österreich: der zweite Sonntag im Juni), https://de.wikipedia.org/wiki/Vatertag

  8. Wikipedia, Christi Himmelfahrt (39 Tage nach dem Ostersonntag, immer ein Donnerstag), https://de.wikipedia.org/wiki/Christi_Himmelfahrt

  9. Republik Österreich, Arbeitsruhegesetz (ARG), § 7 Feiertagsruhe, Abs. 2, Rechtsinformationssystem des Bundes (RIS), 2026, https://www.ris.bka.gv.at/Dokumente/Bundesnormen/NOR40213419/NOR40213419.html

  10. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 5.2 Some simple forecasting methods (saisonal naiv), OTexts, 2021, https://otexts.com/fpp3/simple-methods.html

  11. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 8.3 Methods with seasonality (Holt Winters), OTexts, 2021, https://otexts.com/fpp3/holt-winters.html

  12. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 9.5 Non seasonal ARIMA models, OTexts, 2021, https://otexts.com/fpp3/non-seasonal-arima.html

  13. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 5.8 Evaluating point forecast accuracy, OTexts, 2021, https://otexts.com/fpp3/accuracy.html

  14. Hyndman und Athanasopoulos, Forecasting: Principles and Practice, 3. Auflage, Abschnitt 5.5 Distributional forecasts and prediction intervals (Tabelle der Multiplikatoren, 1,28 für 80 %), OTexts, 2021, https://otexts.com/fpp3/prediction-intervals.html

  15. Wikipedia, ISO week date (Wochen pro Jahr: Jahre, die an einem Donnerstag beginnen, haben 53 Wochen), https://en.wikipedia.org/wiki/ISO_week_date

  16. statsmodels, statsmodels.regression.linear_model.GLSAR, Dokumentation, https://www.statsmodels.org/stable/generated/statsmodels.regression.linear_model.GLSAR.html

  17. Wikipedia, Black Friday (der Freitag nach Thanksgiving, dem vierten Donnerstag im November), https://de.wikipedia.org/wiki/Black_Friday

  18. Mike Grigsby, Marketing Analytics: A Practical Guide to Improving Consumer Insights Using Data Techniques, Kogan Page, 2022, ISBN 9781398608191, https://www.netgalley.co.uk/catalog/book/267990

Wenn du zwei oder drei Jahre Wochenbestellungen hast und ein Weihnachtsgeschäft, das dich jedes Jahr überrascht, bring die Reihe in den kostenlosen Workshop mit, auch als groben Export. Wir einigen uns auf die Saisons und die Entscheidungen, die die Prognose stützen soll, und dann gehen die ersten zwei Wochen echter Arbeit auf meine Rechnung. Ist deine Geschichte zu kurz für eine ehrliche Prognose, sage ich dir das und was du sammeln solltest.