--- name: av-benchmark-analyst description: Optionaler Wettbewerber-Benchmark des KI-Sichtbarkeits-Gap-Assessments (frueher ARD-Audit) — erweitert das Gap Assessment je Achse um FELD (Wettbewerber-Schnitt) und BEST (stärkster Wettbewerber), reine Statistik, kein LLM-Prompt. --- > **EVN:** Verortet jede Eigenschaft (Stellhebel) gegen Peer-Median/Leader, um Vorteil **Sichtbarkeit** relativ zum Wettbewerb einzuordnen (Nutzen: **Auffindbarkeit**). # av-benchmark-analyst — Wettbewerber-Benchmark (FELD & BEST) Erweitert das Gap Assessment um zwei Vergleichsebenen je Achse: - **FELD** = **Peer-Median** der Top-Wettbewerber je Achse (`statistics.median` — robust gegen Ausreißer; bewusst KEIN Durchschnitt). - **BEST** = stärkster Anbieter je Achse (Leader = höchster Wert derselben Tabelle, inkl. Subjekt), inkl. **Namensnennung**. **Bei Gleichstand gilt die Führung als „geteilt" — alle führenden Anbieter werden genannt** (z. B. „Leader: A / B, beide 80"), nicht nur einer. So wird aus „wo stehe ich vs. mein Ziel" zusätzlich „wo stehe ich vs. mein Wettbewerbsfeld" — also Branchen-Chance vs. Aufholbedarf. ## Wann nutzen Nur optional, per `--benchmark` (Antwort-Achsen) bzw. `--benchmark-sites` (zusätzlich Website-Achsen). Ohne diese Flags läuft kein Benchmark und das Eval-Signal ist `None`. ## Synergie (Gratis-Antwort-Achsen) Die **ANTWORT-Achsen** (Sichtbarkeit / Citation / Share of Voice) für die Wettbewerber fallen **ohne Zusatzkosten** aus den ohnehin erzeugten KI-Antworten ab: die Antworten nennen die Wettbewerber bereits — pro Wettbewerber werden einfach dieselben Metriken gezählt. Die **WEBSITE-Achsen** kosten extra (jede Wettbewerber-Site crawlen + scoren) und laufen ausschließlich mit `--benchmark-sites`. ## Code (Logik, kein Prompt) `~/audit-app/ai-visibility-audit/src/benchmark.py` - `run_benchmark` — aggregiert FELD/BEST je Achse. - `_competitor_response_metrics` — zählt die Antwort-Achsen je Wettbewerber. - `_guess_competitor_url` — erkennt bereits enthaltene TLDs (z. B. „Chefkoch.de" → `https://chefkoch.de`) statt fälschlich `.com` anzuhängen; Fallback `.de` (deutscher Markt), pro Audit via `--competitor-url` überschreibbar. **WICHTIG — LOGIK-SKILL, KEIN LLM-PROMPT:** reine Statistik/Aggregation — FELD via `statistics.median` (Peer-Median), Leader via `max`; `statistics.mean` dient ausschließlich der Mittelung der Messwiederholungen je Wettbewerber, nicht der FELD-Bildung. Es gibt **keine** `av-benchmark-analyst.active.txt`. ## Eval-Signal (field_coverage) `field_coverage` (0..1) = Anteil der Achsen, für die Wettbewerber-Daten vorliegen: `len(field_avg) / Anzahl Achsen`. - Niedrig, wenn z. B. Wettbewerber-Sites nicht erreichbar waren oder `--benchmark-sites` fehlte. - Berechnet in `src/skill_signals.py` (`None`, wenn kein Benchmark gefahren). - Geloggt nach `skill-runs.jsonl` + DB. ## Optimierung (nur Vorschlag) Kein LLM-Prompt → wird von **av-eval-calibrator** BEWERTET, nicht automatisch mutiert. Verbesserungen sind **Code-Änderungen → Change-Board-Vorschlag, kein Auto-Apply**: - bessere URL-Auflösung, - render-aware Crawl JS-lastiger Sites, - robustere Citation-Domain-Heuristik. ## Fallstricke - Wettbewerber-Site nicht erreichbar → Website-Achsen fehlen (`site_measured=False`). - Citation-Heuristik (Wettbewerbername als Domain-Teil) kann unscharf sein. - FELD/BEST sind nur so gut wie die Wettbewerberliste aus **av-profiler**. - Gruppen-Synergie: Audits, die sich gegenseitig benchmarken, werden gruppiert (`group_audit`) für einen Apples-to-apples-Vergleich. ## Verwandte Skills - **Upstream:** `av-profiler` (Wettbewerberliste), `av-website-scorer` (Website-Achsen). - **Gruppierung:** `group_audit`. - **Bewerter:** `av-eval-calibrator`. Stand: 2026-07-10 (Feedback-Rework v2.1)