Jeden Morgen 45 Minuten Excel-Tapete für den Tagesreport — bis kein Mensch mehr die Datei verstand. Eine Pipeline später startet der Tag mit Zahlen statt mit Tipparbeit.
Die Ausgangssituation
Ein Druckbetrieb mit ca. 60 Mitarbeitern brauchte jeden Morgen ein konsolidiertes KPI-Bild aus zwei Datenquellen: SQL Server für die Produktionsdaten, Webshop-API für Online-Bestellungen. Der Controller hat das Bild jeden Tag manuell zusammengeklickt — etwa 45 Minuten Arbeit, bevor der eigentliche Tag beginnt.
Auslöser war ein Geschäftsführer-Frust: nach drei Wochen Urlaub des Controllers hatte schlicht niemand mehr den Überblick. Die Excel war so gewachsen und mit Makros gespickt, dass die Vertretung sie nicht entziffern konnte. Aus Resilienz-Sorge wurde das Thema priorisiert.
Unser Vorgehen
Erst kurze Bestandsaufnahme: Welche Werte gehören wirklich täglich auf den Tisch — welche eigentlich nur wöchentlich? Heraus kamen 6 KPIs, die täglich relevant sind, plus 4 Abweichungs-Trigger („Alarm wenn Liefertreue unter 95 %“). Statt einer pixelgetreuen Excel-Replik einen schlanken Mail-Report mit klaren Zahlen.
Die Lösung
- Python-Pipeline um 06:00 Uhr automatisch gestartet (Docker-Container, cron-getriggert)
- Datenfusion aus SQL Server + Webshop-REST-API mit pandas
- Mail-Report als HTML mit eingebetteten Charts und Plain-Text-Fallback
- Ausnahme-Alarme per separater Mail wenn Werte aus dem Rahmen fallen
- Logging und Monitoring, damit wir merken, wenn die Pipeline mal hängt
Das Ergebnis
- 45 Min × 220 Arbeitstage = ca. 165 Stunden/Jahr eingesparte Controller-Zeit
- Tagesreport zuverlässig um 06:32 in allen 7 relevanten Postfächern (durchschnittliche Pipeline-Laufzeit: 2,8 Sekunden)
- Vertretungsfähigkeit: während der Urlaubsvertretung wurden 0 manuelle Eingriffe nötig
- Datenqualität: 4 vorher unentdeckte Datenquellen-Lücken wurden in den ersten 2 Wochen sichtbar
- Projektkosten: 6.800 € — amortisiert nach knapp 4 Monaten allein durch Zeitersparnis
Was wir technisch besonders gemacht haben
Pipeline ist idempotent — wenn sie zweimal startet (z. B. Server-Reboot), passiert nichts Schlimmes. Datenstand wird historisiert, also können auch alte Tage rekonstruiert werden. Der Container läuft on-premise im Kunden-Netz, keine Cloud-Übermittlung. Bei Pipeline-Fehlern bekommt nur der Geschäftsführer eine Mail (nicht das ganze Team), damit Alert-Müdigkeit nicht entsteht.
„Der Controller hat 165 Stunden im Jahr zurückbekommen — das spürt man."— Geschäftsführer, Druckbetrieb Salzburg
Projekt mit ähnlichen Themen?
30 Minuten kostenloses Erstgespräch — wir hören zu, schauen uns Ihre Situation an und geben eine erste Einschätzung. Kein PowerPoint, kein Verkaufspitch.