`;
}
/* ---- Überblick -------------------------------------------------------- */
function uebersicht(behaelter) {
const d = z.daten;
const e = d.einsaetze, a = d.anzeigen, g = d.gewahrsam, v = d.vorgaenge, p = d.personal;
behaelter.innerHTML = `
Statistik
Auswertung der letzten ${d.tage} Tage. Alle Zahlen beschreiben Vorgänge
der Behörde — es gibt hier keine Bewertung einzelner Beamter.
In ${zahl(a.abweichungen)} von ${zahl(a.bestaetigt)} bestätigten Anzeigen
wich die Entscheidung vom Katalogvorschlag ab. Das ist eine Aussage über den
Katalog — nicht über die Beamten.
Gewahrsam
Einweisungen${zahl(g.einweisungen)}
Laufend${zahl(g.laufend)}
Ø festgelegte Dauer${zahl(g.haftDurchschnitt)} Min
Vorzeitig entlassen${zahl(g.vorzeitig)}
Zwischen Fristablauf und tatsächlicher Entlassung lagen im Schnitt
${zahl(g.verzugMinuten)} Minuten. Das System entlässt niemanden von
selbst — der Wert zeigt, wie schnell jemand erreichbar war.
Vorgänge
Akten angelegt${zahl(v.akten)}
Akten offen${zahl(v.aktenOffen)}
Berichte${zahl(v.berichte)}
Berichte im Entwurf${zahl(v.berichteEntwurf)}
Fahndungen${zahl(v.fahndungen)}
Fahndungen aktiv${zahl(v.fahndungenAktiv)}
Beweise erfasst${zahl(v.beweise)}
Asservate eingelagert${zahl(v.asservate)}
Akten nach Art
${verteilung(v.aktenNachTyp)}
Personal nach Abteilung${p.imDienst} gerade im Dienst
${verteilung(p.nachAbteilung)}
`;
verdrahte(behaelter);
}
/* ---- Dienstabdeckung --------------------------------------------------- */
function abdeckung(behaelter) {
const d = z.daten;
const hoechst = Math.max(d.hoechstwert, 0.1);
// Wo ist die Besetzung am dünnsten?
const schwach = [...d.stunden].sort((a, b) => a.mittel - b.mittel).slice(0, 3);
behaelter.innerHTML = `
Dienstabdeckung
Mittlere Besetzung je Tageszeit über ${d.tage} Tage — ein Planungswert.
Er sagt nichts darüber, wer Dienst hatte.
${reiterleiste()}
${kachel(zahl(d.schichten), "Schichten im Zeitraum")}
${kachel(d.hoechstwert.toFixed(2), "stärkste Stunde", "gleichzeitig im Dienst")}
${kachel(schwach.map((s) => s.stunde + " Uhr").join(", "), "dünnste Stunden")}
Besetzung nach TageszeitDurchschnittlich gleichzeitig im Dienst
${d.stunden.map((s) => `
${String(s.stunde).padStart(2, "0")}
`).join("")}
Schichten nach Abteilung
${verteilung(d.nachAbteilung)}
`;
verdrahte(behaelter);
}
/* ---- Katalogauswertung -------------------------------------------------- */
function katalog(behaelter) {
const d = z.daten;
behaelter.innerHTML = `
Katalogauswertung
Welche Delikte kommen vor und wie oft weicht die Entscheidung vom
Vorschlag ab. Eine hohe Abweichungsquote heißt: der Katalogwert passt
nicht — nicht, dass jemand falsch entschieden hat.
${zahl(delikt.anzahl)}× 0 ? "info" : "neutral"}"
title="Anteil der Anzeigen mit diesem Delikt, in denen vom Vorschlag abgewichen wurde">
${delikt.abweichungsAnteil} % abweichend
`).join("")}
`
: `
Im Zeitraum wurde keine Anzeige bestätigt.
`}
Im Zeitraum nie verwendetKandidaten zum Aufräumen des Katalogs