Einblick hinter die Kulissen
Wie können innerhalb eines Monats rund 50 Betriebsrechnungen von gut zwei Dutzend Gesellschaften
plausibilisiert werden?
Wie kann ein Prozess, in den neben den Gesellschaften, die Vereinsleitung,
das BAG, die externe Revisionsstelle und die Plausibilisierungsstelle involviert sind,
übersichtlich gestaltet werden?
Wie erfolgt die Plausibilisierung, wie wird die Qualität gesichert und wie wird
eine intuitive Benutzung ermöglicht?
Das Portal betriebsrechnung.ch liefert eine Antwort auf all diese Fragen. Innerhalb eines Monats
wird die Mehrheit der entsprechenden Arbeiten erledigt, das Portal laufend weiter entwickelt und
angepasst, und alle involvierten Parteien zeitnah über den jeweils aktuellen Status und die
notwendigen Arbeitsschritte informiert.
Nach Erteilung des Zugriffs ist für Benutzende nur ein aktueller Webbrowser notwendig.
Und natürlich die eigene Betriebsrechnung, die vor Eingabe an das BAG plausibilisiert werden
soll.
Was davor, während und nach diesem einen Monat hinter den Kulissen abläuft, erfahren Sie in
dieser
Präsentation.
Gerne stehen wir Ihnen bei Fragen oder für einen Erfahrungs- und Ideenaustausch zur
Verfügung.
Even Meier
even.meier@betriebsrechnung.ch
Erfolgreich plausibilisieren
-
Datenlieferung
Innerhalb eines Monats gehen aktuell 43 Betriebsrechnungen von 22 Gesellschaften ein und müssen plausibilisiert werden.
-
Zeitnahes Feedback
Üblicherweise erhält der Benutzende innert weniger Stunden ein umfassendes Feedback.
-
Konstante Qualität
Die Qualität soll für jede Eingabe identisch sein, egal wieviel Zeit bis zur BAG Eingabe verbleibt.
Erfolgreich plausibilisieren (2)
-
Manuell/Automatisierung
Es braucht zwingend eine Mischung. Um die konstante Qualität sicherzustellen, soll stets danach gestrebt werden, manuell gewonnene Erkenntnisse mittels automatisierter Tests zu implementieren.
-
Agil und DevOps
Neue gewonnene Erkenntnisse sollen rasch auf sämtliche Betriebsrechnungen mittels kurzer Releasezyklen angewendet werden können.
Agenda
- Verteilte Lösung und aktueller Prozess 25'
- Datenmodell 15'
- Neuen Test entwickeln 20'
- DevOps 10'
- Nicht funktionale Features 10'

Zusammenarbeit
Die Plattform betriebsrechnung.ch verbindet verschiedene Rollen mit unterschiedlichen Zugriffsberechtigungen.
- Mehr als 20 UVG-Versicherungsgesellschaften
- Vereinsleitung des Vereins zur Sicherung künftiger Renten
- Plausibilisierungsgesellschaft
- Regulator BAG
- Prüfgesellschaft
Die Zusammenarbeit bzw. die Aktivität der einzelnen Benutzer auf der Plattform kann vom Administrator, in diesem Fall ist dies der Plausibilisierer, gemäss Audit-Trail nachvollzogen werden.

Prozessübersicht
Auf betriebsrechnung.ch kann die Gesellschaft eine Einladung verlangen. Sobald der Benutzeraccount erstellt und freigeschaltet wurde, verläuft die Plausibilisierung grundsätzlich wie folgt:
- UVG-Betriebsrechnung als Formulare des BAG wird hochgeladen
- System validiert automatisch, Kommentare werden begutachtet
- Gesellschaft genehmigt Kommentare und begründet sie
- Plausibilisierung wird verlangt
- Sind die Begründungen plausibel, kann die Plausibilisierung abgeschlossen werden
- Freigabe an das BAG
Sobald alle UVG-Betriebsrechnungen plausibilisiert und ans BAG freigegeben worden sind, kann die Erstellungen der aggregierten Betriebsrechnung ausgelöst werden.
Rollen und Zugriffsrechte
-
Versicherer
Pro Gesellschaft beliebig viele Benutzer; pro Benutzer zusätzliche Gesellschaft möglich (vgl. Ersatzkasse); E-Mail Benachrichtigungen über den aktuellen Stand; Zugriff auf die aktuellen Unterlagen; Hochladen der Betriebsrechnung (iterativ); Meldungen begründen Freigabe ans BAG
aggregierte Betriebsrechnung
-
Vereinsleitung
Benutzerzugang analog zu einer Gesellschaft; zusätzliche Auswertungen; spezielle Auswertungen grundsätzlich möglich
aggregiert Betriebsrechnung; aggregierte Betriebsrechnung inkl. Ersatzkasse
-
Regulator
BAG sieht nur vollständig plausibilisierte, von der jeweiligen Gesellschaft freigegebene Betriebsrechnungen; Darin enthalten, die begründenden Kommentare zur Plausibilisierung; Einsicht in jeweiligen Stand der Plausibilisierung pro Gesellschaft (Farbcodierung und sofern es den Regulator betrifft die "Aktivitäten")
aggregierte Betriebsrechnung; alle Betriebsrechnungen als .zip-Datei
-
Auditor
Die Prüfgesellschaft hat die gleichen Zugriffsrecht wie das BAG (mit Ausnahme des Aktivitätenfensters)
aggregierte Betriebsrechnung; alle Betriebsrechnungen als .zip-Datei
-
Plausibilisierer
Verschiedene Übersichten über die gelieferten Daten und Aktivitäten der Benutzer; Validierung auslösen; Manuelle Meldungen zu Auffälligkeiten erfassen; Meldungen können ausschliesslich von Gesellschaft begründet werden; Sind alle Meldungen hinreichend begründet; wird die Plausibilisierung abgeschlossen; Veröffentlichung der aggr. Betriebsrechnung; Administration
aggregierte Betriebsrechnung; aggregierte Betriebsrechnung inkl. Ersatzkasse; alle Betriebsrechnungen als .zip-Datei und zusätzliche Auswertungen
Startseite unterschiedlicher Benutzerrollen
Datenmodell
Single Source of Truth


