> ## Documentation Index
> Fetch the complete documentation index at: https://docs.delicious-data.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Überblick

> Analysiere deine Geschäftsdaten im Gespräch — stelle Fragen, erstelle Berichte und entdecke Muster

export const Bubble = ({ children }) => (
  <div style={{ display: 'flex', justifyContent: 'flex-end', marginBottom: '1rem' }}>
    <p style={{ background: '#F3F4F6', border: '1px solid #E5E7EB', borderRadius: '1rem 1rem 0.25rem 1rem', padding: '0.75rem 1rem', maxWidth: '80%', margin: 0 }}>{children}</p>
  </div>
)

export const AiBubble = ({ children }) => (
  <div style={{ display: 'flex', justifyContent: 'flex-start', marginBottom: '1rem' }}>
    <div style={{ background: '#FFFFFF', border: '1px solid #E5E7EB', borderRadius: '1rem 1rem 1rem 0.25rem', padding: '0.75rem 1rem', maxWidth: '80%', margin: 0 }}>{children}</div>
  </div>
)

export const TypingDots = () => (
  <div style={{ display: 'flex', justifyContent: 'flex-start', marginBottom: '1rem' }}>
    <div className="typing-dots" style={{ background: '#FFFFFF', border: '1px solid #E5E7EB', borderRadius: '1rem 1rem 1rem 0.25rem', padding: '0.75rem 1rem', display: 'flex', gap: '4px', alignItems: 'center' }}>
      <span className="dot dot-1" style={{ width: 6, height: 6, borderRadius: '50%', background: '#9CA3AF', display: 'inline-block' }} />
      <span className="dot dot-2" style={{ width: 6, height: 6, borderRadius: '50%', background: '#9CA3AF', display: 'inline-block' }} />
      <span className="dot dot-3" style={{ width: 6, height: 6, borderRadius: '50%', background: '#9CA3AF', display: 'inline-block' }} />
    </div>
  </div>
)

export const ChatStyles = () => {
  if (typeof document === 'undefined') return null
  try {
    if (!document.getElementById('chat-anim-styles')) {
      const s = document.createElement('style')
      s.id = 'chat-anim-styles'
      s.textContent = [
        '.chat-demo { padding-bottom:0.25rem !important; }',
        '.chat-msg { opacity:0; transition:opacity 0.5s ease; }',
        '.chat-typing { opacity:0; transition:opacity 0.3s ease; height:0; overflow:visible; }',
        '.chat-msg.visible, .chat-typing.visible { opacity:1; }',
        '@keyframes dotBounce { 0%,80%,100% { transform:translateY(0); } 40% { transform:translateY(-4px); } }',
        '.chat-typing.visible .dot { animation:dotBounce 1.2s ease infinite; }',
        '.chat-typing.visible .dot-2 { animation-delay:0.15s; }',
        '.chat-typing.visible .dot-3 { animation-delay:0.3s; }',
      ].join(' ')
      document.head.appendChild(s)
    }
    const init = () => {
      document.querySelectorAll('.chat-demo').forEach(container => {
        if (container.dataset.animated) return
        container.dataset.animated = '1'
        const showAll = () => {
          container.querySelectorAll('.chat-msg').forEach(el => el.classList.add('visible'))
          container.querySelectorAll('.chat-typing').forEach(el => el.classList.remove('visible'))
        }
        let fallback = null
        const observer = new IntersectionObserver((entries) => {
          if (entries[0].isIntersecting) {
            if (fallback) clearTimeout(fallback)
            fallback = setTimeout(showAll, 10000)
            observer.disconnect()
            const steps = []
            container.querySelectorAll('[data-step]').forEach(el => {
              steps.push({ el, step: parseInt(el.dataset.step), type: el.dataset.type })
            })
            steps.sort((a, b) => a.step - b.step)
            let delay = 0
            steps.forEach(({ el, type }) => {
              if (type === 'typing') {
                setTimeout(() => el.classList.add('visible'), delay)
                delay += 1200
                setTimeout(() => el.classList.remove('visible'), delay)
                delay += 300
              } else {
                setTimeout(() => el.classList.add('visible'), delay)
                delay += 800
              }
            })
          }
        }, { threshold: 0.1, rootMargin: '-20% 0px -20% 0px' })
        observer.observe(container)
      })
    }
    if (document.readyState === 'complete') {
      setTimeout(init, 200)
    } else {
      window.addEventListener('load', () => setTimeout(init, 200), { once: true })
    }
  } catch (e) {
    document.querySelectorAll('.chat-msg, .chat-typing').forEach(el => { el.style.opacity = '1'; })
  }
  return null
}

