Zum Inhalt

Incomplete-Ergebnisse debuggen

How-to · Stand: 2026-09-22

Ein evaluation-result mit status: "incomplete" heißt: Für mindestens eine anwendbare Regel fehlte der KPI-Wert. Cluster und auditIntensityPercent sind dann null. Das Ergebnis sagt nicht, welche KPI fehlte — das findest du so heraus:

1. Anwendbare Regeln auflisten

php artisan kpi:rule:list --scope=supplier
php artisan kpi:rule:list --scope=service

Jede gelistete Regel (Wildcard * oder passender case_type) ist Pflicht für ihren Scope.

2. Servicefall-Seite prüfen (Payload)

Vergleiche die kpis-Liste des eingegangenen evaluation-request mit den scope='service'-Regeln. Fehlt ein kpi_key im Payload → Ursache gefunden; der Fix liegt beim Publisher (Portal).

3. Händler-Seite prüfen (gespeicherte Werte)

Bewertet werden nur aktuelle (nicht abgelöste) Werte:

SELECT kpi_key, value, ingested_at
FROM kpi_values
WHERE supplier_id = :supplierId AND superseded_at IS NULL;

Fehlt dort ein Key, den eine scope='supplier'-Regel verlangt, gibt es drei typische Ursachen:

Befund Ursache Fix
Gar keine Zeilen für den Händler Portal hat für diesen Händler noch nie eine kpi-message publiziert (z. B. neuer Händler) KPI-Lieferung für den Händler anstoßen
Zeilen vorhanden, aber der Key fehlt Regel wurde aktiviert, bevor das Portal den Key liefert Regel entfernen oder Lieferung nachrüsten, siehe Neue KPI aufnehmen
Key vorhanden, aber alle Zeilen superseded_at IS NOT NULL Ingest-Anomalie (aktuelle Zeile wurde abgelöst, ohne dass eine neue kam) kpi-message für die jüngste Periode erneut publizieren; Ingest-Logs prüfen

4. Konsum-Kette prüfen

Kommt gar kein Ergebnis (statt eines incomplete), hängt es meist am Transport:

  • Läuft der Queue-Worker (php artisan queue:work rabbitmq)?
  • kpi-message / evaluation-request in RabbitMQ angestaut?
  • Validierungsfehler beim Payload landen als Failed Job — Failed-Jobs-Log des Service prüfen (z. B. Tippfehler im caseType: nur technical_service ist gültig).
  • EvaluateSupplier loggt jedes publizierte Ergebnis (Pushing evaluation result …) — im Log nach caseId suchen.

Hinweis

Händler-Werte verfallen nicht per Zeitablauf; ein alter, nie abgelöster Wert bleibt gültig und verursacht kein incomplete. Wenn Bewertungen „plötzlich" incomplete werden, ist fast immer eine neue Pflicht-Regel oder ein Publisher-Ausfall die Ursache, nicht das Alter der Daten.