Aufgabenstellung
2'000 Zellen, ein Drittel enthalten Formeln.
Das Template kann jährlich angepasst werden.
Es gibt vier Varianten: zwei Sprachen, Fondmitglieder und Nichtmitglieder.

Ziele
Datenherkunft ist transparent
Bearbeitungsfortschritt für alle stets einsehbar
Lösungsansatz
-
Automatisiertes Einlesen in Datenbank
Der Einlesealgorithmus wird aufgrund einer leeren Referenzdatei automatisch für jedes Jahr kalibriert. Dabei wird festgelegt, welche Zellen Werte statt Formeln enthalten dürfen. Es braucht somit keine Codeanpassung, wenn im Template Zeilen hinzugefügt oder gelöscht werden.
-
Trennen von Original und bearbeiteten Daten
-
Open Source Library
Apache POI ermöglicht das einfache Lesen und Schreiben von Office Dokumenten.
Dateiinformationen - einsehbar auf Startseite
-
Bearbeitbar
Kann einmalig beim Hochladen der Datei geschrieben werden
Dateikommentar
-
Extrahiert
Diese Daten werden beim Hochladen der Datei einmalig ausgelesen und in die Datenbank geschrieben
Dateinname, -pfad, Jahr, hochladende Person und Organisation, Dokumentdatum
-
Prozessdaten
Diese Daten werden aufgrund der Prozesssteuerung (automatisch) aktualisiert.
Status, Aktualisierungsdatum, Sichtbarkeit, archiviert
Zelleninformation
Jede Zelle wird beim Hochladen eingelesen und als individueller Datensatz
mit folgenden
Informationen in der Datenbank abgespeichert:
- Referenz zur Datei
- Referenz zum Konto/Ziffer
- Referenz zur Spalte (NBU, BU, FV, Total)
- Wert
- Jahr/Vorjahr (1./2. Sheet)
Verletzte Regeln
Nach dem Hochladen werden unmittelbar die Regeln angewendet.
Wann immer eine Regel nicht eingehalten wird, gibt es einen Eintrag in der Datenbank:
- Begründung - muss von der Gesellschaft erfasst werden
- Regel - auch manueller Eintrag möglich
- Referenz zur Zelle
- Status (ignorieren, anwenden, genehmigt)
Ignorierte Kommentare sehen nur die Plausibilisierer. Eine Regel war zu "fein" eingestellt (false positive). - Meldung bei manuellem Eintrag
Die Einträge sind einsehbar unter Kommentare einsehen -> Plausibilisierungsergebnis.
Sämtliche Tabellen
Es gibt doch noch etwas mehr,
als drei Datenbanktabellen

Plausibilisierungsregeln
Regeln sollen unabhängig implementier- und ausführbar sein.
Gemeinsame Funktionalität erleichtert den Zugriff auf Datenbankeinträge.
- Jede Regel besteht aus einem Namen, einer Beschreibung und einer Validierungsmethode.
- Die Regeln lassen sich kategorisieren nach Anwendung
- jede Zelle
- explizit definierte Zelle(n)
- Auswertung von Formelzellen
- Berücksichtigung von Vorjahresergebnissen
- Regeln lassen für einzelne Jahre (de-)aktivieren.
Gemeinsame Funktionalität
Einfacher Zugriff auf Datenbankeinträge ohne Kenntnis des Datenbankmodells
// collect cells for validation rule application Collection<SheetValue> filterCells(Collection<SheetValue> cells) // single cell (acc = line, type = column, shiftYear = sheet) SheetValue getSheetValue(AbstractAccountingFile file, Account acc, SectionType type, int shiftYear = 0) // (previous year/version file with a specific quality AccountingFile getLatestAccountingFileForOrganisation(Organisation organisationToFind, int yearToFind, AccountingFileStatus statusToFind = VALID) Boolean isFormulaCell(SheetValue cell)
Rückmeldung
return [new ValidationComment(cell, name, [ 'fondsAmount': value43, 'reservesAmount': cell.value, 'deltaAmount': (cell.value - value43), 'ratioDelta': (cell.value - value43) / value43])]
Entwicklung und Betrieb
DevOps beschreibt einen Prozessverbesserungsansatz aus den Bereichen der Softwareentwicklung und Systemadministration.
Dabei ermöglichen gemeinsame Anreize, Prozesse und Tools eine effektivere und effizientere Zusammenarbeit.
Das verkürzt die Vorlaufzeit, erhöht die Frequenz von Auslieferungen und verbessert die Resilienz.
Ökosystem
-
HTTP Server -
Application Server -
Datenbank -
Webapplication Framework -
Wiki für Spezifikation -
Ticketsystem -
Codeversionierung und -review
-
Continuous Integration -
Server Programmiersprachen
-
JavaScript Framework -
Design -
Design und Content
Anforderungen
Nichtfunktionale Anforderungen gehen
leicht vergessen
Sicherheit
-
Registration
zweistufig -
Fluktuation
Sperrung bei Inaktivität
Freischaltlinks in Emails -
Rollenkonzept
Statt individuelle Rechte -
Datei Zugriffsberechtigung
Aufgrund der Rolle, der Gesellschaft und des Prozessstandes -
Monitoring
Fehlgeschlagene Logins, ungültige Zugriffsversuche -
Verschlüsselung
TLS 1.2, 256-Bit-Schlüssel

