Zum Inhalt

StatAgent

von Bernhard Götzendorfer · Team OneShotAndy

Dashboard der Beschäftigtenstatistik

24 Monate gerechnet: 22 veröffentlicht, 2 angehalten.

Sie sehen die alten Regeln: Gezählt wird am Stichtag, dem letzten Tag des Monats. Nach den Änderungsaufträgen zählt der ganze Monat: 407.604. Beide Stände bleiben sichtbar, damit man sieht, was die Aufträge geändert haben. Die drei Aufträge ansehen

Beschäftigungsverhältnisse am Stichtag je MonatangehaltenDie Achse beginnt bei 385.000, nicht bei 0. So werden kleine Schwankungen sichtbar.
Beleg
Tabelle
meta.lauf
SELECT lieferung, gezaehlt AS beschaeftigungsverhaeltnisse, fortgeschrieben, gelesen, nicht_gezaehlt,
       ausgeschlossen, ergebnis_status
FROM (SELECT DISTINCT ON (lieferung) *
      FROM meta.lauf
      WHERE regelsatz = 'v1' AND status IN ('fertig', 'unveraendert')
      ORDER BY lieferung, (ergebnis_status = 'endgueltig') DESC, id DESC) m
ORDER BY lieferung;

Kennzahlen

Letzter Monat

399.027

Beschäftigungsverhältnisse am Stichtag im Juli 2026, +3.707 zum Vormonat.

Beleg
Tabelle
stat.stat_beschaeftigte
Lieferung
Juli 2026
Regelstand
c3ecc447f8384fea
Lauf
0f1f7def0db789723b3aff5200d64e11b74c393c2b9feedc0ef043fb817ff229
SELECT sum(wert) AS beschaeftigungsverhaeltnisse
FROM stat.stat_beschaeftigte
WHERE regelsatz = 'v1' AND regelstand = 'c3ecc447f8384fea'
  AND zeitraum_art = 'Stichtag' AND variable = 'Beschaeftigungsverhaeltnisse'
  AND zeitraum_bis BETWEEN '2026-07-01' AND '2026-07-31';

Gerade auffällig

2

noch nicht erklärte Auffälligkeiten im Juli 2026, sie gehen als Rückfrage an die Fachabteilung.

307 neue Beschäftigungsverhältnisse gehören Personen, die schon ein gleiches Beschäftigungsverhältnis haben. Sie zählen, die Fachabteilung soll das klären.

Beleg
Tabelle
meta.pruefung_treffer
Lieferung
Juli 2026
SELECT r.name, t.ebene, t.anzahl, t.umfang, coalesce(t.einstufung, 'nicht-erklaerbar') AS einstufung, t.anhalten
FROM meta.pruefung_treffer t JOIN meta.regel r ON r.id = t.regel_id
WHERE t.lauf_id = 121 AND t.anzahl > 0
ORDER BY r.reihenfolge, r.name;

Noch nicht veröffentlicht

2 von 24

März 2025 und Oktober 2025 sind noch nicht veröffentlicht.

Beleg
Tabelle
meta.lauf
SELECT count(*) AS monate, count(*) FILTER (WHERE ergebnis_status <> 'endgueltig') AS vorlaeufig
FROM (SELECT DISTINCT ON (lieferung) *
      FROM meta.lauf
      WHERE regelsatz = 'v1' AND status IN ('fertig', 'unveraendert')
      ORDER BY lieferung, (ergebnis_status = 'endgueltig') DESC, id DESC) m;

Auffälligkeiten

219

in 24 Monaten

  • 38noch nicht erklärt
  • 103Fehler in den Daten
  • 78kein Fehler
Beleg
Tabelle
meta.pruefung_treffer
WITH massgeblich AS (
  SELECT DISTINCT ON (lieferung) id, lieferung,
    coalesce((
      SELECT min(w.id) FROM meta.lauf w
      WHERE w.lieferung = meta.lauf.lieferung AND w.regelsatz = meta.lauf.regelsatz AND w.regelstand = meta.lauf.regelstand
        AND w.freigegeben_von IS NOT NULL AND w.status IN ('fertig', 'unveraendert')), meta.lauf.id) AS quelle_id
  FROM meta.lauf
  WHERE regelsatz = 'v1' AND status IN ('fertig', 'unveraendert')
  ORDER BY lieferung, (ergebnis_status = 'endgueltig') DESC, id DESC
)
SELECT coalesce(t.einstufung, 'nicht-erklaerbar') AS einstufung, count(*) AS anzahl
FROM massgeblich m JOIN meta.pruefung_treffer t ON t.lauf_id = m.quelle_id AND t.anzahl > 0
GROUP BY 1 ORDER BY 1;

Angehalten