Es ist Montagmorgen. Du willst wissen, wie die letzte Woche lief. Statt ein Dashboard zu öffnen,
Filter einzustellen und Diagramme zu interpretieren — fragst du einfach:

<div className="chat-demo" style={{ background: '#F9FAFB', border: '1px solid #E5E7EB', borderRadius: '0.75rem', padding: '1.25rem 1rem', margin: '1.5rem 0' }}>
  <div className="chat-msg" data-step="1" data-type="msg">
    <Bubble>Wie war letzte Woche im Vergleich zur Vorwoche?</Bubble>
  </div>

  <div className="chat-typing" data-step="2" data-type="typing">
    <TypingDots />
  </div>

  <div className="chat-msg" data-step="3" data-type="msg">
    <AiBubble><p style={{ margin: 0 }}><strong>📊 Letzte Woche vs. Vorwoche</strong><br /><br />💰 Umsatz: <strong>47.200 EUR</strong> (+3,2%)<br />📦 Absatz: <strong>12.400 Stk.</strong> (+1,8%)<br />🏆 Top: Marktplatz <strong>+12%</strong> · 📉 Schwächster: Bahnhof <strong>-8%</strong><br /><br />⚠️ An <strong>8 von 21 Verbrauchsorten</strong> war Donnerstag der schwächste Tag — das ist ungewöhnlich. Soll ich aufschlüsseln, welche Artikel betroffen waren?</p></AiBubble>
  </div>

  <div className="chat-msg" data-step="4" data-type="msg">
    <Bubble>Ja, welche Artikel haben am meisten verloren?</Bubble>
  </div>

  <div className="chat-typing" data-step="5" data-type="typing">
    <TypingDots />
  </div>

  <div className="chat-msg" data-step="6" data-type="msg">
    <AiBubble><p style={{ margin: 0 }}><strong>📉 Donnerstag — betroffene Artikel</strong><br /><br />🥐 Brötchen: <strong>-14%</strong><br />🧁 Feingebäck: <strong>-11%</strong><br />🍞 Brot: <strong>+1%</strong> (stabil)<br /><br />Das Muster betrifft primär Frühstücksartikel. Soll ich prüfen, ob die Bestellmengen an den betroffenen Verbrauchsorten zu niedrig waren?</p></AiBubble>
  </div>
</div>

Das ist der BI-Assistent. Nicht ein Chatbot, der die FAQ vorliest. Sondern ein Datenanalyst,
der euer gesamtes Geschäft kennt und in Sekunden liefert, wofür sonst eine halbe Stunde draufgeht.

## Was du damit machen kannst

Statt Dashboards zu konfigurieren und Zahlen selbst zu interpretieren, sagst du dem BI-Assistenten einfach, was du wissen willst — und bekommst eine fertige Analyse.

