Stand: 27.08.2026 · Alle Angaben getestet in Odoo 19 mit dem Modul hr_attendance 19.0.2.0. In Odoo 17 und 18 heißen einzelne Felder anders, das Grundverhalten ist identisch. In allen Screenshots sind personenbezogene Daten vor der Aufnahme unkenntlich gemacht worden.
Das Problem in drei Sätzen
Ein Mitarbeiter mit acht Stunden Tagessoll stempelt um 7:56 ein und um 14:14 wieder aus. Statt der erwarteten Minusstunden steht in der Anwesenheit eine glatte Null – und der Überstundensaldo bleibt unverändert. Das ist kein Fehler in der Konfiguration, sondern beabsichtigtes Verhalten: Odoo führt im Anwesenheitsmodul kein Arbeitszeitkonto, sondern einen Überstundenzähler, und der kann konstruktionsbedingt nur nach oben.
Warum Odoo keine Minusstunden bildet
Dahinter stecken zwei Mechanismen, die unabhängig voneinander in die gleiche Richtung wirken. Beide muss man kennen, weil man sonst am falschen Ende sucht.
1. Die theoretischen Stunden kennen den Plantag nicht
Das Feld expected_hours auf der Anwesenheit klingt wie „Tagessoll“, ist es aber nicht. Es berechnet die planmäßige Arbeitszeit ausschließlich innerhalb des Zeitfensters zwischen An- und Abmeldung. Wer früher geht, verkleinert damit sein eigenes Soll. Solange keine Überstundenzeile am Tag hängt, fällt das Feld auf den Ist-Wert zurück, und die Differenz ist zwangsläufig null.
| Tag | Gestempelt | Ist | „Theoretisch“ | Überstunden |
|---|---|---|---|---|
| Normaltag | 07:30 – 16:20 | 8,81 h | 8,00 h | +0,81 h |
| Früher gegangen | 07:27 – 16:17 | 7,84 h | 7,84 h | 0,00 h |
| Halber Tag | 07:56 – 14:14 | 5,30 h | 5,30 h | 0,00 h |
In der zweiten und dritten Zeile fehlen 0,16 bzw. 2,70 Stunden gegen den Plan. Im System sind sie nicht vorhanden, weil das Soll auf den Ist-Wert mitgeschrumpft ist.
2. Die Überstundenregeln sind einseitig definiert
Seit Odoo 18 werden Überstunden über Regelwerke gebildet (Modell hr.attendance.overtime.rule). Eine typische Regel lautet „Basis: Menge, 8 Stunden pro Tag“ und liefert damit max(0, Ist − 8). Es gibt keinen Regeltyp, der eine Unterschreitung abbildet – weder mit fixer Stundenzahl noch mit „Soll aus dem Arbeitsvertrag“. Die Toleranzfelder zugunsten von Unternehmen und Mitarbeiter verschieben nur die Schwelle nach oben, sie kippen das Vorzeichen nicht.
Das Feld validated_overtime_hours, auf das viele schauen, ist lediglich die gespeicherte Kopie dieses Regelergebnisses. Und der Saldo am Mitarbeiter (total_overtime) summiert die Überstundenzeilen. Wo keine Zeile entsteht, gibt es auch nichts zu summieren.
Drei Wege, damit umzugehen
Früher gehen wird als Urlaub, Gleitzeitabbau oder unbezahlte Freistellung beantragt. Der von Odoo vorgesehene Weg, ohne jede Entwicklung – verlangt aber Disziplin von allen Beteiligten.
Eine Überstundenzeile mit negativer Dauer reduziert den Saldo sofort. Gut für Einzelfälle und Korrekturen, ungeeignet als Dauerlösung – warum, steht im nächsten Abschnitt.
Eine Automatisierung vergleicht je Mitarbeiter und Arbeitstag Soll gegen Ist und schreibt die Differenz – auch negativ. Der einzige Weg, wenn Minusstunden dauerhaft mitlaufen sollen.
Weg 3 im Detail – und die Falle darin
Die Rechnung selbst ist unspektakulär: Soll aus dem Arbeitszeitplan, abzüglich Feiertage und genehmigter Abwesenheiten, gegen die Summe der Anwesenheiten des Tages. Was die Differenz negativ macht, wird als Überstundenzeile mit negativer Dauer gebucht.
Die eigentliche Hürde liegt woanders, und sie kostet erfahrungsgemäß den ersten Anlauf: Odoo löscht selbst angelegte Überstundenzeilen bei jeder Neuberechnung. Es reicht, dass jemand die Abmeldezeit um sechs Sekunden korrigiert – die Regeln laufen neu, die eigene Zeile ist weg, der Saldo springt zurück. Ein reiner Nachtjob greift also zu kurz.
Funktionierend ist die Kombination aus zwei Bausteinen:
Ausgelöst bei Anmeldung und Abmeldung. Sie läuft nach Odoos eigener Neuberechnung und legt die Minuszeile sofort wieder an. Ohne diesen Baustein ist alles andere Makulatur.
Läuft einmal täglich einige Tage rückwirkend. Fängt ab, was die Regel nicht mitbekommt: gelöschte Anwesenheiten und nachträglich genehmigter Urlaub.
Angenehmer Nebeneffekt, sobald eine Minuszeile am Tag hängt: die „theoretischen Stunden“ zeigen plötzlich das echte Tagessoll. Aus Soll 5,30 / Ist 5,30 / 0,00 wird Soll 6,00 / Ist 5,30 / −0,70. Die Anwesenheitsliste wird damit erstmals selbsterklärend.
Vier Entscheidungen, die vorher zu treffen sind
| Frage | Empfehlung aus der Praxis |
|---|---|
| Ab welcher Abweichung? | Eine Minute Toleranz genügt, um Stempel-Unschärfe herauszufiltern. Ohne jede Toleranz entstehen Zeilen über 36 Sekunden, die niemand lesen will. |
| Flexible Arbeitszeitpläne? | Ausschließen. Bei Kalendern mit flexiblen Stunden – typisch bei Werkstudenten – gibt es kein belastbares Tagessoll, also auch kein sinnvolles Minus. |
| Tage ohne jede Stempelung? | Nicht bewerten. Sonst bekommt jeder noch nicht eingetragene Krankheitstag sofort acht Minusstunden. Der Preis: wer gar nicht stempelt, fällt weiter durchs Raster. |
| Rückwirkend nachrechnen? | Ja, aber erst als Probelauf ohne Schreiben. Die Zahlen sind meist unangenehmer als erwartet und sollten vor der Verbuchung besprochen sein. |
Was das in der Praxis bewegt
Ein Beispiel aus einem Team mit zwölf Personen und knapp vier Monaten Historie: die Nachberechnung fand 136 Tage mit Fehlstunden, zusammen rund 152 Stunden. Zwei Mitarbeiter rutschten von einem positiven Überstundensaldo ins Minus, bei einem weiteren schrumpfte der Saldo von 31 auf 5 Stunden.
Ebenso lehrreich war, was dabei sichtbar wurde: Die größten Einzelposten waren keine Mitarbeiter, die früher gegangen sind, sondern vergessene Stempelungen – Außentermine, Homeoffice-Tage, ein Arzttermin. Ein Zeitkonto ist damit auch ein Datenqualitäts-Werkzeug. Wenn diese Tage als Abwesenheit nachgetragen werden, verschwindet das Minus beim nächsten Lauf von selbst.
Grenzen und Vorsicht
Fazit
Odoo bildet im Standard kein Gleitzeitkonto ab, und keine Einstellung ändert das. Wer nur gelegentlich früher geht, ist mit sauber gebuchten Abwesenheiten am besten bedient. Wer ein echtes Konto mit Plus und Minus braucht, kommt an einer Automatisierung nicht vorbei – die aber überschaubar bleibt, wenn man die Löschmechanik der Überstundenregeln von Anfang an einplant.
Wir richten Odoo ein, passen Module an und bauen Automatisierungen wie die hier beschriebene – von der Zeiterfassung bis zur Buchhaltung. Mehr dazu auf unserer Seite Odoo: ERP und CRM.
Häufige Fragen
Kann man Minusstunden in Odoo einfach in den Einstellungen aktivieren?
Nein. Es gibt weder einen Schalter noch einen Regeltyp für Unterschreitungen. Die Toleranzfelder in den Anwesenheitseinstellungen verschieben nur die Schwelle, ab der Plusstunden zählen.
Warum steht bei früherem Gehen 0,00 statt eines negativen Werts?
Weil die theoretischen Stunden nur das Fenster zwischen An- und Abmeldung bewerten und damit auf den Ist-Wert schrumpfen. Die Regel bildet danach die Differenz, und die ist null.
Verkraftet der Überstundensaldo überhaupt negative Werte?
Ja. Der Saldo am Mitarbeiter summiert die Überstundenzeilen und verarbeitet negative Dauern anstandslos. Auch ein insgesamt negativer Saldo wird korrekt angezeigt.
Bleiben manuell angelegte Minuszeilen dauerhaft erhalten?
Nein. Sobald die Anwesenheit bearbeitet wird, laufen die Überstundenregeln neu und löschen die Zeile. Deshalb braucht es eine Automatisierung, die sie danach wieder anlegt.
Werden Urlaub und Feiertage richtig berücksichtigt?
Wenn die Berechnung sie abzieht, ja. Genehmigte Abwesenheiten und Feiertage liegen in Odoo als Kalenderausnahmen vor und reduzieren das Tagessoll, sodass an einem halben Urlaubstag nur die zweite Tageshälfte bewertet wird.
Hast du eine Frage zu diesem Artikel?
Schreib uns – wir antworten in der Regel innerhalb eines Werktages.
Ähnliche Artikel
Rechnungsfreigabe in Odoo: Vier-Augen-Prinzip für Eingangsrechnungen
Stand: 03.09.2026 · Umgesetzt und im Produktivbetrieb auf Odoo 19 · Einrichtung durch OIT, Preis au…
Lesen →
Goodbye Microsoft Bookings – Hello Odoo: Warum wir zur Odoo-Terminbuchung gewechselt sind
Kurz gesagt: Wir haben bei OIT die Terminbuchung komplett von Microsoft Bookings auf die Odoo-Termi…
Lesen →
Odoo als Kursverwaltung: Kurse anlegen, online verkaufen und Teilnehmer automatisch freischalten
Odoo ist eine der flexibelsten Plattformen, um Kurse, Trainings oder Workshops zu organisieren und …
Lesen →