import 'models.dart'; /// Phase-0 fixture data for the five pilot norms. /// /// **THIS IS DEMO DATA.** The numbers are plausible (drawn from /// public NKR/DIHK/DESTATIS reporting where available), but the /// composed scores have NOT been peer-reviewed. The UI displays a /// permanent "Demo / nicht freigegeben" banner whenever this data /// is on screen — see [HeatmapPage] and the `tierLowest = T4` cap /// applied to every fixture below. /// /// Source pointers per Norm are real and clickable so the /// methodological audit story stays intact even in demo mode. class Fixtures { static final List evaluations = [ _gewo14, _kassenSichV, _dsgvoArt30, _berlinBauO60, _miLoG17, ]; static final _gewo14 = Evaluation( norm: Norm( eli: 'eli/bund/gewo/14', title: 'Anzeigepflicht', jurabk: 'GewO', paragraph: '§ 14', standDate: DateTime.utc(2025, 12, 1), sourceUrl: 'https://www.gesetze-im-internet.de/gewo/__14.html', sourceSha256: 'demo-${'a' * 60}', paragraphs: const [ NormParagraph( number: '(1)', text: 'Wer den selbständigen Betrieb eines stehenden Gewerbes, ' 'einer Zweigniederlassung oder einer unselbständigen ' 'Zweigstelle anfängt, muss dies der zuständigen Behörde ' 'gleichzeitig anzeigen. Das Gleiche gilt, wenn ' '1. der Betrieb verlegt wird, ' '2. der Gegenstand des Gewerbes gewechselt oder ' 'auf Waren oder Leistungen ausgedehnt wird, die bei ' 'Gewerbebetrieben der angemeldeten Art nicht geschäftsüblich ' 'sind, oder ' '3. der Betrieb aufgegeben wird.', ), NormParagraph( number: '(2)', text: 'Die Anzeige hat unverzüglich zu erfolgen. Sie ist nach ' 'amtlich vorgeschriebenem Vordruck zu erstatten.', ), ], ), skmEurPerYear: 2_800_000, benefitScore: 2.5, affectedCount: 180_000, frustScore: 4.5, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Gewerbetreibende', action: 'Beginn, Wechsel, Aufgabe eines stehenden Gewerbes anzeigen', frequency: 'anlassbezogen', sourceNorm: 'GewO § 14', authority: 'zuständige Behörde am Niederlassungsort', ), ], sources: const [ Source( label: 'BMJ — gesetze-im-internet.de', url: 'https://www.gesetze-im-internet.de/gewo/__14.html', tier: EvidenceTier.t1, ), Source( label: 'NKR Bürokratiekosten-Datenbank', url: 'https://www.normenkontrollrat.bund.de/', tier: EvidenceTier.t1, note: 'h-Wert noch nicht NKR-validiert', ), Source( label: 'IHK Berlin — Mittelstandsumfrage 2025', url: 'https://www.ihk.de/berlin', tier: EvidenceTier.t2, ), ], auditEventId: 'demo-evt-gewo-14', notes: 'Komponenten-Tier: P (Fallzahl) T1 — DESTATIS Gewerbeanzeigen-Statistik; ' 'F (Frequenz) T1 — anlassbezogen, ein Vorgang je Anmeldung/Änderung/Aufgabe; ' 'T (Tarif) T1 — DESTATIS Verdiensterhebung kaufm. Tätigkeit ~30 €/h; ' 'h (Zeitaufwand) T3 — eigene Schätzung ~30 min, NKR-Validierung ausstehend. ' 'Regel der niedrigsten Stufe: Gesamt → T3 (in der Demo konservativ als T4 markiert).', ); static final _kassenSichV = Evaluation( norm: Norm( eli: 'eli/bund/kassensichv', title: 'Kassensicherungsverordnung', jurabk: 'KassenSichV', paragraph: 'gesamt', standDate: DateTime.utc(2025, 11, 15), sourceUrl: 'https://www.gesetze-im-internet.de/kassensichv/index.html', sourceSha256: 'demo-${'b' * 60}', paragraphs: const [ NormParagraph( number: '§ 1', text: 'Diese Verordnung gilt für elektronische ' 'Aufzeichnungssysteme im Sinne des § 146a Absatz 1 ' 'Satz 1 der Abgabenordnung, mit denen aufzeichnungspflichtige ' 'Geschäftsvorfälle oder andere Vorgänge erfasst werden.', ), NormParagraph( number: '§ 2', text: 'Das elektronische Aufzeichnungssystem muss jeden ' 'einzelnen aufzeichnungspflichtigen Vorgang vollständig ' 'aufzeichnen. Die Aufzeichnungen sind durch eine ' 'zertifizierte technische Sicherheitseinrichtung ' 'unmittelbar zu protokollieren.', ), NormParagraph( number: '§ 3', text: 'Den Steuerpflichtigen treffen Mitteilungspflichten ' 'gegenüber dem zuständigen Finanzamt; der Ausfall einer ' 'zertifizierten technischen Sicherheitseinrichtung ist ' 'unverzüglich anzuzeigen.', ), ], ), skmEurPerYear: 25_000_000, benefitScore: 3.0, affectedCount: 500_000, frustScore: 7.5, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Betreiber elektronischer Kassen', action: 'TSE-Zertifizierte Sicherheitseinrichtung einsetzen', frequency: 'kontinuierlich', sourceNorm: 'KassenSichV § 1–4', authority: 'Finanzamt / BSI', consequence: 'Bußgeld bis 25.000 €', ), Duty( modality: 'OBLIGATION', addressee: 'Betreiber', action: 'TSE-Ausfall an Finanzamt melden', frequency: 'anlassbezogen', sourceNorm: 'KassenSichV § 3', authority: 'Finanzamt', ), ], sources: const [ Source( label: 'BMJ — gesetze-im-internet.de', url: 'https://www.gesetze-im-internet.de/kassensichv/index.html', tier: EvidenceTier.t1, ), Source( label: 'DIHK — Bürokratie-Index 2025', url: 'https://www.dihk.de/buerokratie', tier: EvidenceTier.t2, ), Source( label: 'DEHOGA Berlin Mittelstandsumfrage', url: 'https://www.dehoga-berlin.de/', tier: EvidenceTier.t2, note: 'h-Wert aus Gastronomie-Stichprobe', ), ], auditEventId: 'demo-evt-kassensichv', notes: 'Komponenten-Tier: Initial-Erfüllungsaufwand wurde 2016 im NKR-Stellungnahme-' 'Prozess zum Kassengesetz dokumentiert (T1 für Größenordnung). ' 'Laufende Folgekosten (TSE-Ausfallmeldungen, Hardware-Erneuerung): T2 ' 'aus DIHK-Bürokratie-Index + DEHOGA-Gastronomie-Stichprobe. ' 'Hoher Frust-Score wegen Pluralität TSE-Hersteller × Finanzamt-Vollzug.', ); static final _dsgvoArt30 = Evaluation( norm: Norm( eli: 'eli/eu/reg/2016/679/art30', title: 'Verzeichnis von Verarbeitungstätigkeiten', jurabk: 'DSGVO', paragraph: 'Art. 30', standDate: DateTime.utc(2025, 10, 1), sourceUrl: 'https://eur-lex.europa.eu/eli/reg/2016/679', sourceSha256: 'demo-${'c' * 60}', paragraphs: const [ NormParagraph( number: '(1)', text: 'Jeder Verantwortliche und gegebenenfalls sein Vertreter ' 'führen ein Verzeichnis aller Verarbeitungstätigkeiten, ' 'die ihrer Zuständigkeit unterliegen. Dieses Verzeichnis ' 'enthält sämtliche folgenden Angaben: a) den Namen und ' 'die Kontaktdaten des Verantwortlichen … b) die Zwecke ' 'der Verarbeitung; c) eine Beschreibung der Kategorien ' 'betroffener Personen und der Kategorien personenbezogener ' 'Daten; d) die Kategorien von Empfängern …', ), NormParagraph( number: '(2)', text: 'Jeder Auftragsverarbeiter und gegebenenfalls sein ' 'Vertreter führen ein Verzeichnis zu allen Kategorien von ' 'im Auftrag eines Verantwortlichen durchgeführten ' 'Verarbeitungstätigkeiten.', ), NormParagraph( number: '(3)', text: 'Das in den Absätzen 1 und 2 genannte Verzeichnis ist ' 'schriftlich zu führen, was auch in einem elektronischen ' 'Format erfolgen kann.', ), NormParagraph( number: '(4)', text: 'Der Verantwortliche oder der Auftragsverarbeiter sowie ' 'gegebenenfalls deren Vertreter stellen das Verzeichnis ' 'der Aufsichtsbehörde auf Anfrage zur Verfügung.', ), NormParagraph( number: '(5)', text: 'Die in den Absätzen 1 und 2 genannten Pflichten gelten ' 'nicht für Unternehmen oder Einrichtungen, die weniger als ' '250 Mitarbeiter beschäftigen, es sei denn die von ihnen ' 'vorgenommene Verarbeitung birgt ein Risiko für die Rechte ' 'und Freiheiten der betroffenen Personen, die Verarbeitung ' 'erfolgt nicht nur gelegentlich oder umfasst besondere ' 'Datenkategorien gemäß Artikel 9 Absatz 1 …', ), ], ), skmEurPerYear: 450_000_000, benefitScore: 3.8, affectedCount: 3_000_000, frustScore: 8.5, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Verantwortliche + Auftragsverarbeiter', action: 'Verzeichnis aller Verarbeitungstätigkeiten führen', frequency: 'jährlich überprüfen', sourceNorm: 'DSGVO Art. 30 Abs. 1+2', authority: 'Aufsichtsbehörde (auf Verlangen)', consequence: 'Bußgeld bis 10 Mio € / 2 % Jahresumsatz', ), ], sources: const [ Source( label: 'EUR-Lex — DSGVO Art. 30', url: 'https://eur-lex.europa.eu/eli/reg/2016/679', tier: EvidenceTier.t1, ), Source( label: 'DIHK — DSGVO-Belastung der Wirtschaft 2024', url: 'https://www.dihk.de/dsgvo', tier: EvidenceTier.t2, ), Source( label: 'BfDI — Tätigkeitsbericht', url: 'https://www.bfdi.bund.de/', tier: EvidenceTier.t1, ), ], auditEventId: 'demo-evt-dsgvo-30', notes: 'EU-determiniert: Reform-Vorschlag muss Brüssel adressieren, nicht ' 'DE-Streichung. Komponenten-Tier: P (Fallzahl Verantwortliche) ' 'T1 — DESTATIS Unternehmensregister + Ableitung; Aufwand-Schätzung ' 'pro Unternehmen liegt im Streit zwischen BfDI-Position (gering, weil ' '<250-MA-Ausnahme) und DIHK-Position (hoch, weil 5-Abs.-Ausnahme ' 'praktisch nicht greift). Tier T2 für Magnitude.', ); static final _berlinBauO60 = Evaluation( norm: Norm( eli: 'eli/land/be/bauo/60', title: 'Bauantrag', jurabk: 'BauO Bln', paragraph: '§ 60 ff', standDate: DateTime.utc(2025, 9, 1), sourceUrl: 'https://gesetze.berlin.de/bsbe/document/jlr-BauOBE2005V25P60', sourceSha256: 'demo-${'d' * 60}', paragraphs: const [ NormParagraph( number: '§ 60 (1)', text: 'Für die Errichtung, Änderung und Nutzungsänderung ' 'baulicher Anlagen sowie anderer Anlagen und ' 'Einrichtungen im Sinne des § 1 Absatz 1 Satz 2 ist die ' 'Baugenehmigung erforderlich, soweit in den §§ 61 bis 65 ' 'sowie 76 und 77 nichts anderes bestimmt ist.', ), NormParagraph( number: '§ 60 (2)', text: 'Bauliche Anlagen und andere Anlagen, an die in dieser ' 'Bauordnung oder in Vorschriften aufgrund dieser ' 'Bauordnung Anforderungen gestellt werden, dürfen nur so ' 'errichtet, geändert und in der Nutzung geändert werden, ' 'dass sie diesen Anforderungen entsprechen.', ), NormParagraph( number: '§ 63', text: 'Der Bauantrag ist schriftlich bei der Bauaufsichtsbehörde ' 'unter Beifügung der für die Beurteilung des Vorhabens und ' 'die Bearbeitung des Bauantrags erforderlichen Bauvorlagen ' 'einzureichen.', ), ], ), skmEurPerYear: 72_000_000, benefitScore: 3.5, affectedCount: 15_000, frustScore: 9.0, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Bauherr', action: 'Bauantrag mit Bauvorlagen einreichen', frequency: 'pro Bauvorhaben', sourceNorm: 'BauO Bln § 60–69', authority: 'Bauaufsichtsbehörde Bezirk', ), ], sources: const [ Source( label: 'landesrecht-berlin.de', url: 'https://gesetze.berlin.de/bsbe/document/jlr-BauOBE2005V25P60', tier: EvidenceTier.t1, ), Source( label: 'Handwerkskammer Berlin — Bauantragsdauer 2025', url: 'https://www.hwk-berlin.de/', tier: EvidenceTier.t2, ), Source( label: 'mein.berlin.de — Bürgerbeteiligung Bauverfahren', url: 'https://mein.berlin.de/', tier: EvidenceTier.t4, ), ], auditEventId: 'demo-evt-berlinbauo-60', notes: 'Berlin-spezifisch, daher kein NKR-Erfüllungsaufwand auf Bundesebene. ' 'P aus Berliner Bauaufsichts-Statistik (T2 Handwerkskammer Berlin); ' 'h ist hier der Engpass (Phasen Vorbescheid → Bauantrag → Beteiligung ' '→ Genehmigung sind im Land getrennt geregelt). Höchster Frust-Score ' 'aus Verweistiefe + Behörden-Pluralität (Bezirksamt × SenStadt × ' 'Beteiligungsverfahren).', ); static final _miLoG17 = Evaluation( norm: Norm( eli: 'eli/bund/milog/17', title: 'Dokumentationspflichten', jurabk: 'MiLoG', paragraph: '§ 17', standDate: DateTime.utc(2025, 11, 1), sourceUrl: 'https://www.gesetze-im-internet.de/milog/__17.html', sourceSha256: 'demo-${'e' * 60}', paragraphs: const [ NormParagraph( number: '(1)', text: 'Ein Arbeitgeber, der Arbeitnehmerinnen und Arbeitnehmer ' 'nach § 8 Absatz 1 des Vierten Buches Sozialgesetzbuch ' 'geringfügig beschäftigt oder in den in § 2a des ' 'Schwarzarbeitsbekämpfungsgesetzes genannten ' 'Wirtschaftsbereichen oder Wirtschaftszweigen Personen ' 'beschäftigt, ist verpflichtet, Beginn, Ende und Dauer der ' 'täglichen Arbeitszeit dieser Arbeitnehmerinnen und ' 'Arbeitnehmer spätestens bis zum Ablauf des siebten auf ' 'den Tag der Arbeitsleistung folgenden Kalendertages ' 'aufzuzeichnen und diese Aufzeichnungen mindestens zwei ' 'Jahre beginnend ab dem für die Aufzeichnung maßgeblichen ' 'Zeitpunkt aufzubewahren.', ), NormParagraph( number: '(2)', text: 'Arbeitgeber im Sinne des Absatzes 1 haben die für die ' 'Kontrolle der Einhaltung der Verpflichtungen nach § 20 ' 'in Verbindung mit § 2 Absatz 1 erforderlichen Unterlagen ' 'im Inland in deutscher Sprache bereitzuhalten.', ), ], ), skmEurPerYear: 270_000_000, benefitScore: 3.2, affectedCount: 3_000_000, frustScore: 7.0, tierLowest: EvidenceTier.t4, duties: const [ Duty( modality: 'OBLIGATION', addressee: 'Arbeitgeber in MiLoG-relevanten Branchen', action: 'Beginn, Ende, Dauer der täglichen Arbeitszeit aufzeichnen', frequency: 'arbeitstäglich', sourceNorm: 'MiLoG § 17 Abs. 1', authority: 'Zoll (FKS)', consequence: 'Bußgeld bis 30.000 €', ), ], sources: const [ Source( label: 'BMJ — gesetze-im-internet.de', url: 'https://www.gesetze-im-internet.de/milog/__17.html', tier: EvidenceTier.t1, ), Source( label: 'NKR — Stellungnahme Mindestlohngesetz', url: 'https://www.normenkontrollrat.bund.de/', tier: EvidenceTier.t1, ), Source( label: 'ZDH — Bürokratiekosten Handwerk', url: 'https://www.zdh.de/', tier: EvidenceTier.t2, ), ], auditEventId: 'demo-evt-milog-17', notes: 'SKM-Rechnung: 3 Mio Betroffene × 220 Arbeitstage/Jahr × ' '0,1 h/Fall × 30 €/h ≈ 198 Mio €/Jahr (gerundet 270 wegen ' 'Saisonarbeit-Aufschlag). NKR-Stellungnahme zum MiLoG (2014) ' 'dokumentierte den initial-Erfüllungsaufwand; aktuelle Zahlen ' 'aus ZDH Bürokratiekosten-Handwerk. Bürokratieentlastungs-' 'gesetz IV adressierte den § 17 — Reform-Bewegung ist im Lauf.', ); }