<AccordionGroup>
  <Accordion title="Probleme erkennen, bevor sie eskalieren" icon="triangle-exclamation">
    Der BI-Assistent durchsucht alle Verbrauchsorte, vergleicht mit dem historischen Durchschnitt und zeigt dir nur die Ausreißer — statt es am Monatsende in einer Tabelle zu entdecken.

    <div style={{ background: '#F9FAFB', border: '1px solid #E5E7EB', borderRadius: '0.75rem', padding: '1.25rem 1rem 0.25rem 1rem', margin: '1rem 0 0 0' }}>
      <Bubble>Gibt es Verbrauchsorte, deren Retourenquote letzte Woche ungewöhnlich hoch war?</Bubble>
      <AiBubble><p style={{ margin: 0 }}>📍 <strong>3 Verbrauchsorte</strong> liegen über dem Durchschnitt:<br /><br />🔴 Hauptbahnhof: <strong>18,4%</strong> (Ø 11%)<br />🟡 Marktplatz: <strong>14,2%</strong> (Ø 10%)<br />🟡 Industriegebiet: <strong>13,8%</strong> (Ø 9%)<br /><br />Am Hauptbahnhof betrifft es vor allem <strong>belegte Brötchen</strong> — soll ich die Tagesverläufe anzeigen?</p></AiBubble>
    </div>
  </Accordion>

  <Accordion title="Ein Meeting in 60 Sekunden vorbereiten" icon="clock">
    Der BI-Assistent erstellt eine fertige Zusammenfassung mit den relevanten Zahlen, Veränderungen und Auffälligkeiten — bereit für E-Mails, Meetings oder die interne Abstimmung.

    <div style={{ background: '#F9FAFB', border: '1px solid #E5E7EB', borderRadius: '0.75rem', padding: '1.25rem 1rem 0.25rem 1rem', margin: '1rem 0 0 0' }}>
      <Bubble>Fasse die wichtigsten Kennzahlen der letzten Woche zusammen.</Bubble>
      <AiBubble><p style={{ margin: 0 }}>📋 <strong>Wochenbericht KW 12</strong><br /><br />💰 Umsatz: <strong>198.400 EUR</strong> (+2,1% gg. VJ)<br />📦 Absatz: <strong>51.200 Stk.</strong> (-0,8% gg. VJ)<br />↩️ Retouren: <strong>9,2%</strong> (Vorwoche: 8,7%)<br /><br />📈 Beste Region: <strong>Nord +6%</strong> · 📉 Schwächste: <strong>Süd -3%</strong><br /><br />Soll ich den Bericht als E-Mail-Vorlage formatieren?</p></AiBubble>
    </div>
  </Accordion>

  <Accordion title="Verstehen, warum sich eine Zahl verändert hat" icon="magnifying-glass-chart">
    Der BI-Assistent schlüsselt auf: nach Verbrauchsorten, nach Artikelgruppen, nach Wochentagen — und zeigt, wo es sich lohnt, genauer hinzuschauen.

    <div style={{ background: '#F9FAFB', border: '1px solid #E5E7EB', borderRadius: '0.75rem', padding: '1.25rem 1rem 0.25rem 1rem', margin: '1rem 0 0 0' }}>
      <Bubble>Der Umsatz ist letzte Woche um 8% gesunken. Woran liegt das?</Bubble>
      <AiBubble><p style={{ margin: 0 }}>📊 <strong>Umsatzrückgang -8% — Aufschlüsselung</strong><br /><br />Der Rückgang kommt aus <strong>3 Verbrauchsorten</strong>:<br />📍 Bahnhof: <strong>-18%</strong> (Do + Fr)<br />📍 Altstadt: <strong>-12%</strong> (Fr)<br />📍 Einkaufszentrum: <strong>-9%</strong> (Do)<br /><br />Die restlichen 18 Verbrauchsorte liegen im Plan. Das Muster deutet auf ein lokales Problem am Donnerstag und Freitag hin.</p></AiBubble>
    </div>
  </Accordion>

  <Accordion title="Verschiedene Blickwinkel in Sekunden durchspielen" icon="arrows-spin">
    Was im Dashboard vier Klicks, drei Filterwechsel und ein Neuladen kostet — ist im Chat eine Folge von kurzen Sätzen.

    <div style={{ background: '#F9FAFB', border: '1px solid #E5E7EB', borderRadius: '0.75rem', padding: '1.25rem 1rem 0.25rem 1rem', margin: '1rem 0 0 0' }}>
      <Bubble>Zeig mir den Absatz nach Artikelgruppe.</Bubble>
      <Bubble>Jetzt nach Verbrauchsort.</Bubble>
      <Bubble>Nur Region Süd.</Bubble>
      <Bubble>Vergleich mit dem Vorjahr.</Bubble>
    </div>
  </Accordion>

  <Accordion title="Automatisch informiert werden" icon="envelope">
    Statt jeden Morgen selbst nachschauen — der BI-Assistent liefert die Analyse fertig in den Posteingang.

    Richte einen [automatisierten Chat Prompt](/bakeries/business_intelligence/ki_chat/quick_actions_de) ein und bekomme
    jeden Montag um 7 Uhr eine fertige Wochenanalyse in deinen Posteingang — noch bevor der Tag losgeht.
  </Accordion>
</AccordionGroup>

## Wie der BI-Assistent funktioniert

Der BI-Assistent nutzt ein großes Sprachmodell (z.B. Google Gemini 2.5 Pro). Wenn du eine Frage stellst,
passiert im Hintergrund Folgendes:

