Zum Inhalt

StatAgent

von Bernhard Götzendorfer · Team OneShotAndy

Jänner 2025Stichtag 31.01.2025veröffentlicht

Am 31.01.2025 bestanden 385.033 Beschäftigungsverhältnisse, 2.357 weniger als im Dezember 2024.

Beleg
Tabelle
stat.stat_beschaeftigte
Lieferung
Jänner 2025
Regelstand
c3ecc447f8384fea
Lauf
68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
SELECT to_char(zeitraum_bis, 'YYYY-MM') AS monat, sum(wert) AS beschaeftigungsverhaeltnisse
FROM stat.stat_beschaeftigte
WHERE regelsatz = 'v1' AND zeitraum_art = 'Stichtag' AND variable = 'Beschaeftigungsverhaeltnisse'
  AND ((regelstand = 'c3ecc447f8384fea' AND zeitraum_bis BETWEEN '2024-12-01' AND '2024-12-31')
       OR (regelstand = 'c3ecc447f8384fea' AND zeitraum_bis BETWEEN '2025-01-01' AND '2025-01-31'))
GROUP BY 1 ORDER BY 1;

Veröffentlicht von Bernhard Götzendorfer.

8 Prüfungen auffällig.

Fehler in den Daten · 4 Prüfungen

Die Ursache ist bekannt, eine feste Regel behandelt sie.

  • Bei 1.969 Beschäftigungsverhältnissen fehlt die Branche oder das Bundesland. Sie zählen unter „unbekannt“.1.969

    erklärt, Datenproblem

    Was wir tun: Unbekannt (UNB bzw. 0), Zeile zählt.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 AND p.regel_id = 181 AND p.ebene = 'satz';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    -- _bestand: Verhältnisse am Stichtag nach Abschnittswahl (statagent.zaehlung) im Lauf 103
    WITH t AS (SELECT vvh_id, 1 AS gewicht FROM _bestand WHERE korrekturen && '{Q02_leer_unbekannt}'::text[])
    SELECT coalesce(sum(gewicht), 0)::bigint AS n,
           coalesce((SELECT jsonb_agg(v ORDER BY v)
                     FROM (SELECT DISTINCT vvh_id AS v FROM t ORDER BY 1 LIMIT 5) b), '[]'::jsonb) AS beispiele
    FROM t
  • Bei 364 Beschäftigungsverhältnissen steht im Geburtsdatum der Monat 13. Wir nehmen das Geburtsjahr und einen Ersatztag als Geburtstag.364

    erklärt, Datenproblem

    Was wir tun: Geburtstag unbekannt: 1. Juli des Geburtsjahres als Ersatztag, Alter in vollendeten Jahren am Stichtag.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 AND p.regel_id = 175 AND p.ebene = 'satz';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    -- _bestand: Verhältnisse am Stichtag nach Abschnittswahl (statagent.zaehlung) im Lauf 103
    WITH t AS (SELECT vvh_id, 1 AS gewicht FROM _bestand WHERE geburtsdatum_status = 'monat_13')
    SELECT coalesce(sum(gewicht), 0)::bigint AS n,
           coalesce((SELECT jsonb_agg(v ORDER BY v)
                     FROM (SELECT DISTINCT vvh_id AS v FROM t ORDER BY 1 LIMIT 5) b), '[]'::jsonb) AS beispiele
    FROM t
  • 50 Beschäftigungsverhältnisse tragen noch einen alten Branchencode aus ÖNACE 2003. Wir zählen sie zur Herstellung von Waren (Abschnitt C).50

    erklärt, Datenproblem

    Was wir tun: Zugeordnet zu C (Umsteiger ÖNACE 2003 zu 2008)

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 AND p.regel_id = 182 AND p.ebene = 'satz';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    -- _bestand: Verhältnisse am Stichtag nach Abschnittswahl (statagent.zaehlung) im Lauf 103
    WITH t AS (SELECT vvh_id, 1 AS gewicht FROM _bestand WHERE korrekturen && '{Q01_oenace_2003_unterabschnitte}'::text[])
    SELECT coalesce(sum(gewicht), 0)::bigint AS n,
           coalesce((SELECT jsonb_agg(v ORDER BY v)
                     FROM (SELECT DISTINCT vvh_id AS v FROM t ORDER BY 1 LIMIT 5) b), '[]'::jsonb) AS beispiele
    FROM t
  • 9 Beschäftigungsverhältnisse haben ein Alter, das nicht stimmen kann. Sie zählen mit dem Alter „unbekannt“.9

    erklärt, Datenproblem

    Was wir tun: Alter unbekannt (-1), Beschäftigungsverhältnis zählt.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 AND p.regel_id = 177 AND p.ebene = 'satz';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    -- _bestand: Verhältnisse am Stichtag nach Abschnittswahl (statagent.zaehlung) im Lauf 103
    WITH t AS (SELECT vvh_id, 1 AS gewicht FROM _bestand WHERE alter_roh > 110 OR alter_roh < 0)
    SELECT coalesce(sum(gewicht), 0)::bigint AS n,
           coalesce((SELECT jsonb_agg(v ORDER BY v)
                     FROM (SELECT DISTINCT vvh_id AS v FROM t ORDER BY 1 LIMIT 5) b), '[]'::jsonb) AS beispiele
    FROM t