Angehalten heißt: Eine Prüfung hat beim Rechnen etwas so Großes gefunden, dass ein Mensch entscheiden muss.

  • März 2025freie Dienstverträge fehlenwartet auf Rückfrage R4
    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    März 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    9ad1015664c0319add493ff441b9e97516bce6af9a43ef08b358d938db6e4474
    Stand
    vorläufig
    SELECT r.name, p.anzahl, p.umfang, coalesce(p.einstufung, 'nicht-erklaerbar') AS einstufung, p.massnahme, p.anhalten,
           p.details,
           ARRAY(SELECT q.nr FROM meta.rueckfrage q WHERE q.antwort IS NULL
                 AND (q.nr = p.details ->> 'rueckfrage' OR q.regel_name = r.name)) AS offene_rueckfragen
    FROM meta.pruefung_treffer p JOIN meta.regel r ON r.id = p.regel_id
    WHERE p.lauf_id = 105 AND p.regel_id = 184 AND p.ebene = 'aggregat';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    -- Gliederung qualifikation
    WITH vm AS (
      SELECT "qualifikation"::text AS code, sum(wert)::bigint AS n FROM stat.stat_beschaeftigte
      WHERE regelsatz = 'v1' AND regelstand = 'c3ecc447f8384fea' AND zeitraum_art = 'Stichtag'
        AND zeitraum_bis = '2025-02-28'::date AND variable = 'Beschaeftigungsverhaeltnisse'
      GROUP BY 1
    ),
    akt AS (SELECT "qualifikation"::text AS code, sum(wert)::bigint AS n FROM (SELECT * FROM stat.stat_beschaeftigte
    WHERE regelsatz = 'v1' AND regelstand = 'c3ecc447f8384fea' AND zeitraum_art = 'Stichtag'
      AND zeitraum_bis = '2025-03-31'::date AND variable = 'Beschaeftigungsverhaeltnisse') AS z GROUP BY 1)
    SELECT coalesce(vm.code, akt.code) AS code, coalesce(vm.n, 0) AS vormonat, coalesce(akt.n, 0) AS aktuell
    FROM vm FULL JOIN akt ON akt.code = vm.code
    ORDER BY coalesce(vm.code, akt.code) COLLATE "C";
    
    -- Gliederung region
    WITH vm AS (
      SELECT "region"::text AS code, sum(wert)::bigint AS n FROM stat.stat_beschaeftigte
      WHERE regelsatz = 'v1' AND regelstand = 'c3ecc447f8384fea' AND zeitraum_art = 'Stichtag'
        AND zeitraum_bis = '2025-02-28'::date AND variable = 'Beschaeftigungsverhaeltnisse'
      GROUP BY 1
    ),
    akt AS (SELECT "region"::text AS code, sum(wert)::bigint AS n FROM (SELECT * FROM stat.stat_beschaeftigte
    WHERE regelsatz = 'v1' AND regelstand = 'c3ecc447f8384fea' AND zeitraum_art = 'Stichtag'
      AND zeitraum_bis = '2025-03-31'::date AND variable = 'Beschaeftigungsverhaeltnisse') AS z GROUP BY 1)
    SELECT coalesce(vm.code, akt.code) AS code, coalesce(vm.n, 0) AS vormonat, coalesce(akt.n, 0) AS aktuell
    FROM vm FULL JOIN akt ON akt.code = vm.code
    ORDER BY coalesce(vm.code, akt.code) COLLATE "C";
    
    -- Gliederung oenace
    WITH vm AS (
      SELECT "oenace"::text AS code, sum(wert)::bigint AS n FROM stat.stat_beschaeftigte
      WHERE regelsatz = 'v1' AND regelstand = 'c3ecc447f8384fea' AND zeitraum_art = 'Stichtag'
        AND zeitraum_bis = '2025-02-28'::date AND variable = 'Beschaeftigungsverhaeltnisse'
      GROUP BY 1
    ),
    akt AS (SELECT "oenace"::text AS code, sum(wert)::bigint AS n FROM (SELECT * FROM stat.stat_beschaeftigte
    WHERE regelsatz = 'v1' AND regelstand = 'c3ecc447f8384fea' AND zeitraum_art = 'Stichtag'
      AND zeitraum_bis = '2025-03-31'::date AND variable = 'Beschaeftigungsverhaeltnisse') AS z GROUP BY 1)
    SELECT coalesce(vm.code, akt.code) AS code, coalesce(vm.n, 0) AS vormonat, coalesce(akt.n, 0) AS aktuell
    FROM vm FULL JOIN akt ON akt.code = vm.code
    ORDER BY coalesce(vm.code, akt.code) COLLATE "C"
    Bericht ansehen
  • Oktober 2025jedes fünfte Beschäftigungsverhältnis fehltwartet auf Rückfrage R3
    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Oktober 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    3077fc2fe68f4a769725317cc054293c32ee07d33f904b98badb093b99b52ca2
    Stand
    vorläufig
    SELECT r.name, p.anzahl, p.umfang, coalesce(p.einstufung, 'nicht-erklaerbar') AS einstufung, p.massnahme, p.anhalten,
           p.details,
           ARRAY(SELECT q.nr FROM meta.rueckfrage q WHERE q.antwort IS NULL
                 AND (q.nr = p.details ->> 'rueckfrage' OR q.regel_name = r.name)) AS offene_rueckfragen
    FROM meta.pruefung_treffer p JOIN meta.regel r ON r.id = p.regel_id
    WHERE p.lauf_id = 112 AND p.regel_id = 187 AND p.ebene = 'lieferung';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    WITH basis AS (
      SELECT DISTINCT v.vvh_id FROM bereinigt.abschnitt v
      WHERE v.lieferung = '2025-09' AND v.regelsatz = 'v1' AND v.herkunft = 'geliefert'
        AND v.beginn <= '2025-09-30'::date AND (v.ende IS NULL OR v.ende >= '2025-09-30'::date)
    ),
    fehlt AS (
      SELECT b.vvh_id FROM basis b
      WHERE NOT EXISTS (SELECT 1 FROM bereinigt.abschnitt a
                        WHERE a.lieferung = '2025-10' AND a.regelsatz = 'v1' AND a.herkunft = 'geliefert'
                          AND a.vvh_id = b.vvh_id)
    )
    SELECT (SELECT count(*) FROM basis) AS basis, (SELECT count(*) FROM fehlt) AS n,
           coalesce((SELECT jsonb_agg(vvh_id ORDER BY vvh_id)
                     FROM (SELECT vvh_id FROM fehlt ORDER BY vvh_id LIMIT 5) x), '[]'::jsonb) AS beispiele
    Bericht Oktober 2025 ansehen