Erweiterbarkeit
Regeln müssen einfach hinzugefügt, angepasst und deaktiviert werden können, ohne dass es Seiteneffekte geben kann. Dieses Jahr wurden zwei Regeln deaktiviert, eine reaktiviert und vier hinzugefügt.
Das Navigationskonzept muss Erweiterungen zulassen. Dieses Jahr musste der Downloadbereich neu gestaltet werden.
Das Deployment soll rasch erfolgen können, denn die Validierungsphase vor Eingabe ans BAG ist kurz.

Intuitive Bedienbarkeit
Benutzende nutzen die Applikation zweimal jährlich. Die Bedienung muss einfach und klar sein. Der Benutzer muss gezielt zum nächsten Arbeitsschritt geführt werden.
Die Interoperabilität ist mit einer Webapplikation gewährleistet. Einzige Voraussetzung ist ein aktueller Browser. Das Betriebssystem spielt keine Rolle.

Performance
Die autoamtisierte Validierung einer einzelnen Betriebsrechnung dauert aktuell 65". Jede Regelanwendung wird gemessen, um Laufzeitunterschiede aufgrund von Regelanpassungen rasch feststellen zu können. Je nach Komplexität einer Regel benötigt diese 5ms bis zu 18", wenn sie bspw. auf sämtliche Zellen angewendet wird.
Es gibt einen Zielkonflikt zwischen einfacher Erweiterbarkeit und Performance.
Um die Performance zu verbessern, wird die aggregierte Betriebsrechnung neu vorbereitet und nicht erst beim Klicken auf den Downloadlink vollständig neu berechnet.
Datenqualität mittels Datenbank und Prozessen sicherstellen
-
Viele Quellsysteme
Excel, Webformular für die Kollaboration (intern, Kunden), RESTful Services zur Anbindung anderer Systeme (z.B. Wechselkurse) -
Datenversionierung
Bekannte Datenherkunft (automatisch erstellte Metadaten wie Zulieferer, Zeitstempel) ermöglicht gezieltes Nachfragen und Ersetzen. -
Datenstrukturierung
Eine explizite Datenstrukturierung ermöglicht unterschiedliche Aggregationen und Transformationen (M&A, Reorganisationen). -
Zeitreihen und andere Reports
Spreadsheet übergreifende Zeitreihen und 'slowly changing dimensions' (wie z.B. neue/entfernte Zeilen) sind kein Problem. -
Kollaboration
Interne und externe Kollaboration, dokumentierte Entscheidungen -
reduziertes operationelles Risiko
Automatische Visualisierung des Projektfortschritts sowie gleichbleibende Qualität verhindert unnötige Hektik (Negativ-Beispiele)
Technologiewahl für Teilprobleme
Es lohnt sich jede einzelne Aufgabenstellung in Teilprobleme aufzuspalten und je Teilproblem die aktuell geeignete Technologie zu wählen. Dies ermöglicht ein schrittweises Vorgehen gerade auch beim Ersetzen und Erweitern bestehender Lösungen.
-
Aufgabenstellung
Excel
Server basierte Lösung
-
Input
Eingabemasken rasch erstell- und modifizierbar
Webformulare ermöglichen die verteilte Datenerfassung
Metadaten (wann, wer)
-
Verarbeitung
(Modell, Formeln)Prototyping
explorative Analysen
Spezifikation
TestbeispieleReproduzierbarkeit
Rechengeschwindigkeit
auditierbar dank versioniertem und verifiziertem Rechenkern -
Output
hohe Flexibilität, ad-hoc Auswertungen
Reproduzierbar, da Beziehungen zu verwendeten Rechenkernen und Inputs automatisch nachfollziehbar sind
Zugriffsregeln möglich
Alternativ kann für den Rechenkern bspw auch R verwendet werden.