Hier sieht der Betreiber, wie das Geschäft läuft: Umsatz nach Zeitraum, welche Artikel sich gut und welche sich schlecht verkaufen, zu welchen Uhrzeiten am meisten los ist, wer wie viel verkauft und wie viel Rabatt gegeben wurde. Es gibt drei Flächen: das Dashboard als Startseite mit den Zahlen von heute, Berichte mit nüchternen Tabellen und Analytik mit Diagrammen und Jahresvergleich. Alle Zahlen kommen aus dem, was ohnehin im System steht — Belege, Tagesabschlüsse, Rechnungen — es wird nichts extra erfasst. Auswertungen sind reines Lesen: nichts davon ändert Belege oder Buchungen. Seit 16.08.2026 hat jeder Berichte-Reiter einen CSV-Export der angezeigten Tabelle (Owner-Entscheid: „Kunde soll möglichst alles selbst auswerten können" — hebt die frühere Festlegung „bewusst kein Export" auf); PDF/Excel-Dateien gibt es weiterhin nicht, ein deutsches Excel öffnet die CSV aber per Doppelklick korrekt.
Keine Stockmotive: Die Aufnahmen stammen aus den reproduzierbaren DiKAS-Demos und zeigen die jeweilige Funktion im Produkt.
Umsätze nach Warengruppen vergleichen.
Die Umsatzentwicklung im Wochenvergleich sehen.
Vollständiger Überblick
Was DiKAS in diesem Bereich kann
Alle folgenden Punkte stammen aus dem gegen den Programmcode geprüften Funktionskatalog.
Steuerbezeichnung in Reporting + Umsatz-Analyse (Nachzug CH-2, 28.08.2026)
Spaltenköpfe der Warengruppen-Tabelle („MWST 8.1%", CSV-Export ebenso), die Karte „…-Aufschlüsselung" und die Diagramm-Serien der Umsatz-Analyse lesen die Steuerbezeichnung aus ConfigService.currentRates().taxName (CH „MWST", ES „IVA", Fallback „MwSt") statt eines Literals. Zahlen laufen über formatEur und damit auf CHF-Instanzen im de-CH-Format.
Dashboard (Admin-Startseite)
Tagesumsatz, Belegzahl, Durchschnittsbon, Umtausche + Sparklines, Stosszeiten-Heatmap, Zahlungsarten-Donut, Top-5 heute, 7-Tage-Balken; lädt sich alle 30 s neu
GET /api/v1/reports/live-pulse - fünf Kacheln in EINER Antwort für die Schichtleitung unterwegs: Umsatz heute samt Vergleich mit dem gleichen Wochentag der Vorwoche, offene Tische, Küchen-Rückstau des GANZEN Hauses (offene Positionen + älteste; dieselbe Regel wie der Küchenmonitor, aber ohne dessen Arbeitsplatzfilter — die Zahl liegt bei mehreren Küchen-Arbeitsplätzen über jeder einzelnen Monitorzahl), eingestempeltes Personal, heutige Reservierungen. Erfindet KEINE Kennzahl, jede Kachel ist eine vorhandene Abfrage; jede trägt ein eigenes available (ERROR/PERMISSION_DENIED/MODULE_NOT_LICENSED/NO_DATA), damit ein Ausfall nicht wie eine Null aussieht — inklusive des CouchDB-Ausfalls, der NICHT wirft (s. Fallen). Serverseitig 30 s je Mandant zwischengespeichert (Schlüssel enthält den Rechte-Fingerabdruck), Seite lädt alle 60 s nach. Verlangt reports.view, sonst 403
Einrichtungsstand-Karte
Punktestand „x/7", wie vollständig die Kasse eingerichtet ist
Brutto/Netto/MwSt für einen Zeitraum, aufgeschlüsselt nach Steuersatz, Zahlungsart, Artikel, Warengruppe und Tag; optional auf eine Warengruppe gefiltert
Brutto/Steuer/Netto/Belegzahl je Tag; CouchDB aus der vorverdichteten View revenue_daily (Antwortzeit dort unabhängig von der Beleganzahl), der SQL-Provider rechnet je Range-Scan nach
Renner & Penner (Artikelstatistik)
Artikel-Rangliste nach Stückzahl oder nach Umsatz, mit Limit und Warengruppenfilter
Reiter „Bewertungen" in Berichte: die letzten Bewertungen vom Beleg-QR (Datum, Belegnummer, Sterne, Text) und Ø-Sterne sowie Anzahl der letzten 30 Tage. Ohne Zeitraumfilter; nur Sterne/Text/Beleg, kein Name. Erhebung: 04
Bestandswert, Verbrauch und Schwund je Lager mit Artikelaufschlüsselung
Finanzübersicht (Jahresauswertung)
Umsatz, Kosten, Gewinn je Monat mit optionalem Vorjahresvergleich und freiem Zeitraum. Erfasste Eingangsbelege (auch KI-ausgelesene) zählen mit ihren Kategorien als Kosten; mit einem Bankumsatz oder einer Kassenbuch-Ausgabe verknüpfte Daten werden nicht doppelt gezählt.
Kundenkennzahlen aus Rechnungen und Abos (neue Kunden, Umsatz je Kunde)
Analytik: Finanzen
Diagramm-Sicht auf die Finanzübersicht (Monatsentwicklung, Gewinn, Kosten einschließlich KI-erfasster Eingangsbelege) — den Vorjahresvergleich des Endpunkts ruft der Reiter nicht ab
Online-/Ticketverkäufe, Einlösungen und Erstattungen
Analytik: Werkstatt
Auftragsdurchsatz, Laufzeiten und Auslastung der Werkstatt
Analytik: Disco
Disco-Kennzahlen im selben Zeitraumfilter; Gästefluss seit 16.08. aus echten Ein-/Austritts-Zeitstempeln GEMESSEN (Nacht-Achse ab 06:00), Alt-Logs ohne Einzelgäste fallen auf die Glockenkurve zurück (guestFlowMeasured sagt es dem Frontend); entryGroups wird aus den echten Gästen befüllt
Analytik: Faktura
GET /api/v1/analytics/factura-stats — Rechnungs-/Zahlungsvolumen im Zeitraum, Bestand offener Posten + Aging (EXAKT die Menge des Aging-Reports), Monatsreihe, Status- und SEPA/Überweisung-Verteilung, Gutschriften/Stornos. Der Reiter steht kassenlos VORNE (= Startreiter); mit Kasse nur bei financeEnabled || isFacturaTier() (dieselbe Bedingung wie die Rechnungs-Maske unter Kunden) am Ende
Analytik: Hotel
GET /api/v1/hotel/stats (liegt im HOTEL-Modul, nicht am AnalyticsController — Referenzrichtung: Web/Application kennen die Plugin-Entities nicht) — Auslastung je Tag und gesamt, ADR, RevPAR, Logis-/Gesamtumsatz nach Posten-Art aus den Zimmerkonten, Anreisen/Abreisen, Ø Aufenthalt, Quellen-/Status-Verteilung, No-Shows/Stornos. Reiter-Gate: isModuleLoaded('Hotel') && isModuleLicensed('hotel') — BEWUSST ohne config.hotelEnabled (s. Falle in 17)
Analytik: Termine
GET /api/v1/analytics/appointment-stats ([RequiresModule(reservation)] an der Aktion) — Termine je Tag/Wochentag/Stunde, No-Show-/Storno-Quote, online vs. Personal, Ø Vorlauf und Dauer, Top-Ressourcen (Namensauflösung Person/Tisch via ResourceResolver) und Top-Leistungen, Anzahlungen inkl. einbehalten. Reiter-Gate: reservationsEnabled && isModuleLicensed('reservation'); Reiter-Label folgt dem Begriffssatz der Betriebsart (VocabularyService: „Reservierungen"/„Termine"/„Buchungen")
Zahlungsart-Filter im Umsatzbericht
GET /reports/revenue?paymentType=<int> (interner Typ aus PaymentTypeConfig; Dropdown im Umsatz-Reiter aus opConfig.paymentTypes, gleiche Typen zusammengefasst). Semantik: Belege zählen, die die Zahlart ENTHALTEN (Splitzahlung ganz); paymentFilteredAmount trägt den exakten Zahlarten-Umsatz; dailyData kommt bei aktivem Filter LEER (DayClose nicht je Zahlart zerlegbar) und die Maske blendet die Tagesdaten-Sektionen aus
CSV-Export je Analytik-Reiter
Alle elf Reiter: Export-Menü mit einem Eintrag je Datensatz (z. B. Faktura: Monatsreihe/Aging/Status; Disco: Gästefluss/Eintrittsgruppen/Abendvergleich), Nummern-Codes als deutsche Labels, Dateiname dikas-analytik-<reiter>-<datensatz>_<von>_<bis>.csv; gleiche CSV-Regeln wie der Berichte-Export
Zeitraumfilter
Von/Bis-Datum überall, in der Analytik zusätzlich Schnellwahl 7/30/90/365 Tage
Der gewählte Reiter steht im Query-Parameter tab — „Zurück" springt einen Reiter zurück, nicht aus der Maske
Auffälligkeiten (Anomalie-Wächter)
GET /api/v1/reports/anomalies?date= — vier Regeln je Mitarbeiter:in und Geschäftstag (06:00–05:59, nicht Kalendertag): Storno-Quote (Anzahl oder Betrag), Häufung von Storni kurz nach der Buchung, Belege mit Aufladung ohne Verkaufsposition, Rabattanteil am Umsatz. Alle Schwellwerte sind Einstellung (OperationalConfig.AnomalySettings), Vorgabe AUS, alle mit derselben Semantik „mehr als“. Zugerechnet wird die buchende Person, nicht die stornierende (s. Fallen). Ausgegeben wird je Regel höchstens EIN Hinweis je Person und Tag, neutral formuliert. Rechte: nur Betriebsleitung (admin/manager/supportadmin/system oder das Einzelrecht anomaly.view, vergebbar unter Personal → Rechte)
Schwellwerte der Auffälligkeiten
Einstellungen → Betrieb → Auffälligkeiten: Ein/Aus, Storno-Quote %, Sofort-Storno-Fenster (s) und -Anzahl, Aufladungen ohne Verkauf, Rabattanteil %, Mindestzahl Bons je Tag. Jeder Wert ist der letzte, der noch in Ordnung ist (ausgewiesen wird bei mehr als). Trägt den Hinweis, dass eine solche Auswertung mitbestimmungspflichtig sein kann. Speichert über den automatischen Last-Write-Wins-Ablauf (SaveConflictService) und lädt die Konfiguration dafür erzwungen frisch
CSV-Export je Berichte-Reiter
Exportiert die gerade angezeigte Tabelle (NACH aktiven Filtern) als Excel-taugliche CSV: UTF-8 mit BOM, Semikolon, CRLF, Komma-Dezimal ohne Tausendertrenner, dd.MM.yyyy; Wochenauswertung mit ZWEI Knöpfen (je Stunde / je Wochentag x Stunde), Dateiname dikas-berichte-<reiter>_<von>_<bis>.csv
Wir würden gerne mit Google Ads messen, welche
Anzeigen zu einer Anmeldung führen. Dafür werden Cookies gesetzt und Daten an Google
(USA) übertragen — nur mit deiner Einwilligung. Unsere anonyme Reichweitenmessung
(Matomo) läuft davon unabhängig. Details und Widerruf in der
Datenschutzerklärung.