Kein Fehler: echt oder üblich · 3 Prüfungen

Ungewohnt, aber echt oder üblich, etwa Saison oder Nachmeldungen. Zählt mit und wird vermerkt.

  • Frühere Monate sehen in dieser Lieferung anders aus. Das steht unten als Revisionsbedarf, veröffentlichte Zahlen bleiben.465

    November 2024: -205 (0,1 %), Dezember 2024: -260 (0,1 %)

    erklärt, plausibel

    Was wir tun: Der Unterschied steht als Revisionsbedarf im Bericht, veröffentlichte Zahlen bleiben.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 AND p.regel_id = 194 AND p.ebene = 'lieferung';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    SELECT berichtsmonat, veroeffentlicht, aktuell, differenz FROM meta.revision
                     WHERE lauf_id = 103 AND gliederung = 'insgesamt' ORDER BY berichtsmonat
  • Beschäftigungsverhältnisse, die im Vormonat noch liefen, fehlen in der Lieferung ganz.213

    213 von 387.390 Beschäftigungsverhältnissen des Vormonats fehlen (0,1 %)

    erklärt, plausibel

    Was wir tun: Nichts zu tun, es sind Einzelfälle wie Stornos.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 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 = '2024-12' AND v.regelsatz = 'v1' AND v.herkunft = 'geliefert'
        AND v.beginn <= '2024-12-31'::date AND (v.ende IS NULL OR v.ende >= '2024-12-31'::date)
    ),
    fehlt AS (
      SELECT b.vvh_id FROM basis b
      WHERE NOT EXISTS (SELECT 1 FROM bereinigt.abschnitt a
                        WHERE a.lieferung = '2025-01' 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
  • 165 Beschäftigungsverhältnisse gehören Menschen ab 75 Jahren. Das ist echt, sie zählen in der Gruppe „75 und mehr“.165

    erklärt, plausibel

    Was wir tun: Gezählt, Zeile 75 und mehr.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 AND p.regel_id = 178 AND p.ebene = 'satz';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    -- _bestand: Verhältnisse am Stichtag nach Abschnittswahl (statagent.zaehlung) im Lauf 103
    WITH t AS (SELECT vvh_id, 1 AS gewicht FROM _bestand WHERE alter_roh BETWEEN 75 AND 110)
    SELECT coalesce(sum(gewicht), 0)::bigint AS n,
           coalesce((SELECT jsonb_agg(v ORDER BY v)
                     FROM (SELECT DISTINCT vvh_id AS v FROM t ORDER BY 1 LIMIT 5) b), '[]'::jsonb) AS beispiele
    FROM t

Noch nicht erklärt · 1 Prüfung

Das Programm rät nicht, ein Mensch muss es klären.

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

    nicht erklärbar, wartet auf Antwort der Fachabteilung (R8)

    Was wir tun: Sie sind markiert und zählen mit, denn gezählt werden Beschäftigungsverhältnisse, nicht Personen. Die Fachabteilung soll klären, ob es doppelte Meldungen sind.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    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 = 103 AND p.regel_id = 190 AND p.ebene = 'satz';
    
    -- Prüfabfrage der Regel, mit der die Anzahl gerechnet wurde:
    -- _bestand: Verhältnisse am Stichtag nach Abschnittswahl (statagent.zaehlung) im Lauf 103
    WITH t AS (SELECT b.vvh_id, 1 AS gewicht FROM _bestand b
       WHERE b.beginn BETWEEN '2025-01-01'::date AND '2025-01-31'::date AND b.person_id IS NOT NULL
         AND EXISTS (SELECT 1 FROM _bestand z
                     WHERE z.person_id = b.person_id AND z.vvh_id <> b.vvh_id
                       AND z.qualifikation = b.qualifikation AND z.oenace = b.oenace
                       AND z.bundesland = b.bundesland))
    SELECT coalesce(sum(gewicht), 0)::bigint AS n,
           coalesce((SELECT jsonb_agg(v ORDER BY v)
                     FROM (SELECT DISTINCT vvh_id AS v FROM t ORDER BY 1 LIMIT 5) b), '[]'::jsonb) AS beispiele
    FROM t

Ab diesem Monat gilt ÖNACE 2025 statt ÖNACE 2008.

Zahlen je Abschnitt sind über den Wechsel nicht direkt vergleichbar, die Gesamtzahl ändert sich dadurch nicht. Das ist eine Umstellung, keine echte Entwicklung.

Von 386.299 Beschäftigungsverhältnissen, die am 31. Dezember 2024 in beiden Lieferungen stehen, tragen 189.170 in der Lieferung Jänner 2025 einen anderen Abschnitt als in der Lieferung Dezember 2024. Bei 150.418 davon ist nur der Buchstabe neu, der Name bleibt: zum Beispiel „Öffentliche Verwaltung, Verteidigung; Sozialversicherung“ von O zu P bei 61.906.

Die amtlichen Übergänge stehen unter Klassifikationen.

Beleg
Tabelle
bereinigt.abschnitt
Lieferung
Jänner 2025
Regelstand
c3ecc447f8384fea
Lauf
68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
WITH vorher AS (SELECT DISTINCT ON (vvh_id) vvh_id, oenace FROM bereinigt.abschnitt WHERE lieferung = '2024-12' AND regelsatz = 'v1' AND beginn <= DATE '2024-12-31' AND (ende IS NULL OR ende >= DATE '2024-12-31') ORDER BY vvh_id, beginn DESC),
     nachher AS (SELECT DISTINCT ON (vvh_id) vvh_id, oenace FROM bereinigt.abschnitt WHERE lieferung = '2025-01' AND regelsatz = 'v1' AND beginn <= DATE '2024-12-31' AND (ende IS NULL OR ende >= DATE '2024-12-31') ORDER BY vvh_id, beginn DESC)
SELECT v.oenace AS alt, n.oenace AS neu, count(*) AS verhaeltnisse
FROM vorher v JOIN nachher n USING (vvh_id)
GROUP BY 1, 2 ORDER BY 3 DESC

Überblick

424.363 gelesene Zeilen = 385.033 gezählt + 39.330 nicht gezählt + 0 ausgeschlossen.

Beleg
Tabelle
meta.lauf
Lieferung
Jänner 2025
Regelstand
c3ecc447f8384fea
Lauf
68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
SELECT lieferung, gelesen, gezaehlt - fortgeschrieben AS gezaehlt_aus_lieferung,
       nicht_gezaehlt, ausgeschlossen, fortgeschrieben
FROM meta.lauf
WHERE id = 103;
Bundesländer
  • Wien90.315
  • Oberösterreich66.231
  • Niederösterreich62.436
  • Steiermark52.156
  • Tirol36.179
  • Salzburg27.140
  • Kärnten20.824
  • Vorarlberg17.136
  • Burgenland10.647
  • unbekannt1.969
  • Österreich gesamt385.033
Beleg
Tabelle
stat.stat_beschaeftigte
Lieferung
Jänner 2025
Regelstand
c3ecc447f8384fea
Lauf
68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
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 '2025-01-01' AND '2025-01-31'
GROUP BY ROLLUP ((s.region, k.bezeichnung))
ORDER BY grouping(s.region), s.region = '0', 3 DESC;
Gleiche Daten, gleiche Zahlen

Dieselben Daten und Regeln ergeben dieselben Zahlen: 3 Läufe mit diesen Regeln, alle mit demselben Ergebnis-Hash 68ba0b5a.

Beleg
Tabelle
meta.lauf
Lieferung
Jänner 2025
Regelstand
c3ecc447f8384fea
Lauf
68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
SELECT count(*) AS laeufe, count(DISTINCT ergebnis_hash) AS hashes, min(ergebnis_hash) AS ergebnis_hash
FROM meta.lauf
WHERE lieferung = '2025-01' AND regelsatz = 'v1'
  AND regelstand = 'c3ecc447f8384fea' AND status IN ('fertig', 'unveraendert');

3 Rückfragen betreffen diesen Monat, 3 offen.

  • R1Geburtsmonat 13 im Geburtsdatumoffen

    Mit welchem Tag sollen wir bei Geburtsmonat 13 rechnen: mit dem 1. Juli, mit dem 1. Jänner oder nur mit der Differenz der Jahre?

    Unser Vorschlag: Wir lesen Monat 13 als „Monat unbekannt“ und rechnen mit dem 1. Juli des Geburtsjahres, also der Jahresmitte. Das ist die beste Schätzung, wenn nur das Jahr bekannt ist, und für August 2024 ergibt es genau die Zahlen des Beispielberichts. Einen Unterschied macht die Wahl nur in Berichtsmonaten von Jänner bis Juni. Wollt ihr anders rechnen, etwa nur mit der Differenz der Jahre, stellen wir einen Wert der Regel um. Die Fälle stehen jeden Monat im Qualitätsbericht.

  • R6Obergrenze für ein glaubwürdiges Alteroffen

    Ab welchem Alter sollen wir ein Geburtsdatum als Fehler werten?

    Unser Vorschlag: Ein Alter über 110 Jahre halten wir für einen Fehler im Geburtsdatum; es steht unter „Alter unbekannt“, das Beschäftigungsverhältnis zählt trotzdem mit. Zwischen 78 und 116 Jahren gibt es in keiner Lieferung einen Fall, deshalb ergibt jede Grenze in diesem Bereich dieselben Zahlen. Eine Grenze bei 74 würde dagegen echte 75-Jährige wegrechnen, 62 bis 310 je Monat. Dieselbe Grenze gilt für das Geburtsjahr in der Ministeriums-Lieferung.

  • R8Kurze Zweitmeldungen derselben Personoffen

    Sind das echte zweite Beschäftigungsverhältnisse oder doppelte Meldungen, die wir nicht zählen sollen?

    Unser Vorschlag: Wir zählen sie mit, denn gezählt werden Beschäftigungsverhältnisse und nicht Personen, und auch der Beispielbericht zählt sie. Im Qualitätsbericht sind sie gekennzeichnet und als „nicht erklärbar“ eingestuft, bis ihr antwortet. Ausschließen könnten wir sie nur mit Wissen aus der nächsten Lieferung, und die darf ein Monat nicht nutzen.

Beleg
Tabelle
meta.rueckfrage
Lieferung
Jänner 2025
Regelstand
c3ecc447f8384fea
Lauf
68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
SELECT q.nr, q.titel, q.lieferungen, q.antwort IS NOT NULL AS beantwortet
FROM meta.rueckfrage q
WHERE strpos(q.lieferungen, 'lieferung_2025-01') > 0
   OR (q.lieferungen ~* '\malle\M' AND q.ab_lieferung <= '2025-01')
   OR q.nr IN (SELECT t.details ->> 'rueckfrage' FROM meta.pruefung_treffer t
               WHERE t.lauf_id = 103 AND t.anzahl > 0)
   OR q.regel_name IN (SELECT r.name FROM meta.pruefung_treffer t JOIN meta.regel r ON r.id = t.regel_id
                       WHERE t.lauf_id = 103 AND t.anzahl > 0)
ORDER BY length(q.nr), q.nr;

5 Annahmen gelten in diesem Monat, jede als Regel umgesetzt.

  • Kurze Zweitmeldungen derselben Person zählen als eigenes Beschäftigungsverhältnis. Wir kennzeichnen sie, bis die Fachabteilung antwortet.270

    Betrifft in diesem Monat 270 Beschäftigungsverhältnisse, so viele findet die Prüfung.

    Begründung: Die Statistik zählt Beschäftigungsverhältnisse, nicht Personen. So geht nichts verloren, und die Fälle bleiben sichtbar.

    Gehört zu Rückfrage R8.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    SELECT r.name, sum(t.anzahl) AS beschaeftigungsverhaeltnisse
    FROM meta.pruefung_treffer t JOIN meta.regel r ON r.id = t.regel_id
    WHERE t.lauf_id = 103 AND r.name = 'P19_phantom_doppelmeldung' AND t.ebene = 'satz'
    GROUP BY r.name;
  • Alte Branchencodes aus ÖNACE 2003 (DA bis DN) zählen zur Herstellung von Waren (Abschnitt C), in den Tabellen und in der Lieferung an das Ministerium gleich.50

    Betrifft in diesem Monat 50 Zeilen.

    Begründung: Der Beispielbericht des Veranstalters zählt sie ebenso zu C. Dieselbe Person soll nicht an einer Stelle zu C zählen und an der anderen nicht.

    Beleg
    Tabelle
    meta.regel_wirkung
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    SELECT r.name, r.beschreibung, sum(w.saetze) AS saetze
    FROM meta.regel_wirkung w JOIN meta.regel r ON r.id = w.regel_id
    WHERE w.lauf_id = 103 AND r.name = 'Q01_oenace_2003_unterabschnitte'
    GROUP BY r.name, r.beschreibung;
  • Steht im Geburtsdatum der Monat 13, gilt das Geburtsjahr, und als Geburtstag nehmen wir den 1. Juli an.364

    Betrifft in diesem Monat 364 Beschäftigungsverhältnisse, so viele findet die Prüfung.

    Begründung: So passen die Altersgruppen zum Beispielbericht. Antwortet die Fachabteilung anders, ändern wir nur einen Wert in der Regel.

    Gehört zu Rückfrage R1.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    SELECT r.name, sum(t.anzahl) AS beschaeftigungsverhaeltnisse
    FROM meta.pruefung_treffer t JOIN meta.regel r ON r.id = t.regel_id
    WHERE t.lauf_id = 103 AND r.name = 'P04_geburtsdatum_monat_13' AND t.ebene = 'satz'
    GROUP BY r.name;
  • Ein Alter über 110 Jahre halten wir für einen Fehler und führen es als „unbekannt“. Ein Alter von 75 bis 110 Jahren ist echt und zählt.9

    Betrifft in diesem Monat 9 Beschäftigungsverhältnisse, so viele findet die Prüfung.

    Begründung: Im Beispielbericht stehen diese Fälle unter „unbekannt“. Ab September 2024 gibt es echte Beschäftigte über 75, die sollen nicht verschwinden.

    Gehört zu Rückfrage R6.

    Beleg
    Tabelle
    meta.pruefung_treffer
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    SELECT r.name, sum(t.anzahl) AS beschaeftigungsverhaeltnisse
    FROM meta.pruefung_treffer t JOIN meta.regel r ON r.id = t.regel_id
    WHERE t.lauf_id = 103 AND r.name = 'P06_alter_unplausibel' AND t.ebene = 'satz'
    GROUP BY r.name;
  • Hat ein Beschäftigungsverhältnis mehrere Zeitabschnitte, gelten die Merkmale des Abschnitts mit dem spätesten Beginn. Lücken zwischen Abschnitten füllen wir nicht auf.

    Betrifft in diesem Monat 0 Zeilen.

    Begründung: Die jüngere Meldung ist die aktuellere. Eine feste Reihenfolge macht jeden Lauf wiederholbar, und gefüllte Lücken wären erfundene Beschäftigungstage.

    Beleg
    Tabelle
    meta.regel_wirkung
    Lieferung
    Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    SELECT r.name, r.beschreibung, sum(w.saetze) AS saetze
    FROM meta.regel_wirkung w JOIN meta.regel r ON r.id = w.regel_id
    WHERE w.lauf_id = 103 AND r.name = 'R1_R3_verhaeltnis_einmal'
    GROUP BY r.name, r.beschreibung;
Beleg
Tabelle
meta.annahme
Lieferung
Jänner 2025
Regelstand
c3ecc447f8384fea
Lauf
68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
WITH a AS (
  SELECT a.*, count(*) OVER (PARTITION BY a.regel_name) AS annahmen_je_regel
  FROM meta.annahme a
  WHERE a.lieferungen IS NULL OR '2025-01' = ANY (a.lieferungen)
), p AS (
  SELECT a.nr, r.name, r.name = a.regel_name AS eigene_regel, sum(t.anzahl) AS anzahl
  FROM a
  JOIN meta.pruefung_treffer t ON t.lauf_id = 103 AND t.anzahl > 0 AND t.ebene = 'satz'
  JOIN meta.regel r ON r.id = t.regel_id AND (r.name = a.regel_name OR t.details ->> 'rueckfrage' = a.rueckfrage)
  GROUP BY a.nr, r.name, a.regel_name
), e AS (
  SELECT a.*,
    (SELECT sum(w.saetze) FROM meta.regel_wirkung w JOIN meta.regel r ON r.id = w.regel_id
     WHERE w.lauf_id = 103 AND r.name = a.regel_name) AS regel_saetze,
    (SELECT p.anzahl FROM p WHERE p.nr = a.nr AND p.eigene_regel) AS eigene_pruefung,
    (SELECT count(*) FROM p WHERE p.nr = a.nr) AS pruefungen,
    (SELECT min(p.name) FROM p WHERE p.nr = a.nr) AS pruefung,
    (SELECT min(p.anzahl) FROM p WHERE p.nr = a.nr) AS pruefung_anzahl,
    EXISTS (SELECT 1 FROM meta.regel r WHERE r.name = a.regel_name AND r.typ = 'pruefung') AS eigene_ist_pruefung
  FROM a
)
SELECT e.nr, e.rueckfrage, e.satz, e.begruendung, e.regel_name,
  CASE WHEN e.annahmen_je_regel = 1 AND e.regel_saetze IS NOT NULL THEN 'regel'
       WHEN e.eigene_pruefung IS NOT NULL OR e.eigene_ist_pruefung OR e.pruefungen = 1 THEN 'pruefung' END AS wirkung_quelle,
  CASE WHEN e.annahmen_je_regel = 1 AND e.regel_saetze IS NOT NULL THEN e.regel_name
       WHEN e.eigene_pruefung IS NOT NULL OR e.eigene_ist_pruefung THEN e.regel_name
       WHEN e.pruefungen = 1 THEN e.pruefung END AS wirkung_regel,
  CASE WHEN e.annahmen_je_regel = 1 AND e.regel_saetze IS NOT NULL THEN e.regel_saetze
       WHEN e.eigene_pruefung IS NOT NULL THEN e.eigene_pruefung
       WHEN e.eigene_ist_pruefung THEN 0
       WHEN e.pruefungen = 1 THEN e.pruefung_anzahl END AS wirkung_saetze,
  (SELECT q.beleg_sql FROM meta.rueckfrage q WHERE q.nr = e.rueckfrage) AS beleg_sql
FROM e ORDER BY length(e.nr), e.nr;

Diese Lieferung zeigt Revisionsbedarf für 2 frühere Monate.

  • Mit dieser Lieferung wäre November 2024 um 205 Beschäftigungsverhältnisse kleiner als bisher gezeigt (388.936 statt 389.141). Die bisher gezeigte Zahl bleibt stehen, weil jeder Monat nur aus seiner eigenen Lieferung gerechnet wird.

    Gründe: 672 Beschäftigungsverhältnisse wurden nachgemeldet, 664 Beschäftigungsverhältnisse wurden rückwirkend abgemeldet und 213 Beschäftigungsverhältnisse sind in der neuen Lieferung nicht mehr enthalten.

    Beleg
    Tabelle
    meta.revision
    Monat
    November 2024 aus Lieferung Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    SELECT r.berichtsmonat, r.veroeffentlicht, r.aktuell, r.differenz, r.status_vorher, u.ursache, u.anzahl,
           EXISTS (SELECT 1 FROM meta.revision g WHERE g.lauf_id = r.lauf_id AND g.berichtsmonat = r.berichtsmonat AND g.gliederung <> 'insgesamt' AND g.differenz <> 0) AS umgeschichtet
    FROM meta.revision r
    LEFT JOIN meta.revision_ursache u ON u.lauf_id = r.lauf_id AND u.berichtsmonat = r.berichtsmonat
    WHERE r.lauf_id = 103 AND r.gliederung = 'insgesamt' AND r.berichtsmonat = '2024-11'
    ORDER BY u.anzahl DESC;
  • Mit dieser Lieferung wäre Dezember 2024 um 260 Beschäftigungsverhältnisse kleiner als bisher gezeigt (387.130 statt 387.390). Die bisher gezeigte Zahl bleibt stehen, weil jeder Monat nur aus seiner eigenen Lieferung gerechnet wird.

    Gründe: 878 Beschäftigungsverhältnisse wurden rückwirkend abgemeldet, 831 Beschäftigungsverhältnisse wurden nachgemeldet, 213 Beschäftigungsverhältnisse sind in der neuen Lieferung nicht mehr enthalten und bei 1 Beschäftigungsverhältnis hat sich ein Merkmal geändert.

    Beleg
    Tabelle
    meta.revision
    Monat
    Dezember 2024 aus Lieferung Jänner 2025
    Regelstand
    c3ecc447f8384fea
    Lauf
    68ba0b5a3704ac35f1927e9fc13860af438acf4241d0238db133a2451d607875
    SELECT r.berichtsmonat, r.veroeffentlicht, r.aktuell, r.differenz, r.status_vorher, u.ursache, u.anzahl,
           EXISTS (SELECT 1 FROM meta.revision g WHERE g.lauf_id = r.lauf_id AND g.berichtsmonat = r.berichtsmonat AND g.gliederung <> 'insgesamt' AND g.differenz <> 0) AS umgeschichtet
    FROM meta.revision r
    LEFT JOIN meta.revision_ursache u ON u.lauf_id = r.lauf_id AND u.berichtsmonat = r.berichtsmonat
    WHERE r.lauf_id = 103 AND r.gliederung = 'insgesamt' AND r.berichtsmonat = '2024-12'
    ORDER BY u.anzahl DESC;