Juli 2026 aufgeteilt, Beschäftigungsverhältnisse am Stichtag

Nach Bundesland

Beleg
Tabelle
stat.stat_beschaeftigte
Lieferung
Juli 2026
Regelstand
c3ecc447f8384fea
Lauf
0f1f7def0db789723b3aff5200d64e11b74c393c2b9feedc0ef043fb817ff229
SELECT s.region, k.bezeichnung, sum(s.wert) AS beschaeftigungsverhaeltnisse
FROM stat.stat_beschaeftigte s
LEFT JOIN stat.klass_region k ON k.code = s.region AND k.ebene = 'bundesland'
  AND k.gueltig_von <= s.zeitraum_bis AND (k.gueltig_bis IS NULL OR k.gueltig_bis >= s.zeitraum_bis)
WHERE s.regelsatz = 'v1' AND s.regelstand = 'c3ecc447f8384fea'
  AND s.zeitraum_art = 'Stichtag' AND s.variable = 'Beschaeftigungsverhaeltnisse'
  AND s.zeitraum_bis BETWEEN '2026-07-01' AND '2026-07-31'
GROUP BY ROLLUP ((s.region, k.bezeichnung))
ORDER BY grouping(s.region), s.region = '0', 3 DESC;
Nach Bundesland
Nach BundeslandBeschäftigungsverhältnisseBalken
Wien93.249
Oberösterreich69.034
Niederösterreich65.306
Steiermark54.258
Tirol36.320
Salzburg27.612
Kärnten22.752
Vorarlberg17.149
Burgenland11.353
unbekannt1.994

Nach Geschlecht

Beleg
Tabelle
stat.stat_beschaeftigte
Lieferung
Juli 2026
Regelstand
c3ecc447f8384fea
Lauf
0f1f7def0db789723b3aff5200d64e11b74c393c2b9feedc0ef043fb817ff229
SELECT s.geschlecht, k.bezeichnung, sum(s.wert) AS beschaeftigungsverhaeltnisse
FROM stat.stat_beschaeftigte s
LEFT JOIN stat.klass_geschlecht k ON k.code = s.geschlecht
WHERE s.regelsatz = 'v1' AND s.regelstand = 'c3ecc447f8384fea'
  AND s.zeitraum_art = 'Stichtag' AND s.variable = 'Beschaeftigungsverhaeltnisse'
  AND s.zeitraum_bis BETWEEN '2026-07-01' AND '2026-07-31'
GROUP BY 1, 2 ORDER BY 3 DESC;
Nach Geschlecht
Nach GeschlechtBeschäftigungsverhältnisseBalken
Männer213.129
Frauen185.898

Alle Läufe, je Monat mit Qualitätsbericht

Excel-Dateien herunterladen
Beleg
Tabelle
meta.lauf
SELECT lieferung, gezaehlt AS beschaeftigungsverhaeltnisse, fortgeschrieben, gelesen, nicht_gezaehlt,
       ausgeschlossen, ergebnis_status
FROM (SELECT DISTINCT ON (lieferung) *
      FROM meta.lauf
      WHERE regelsatz = 'v1' AND status IN ('fertig', 'unveraendert')
      ORDER BY lieferung, (ergebnis_status = 'endgueltig') DESC, id DESC) m
ORDER BY lieferung;