<Steps>
  <Step title="Du stellst eine Frage">
    Du tippst deine Frage ins Eingabefeld — z.B. *"Wie lief letzte Woche?"*
  </Step>

  <Step title="Der BI-Assistent sammelt den Kontext">
    Bevor das Sprachmodell antwortet, stellt der BI-Assistent alles zusammen, was er weiß:

    * Alle verfügbaren **Metriken** mit ihren Beschreibungen und Berechnungslogiken
    * Euer **[Kundenkontext](/bakeries/business_intelligence/ki_chat/kundenkontext_de)** — Geschäftsziele, interne Begriffe, saisonale Regeln
    * Der bisherige **Gesprächsverlauf**, damit Folgefragen ohne Wiederholung funktionieren
    * **Formatierungsregeln** wie Währung, Zahlenformate und Sprache
    * Falls ein **Dashboard** verknüpft ist: alle geladenen Berichte und aktiven Filter

    Je besser euer [Kundenkontext](/bakeries/business_intelligence/ki_chat/kundenkontext_de) gepflegt ist
    und je präziser dein [Prompt](/bakeries/business_intelligence/ki_chat/prompts_de), desto besser das Ergebnis.
  </Step>

  <Step title="Das Sprachmodell interpretiert deine Frage">
    Das Sprachmodell liest deine Frage im gesammelten Kontext. Es erkennt,
    welche Metriken, Zeiträume und Gruppierungen relevant sind — auch wenn du sie nicht explizit nennst.
    Aus *"Wie lief letzte Woche?"* wird z.B.: Umsatz + Absatz, KW 12 vs. KW 11, gruppiert nach Verbrauchsort.
  </Step>

  <Step title="Der BI-Assistent führt die Analyse durch">
    Statt nur Text zu generieren, steuert der BI-Assistent aktiv die Analyse-Werkzeuge in der App.
    Er kann mehrere Aktionen hintereinander ausführen:

    * **Berichte erstellen** — mit der passenden Metrik, Gruppierung und dem richtigen Diagrammtyp
    * **Filter und Zeiträume ändern** — direkt im verknüpften Dashboard
    * **Daten aufschlüsseln** — z.B. eine Tabelle nach Artikelgruppe expandieren

    Diese Schritte siehst du in Echtzeit in der App. Nach jeder Aktion liest der BI-Assistent
    die Ergebnisse und entscheidet, ob er tiefer eintauchen muss.
  </Step>

  <Step title="Du bekommst eine fertige Antwort">
    Der BI-Assistent fasst alles zusammen: die relevanten Zahlen, eine Einordnung
    und — wenn sinnvoll — einen Vorschlag für den nächsten Schritt. Du kannst direkt weiter fragen,
    der Kontext bleibt erhalten.
  </Step>
</Steps>

<Info>
  **Datenschutz:** Für die Analyse werden Geschäftsdaten an externe Sprachmodelle (z.B. Google Gemini, OpenAI) übermittelt. Deine Daten werden dabei nicht zum Training von KI-Modellen verwendet ([AGB §4.6](https://delicious-data.com/agb)). Die Übermittlung erfolgt auf Grundlage eines EU-Angemessenheitsbeschlusses. Alle Details zu den eingesetzten Dienstleistern findest du in unserer [Datenschutzerklärung (§4.7)](https://delicious-data.com/datenschutz).
</Info>

## Nächste Schritte

<Card title="Automatisierung" icon="bolt" href="/bakeries/business_intelligence/ki_chat/quick_actions_de">
  Du hast eine Analyse, die dein Team regelmäßig braucht? Automatisiere sie — der BI-Assistent liefert die Ergebnisse per E-Mail.
</Card>

<Card title="Bessere Prompts" icon="pen" href="/bakeries/business_intelligence/ki_chat/prompts_de">
  Der BI-Assistent liefert brauchbare Ergebnisse, aber du willst mehr Präzision? Lerne die Bausteine eines guten Prompts.
</Card>

<Card title="Kundenkontext einrichten" icon="brain" href="/bakeries/business_intelligence/ki_chat/kundenkontext_de">
  Der BI-Assistent soll eure Ziele, Begriffe und Regeln kennen, ohne dass du sie jedes Mal erklärst? Einmal konfigurieren, immer profitieren.
</Card>

<Info>
  Einige Features erfordern den Pro-Plan. [Alle Unterschiede auf einen Blick →](/bakeries/account/plans_de)
</Info>

<ChatStyles />
