ArbZG compliance
In Germany, anyone working more than six hours needs a 30-minute break; more than nine hours, 45 minutes. If someone forgets, the employer is liable. Classic time clocks either ignore that or silently truncate hours — both risky.
Multi-tenant SaaS with compliance at its core — built for the first pilot in a dental practice. ArbZG-compliant, with a DATEV payroll interface and a verifiable audit trail.
In Germany, anyone working more than six hours needs a 30-minute break; more than nine hours, 45 minutes. If someone forgets, the employer is liable. Classic time clocks either ignore that or silently truncate hours — both risky.
Forgetting to clock out happens. But every correction must remain verifiable: who changed what, when, and on what grounds? Otherwise the record won't stand up to an audit.
At the end of the month, the hours need to land in DATEV — without manual transfer and without an Excel bridge. We build the interface so the payroll team can take over the export directly.
Staff use it from reception, an API core feeds mobile clients at the same time.
If the statutory break is missing at clock-out, the server adds it as a labelled break entry — no silent truncation, a traceable correction with an "ArbZG" badge in the dashboard.
Staff × weekdays as a grid. A shift role like "Early shift Mon–Fri" is rolled out idempotently by the manager. Includes statutory holidays per German state.
Separate fields for the request and the decision note. State changes with conflict detection, self-withdrawal possible. Company-wide leave as a bulk action.
Admins and managers can adjust entries — but only with a mandatory reason. Who, when and why land as an audit triple on the entry.
Planned vs. actual, cumulative balance, one-click CSV. For payroll there's a DATEV import/export with wage-type mapping.
Each practice has its own tenant, fully isolated at the database level. Other tenants' data isn't "forbidden" to view — it simply doesn't exist for the wrong tenant. Including via the API.
A silent gross-time truncation would be easier to implement — but opaque and hard to explain the moment someone compares the app list with the clock-in list. Our labelled auto-break is visible, correctable and traceable in the audit.
If a manager double-clicks "Approve", the second click returns a conflict message rather than silently overwriting the approval stamp.
The stack needs no external cloud services. If you care about running on your own infrastructure — say, because patient data lives in the same network — you can run the app on your own server. Docker Compose, Postgres, done.
Django 5 + DRF on the backend, Vue 3 + Vite + TypeScript + Tailwind on the frontend, PostgreSQL for the database, JWT auth with e-mail verification, multi-tenancy as row-level isolation. Containerised with Docker Compose, self-hostable on any Linux VM.
M3 in review: 193 backend tests green, frontend build clean. The pilot practice gets the system with the feature set described above.
Next up:
… you're an SME with 5 to 50 staff and you care more about the points below than a long feature list:
We'll walk you through the pilot state in a short demo and discuss how it would slot into your payroll process.