Das ehrliche Fahrtenbuch

Wie Odotur mit Änderungen umgeht

Für Fahrer, Arbeitgeber, Steuerberatung und Betriebsprüfung.

Eine aufgezeichnete Fahrt ist eine Tatsache. Du ergänzt sie, du überschreibst sie nie. Jede Änderung ist ein neuer, datierter Eintrag im Protokoll, der Verlauf bleibt sichtbar, und er wird mit deinem Export gedruckt.

Kurz gesagt

  • Was das GPS gemessen hat (Zeiten, Start- und Endpunkt, Strecke), wird nie bearbeitet. Eine falsche Strecke bekommt eine eigene Korrekturzeile.
  • Jede gespeicherte Bearbeitung behält den alten Wert, den neuen Wert und den Zeitpunkt.
  • Nach Ablauf der Korrekturfrist braucht eine Bearbeitung zusätzlich einen Grund.
  • Eine Fahrt zu löschen storniert sie: Sie bleibt durchgestrichen und mit dem Grund in Fahrtenbuch und Export.
  • Lücken (GPS verloren, App vom Handy beendet) werden protokolliert und gedruckt, nicht versteckt.
  • Das Protokoll prüft sich beim Start und vor jedem Export selbst, und der Export druckt das Ergebnis.

Was passiert, wenn du etwas änderst

Du tust dasOdotur protokolliertIn deinem Export
Einen Zweck, eine Kategorie, eine Adresse oder ein anderes Feld ausfüllen oder ändernEine Revision: Feld, alter Wert, neuer Wert, Zeitpunkt. Innerhalb der Korrekturfrist wird kein Grund verlangt; danach ist ein Grund Pflicht (Vergessen, Tippfehler, Falscher Ort oder Sonstiges, dazu optional ein Text).Der aktuelle Wert in der Zeile und jede Revision nach dem ersten Speichern im Revisionsanhang.
Die km einer GPS-Fahrt korrigierenEine eigene Korrektur (+ oder - km, mit Grund). Die gemessene Strecke bleibt, wie sie war.Die Korrektur neben der Fahrt und im Korrekturanhang. Die Summen enthalten sie.
Eine Fahrt löschenEine Stornierung mit Grund. Sie lässt sich später wiederherstellen, und auch das wird protokolliert.Durchgestrichen, mit dem Grund. Stornierte Fahrten zählen nie in Summen oder Zählern.
Eine vergessene Fahrt nachtragenEine manuelle Fahrt, markiert mit „eingetragen am“ und dem Datum, an dem du sie eingegeben hast.Als Manuell markiert. Mehr als 7 Tage nach der Fahrt eingetragen: „spätere Eintragung“.
Eine mögliche Fahrt eintragenEine manuelle Fahrt aus dem Vorschlag. Wenn du ihre Zeiten anpasst, bleibt der ursprüngliche Vorschlag sichtbar.Als mögliche Fahrt markiert.
Nach einem zu frühen Stopp fortsetzenEine Verknüpfung der beiden Teile.Eine Fahrt mit einer Pausenzeile; die km werden addiert.
Nichts: Das GPS ist ausgefallen oder das Handy hat die App beendetEine Lücke mit ihrer Ursache. Nach einer Unterbrechung endet die Fahrt an der zuletzt empfangenen Position; es wird weder eine Zeit noch eine Ursache erfunden.Im Lückenanhang. Geschätzte km sind als geschätzt gekennzeichnet.
Einen Km-Stand eintragenDie Ablesung. Schließt sie ein Intervall ab, einen Abgleich mit der Differenz zwischen Km-Stand und deinen erfassten km.Niederlande: eine Korrekturfahrt, anteilig aufgeteilt. Andere Länder: ein Abweichungsvermerk, ohne km zuzurechnen. Ein späterer Abgleich desselben Intervalls ersetzt den früheren; beide werden gedruckt.

Korrekturfrist: 7 Tage nach Ende der Fahrt, 2 Tage beim österreichischen Profil. Die 2 Tage sind eine Produktentscheidung für „zeitnah“, keine gesetzliche Schonfrist. Bearbeitungen innerhalb der Frist werden ebenfalls protokolliert; sie brauchen nur keinen Grund.

Ein Formular, das du noch nicht gespeichert hast, ist kein Eintrag. Jedes Speichern ist einer, auch wenn du ein leeres Feld zum ersten Mal ausfüllst.

  1. #1041GPS-Fahrt aufgezeichnet 08:12-08:41, 23,4 km gemessen3. März 08:41prev 52ab… → 7c1e…
  2. #1042Revision Kategorie: leer → Betrieblich3. März 18:02prev 7c1e… → 0d94…
  3. #1043Revision Zweck: leer → Kundenbesuch, Vejle3. März 18:02prev 0d94… → e61f…
  4. #1067Korrektur +1,2 km, Grund: GPS-Fehler12. März 09:15prev a3f9… → 4b20…
  5. #1088Stornierung einer anderen Fahrt, Grund: Duplikat14. März 17:40prev 4b20… → 91cc…
Darstellung von Protokolleinträgen, Hashes gekürzt. Jeder Eintrag trägt den Hash des vorherigen. Die Einträge #1044 bis #1066 gehören zu anderen Fahrten.

Wo du es siehst

  • In der App: Jede Fahrt hat einen Verlauf und eine kleine Quellenzeile: „GPS · aufgezeichnet 08:41“, „Manuell · eingetragen 12. März“ oder „Nachtrag“.
  • Im PDF- und CSV-Export: die Fahrtzeilen, danach Anhänge für Korrekturen, Stornierungen, Lücken, Abgleiche und Abweichungsvermerke sowie der Revisionsanhang. Revisionen sind mit dem Stand zum Zeitpunkt des Exports enthalten: Eine spätere Änderung an einer alten Fahrt erscheint in späteren Exporten.
  • Auf jeder PDF-Seite: Seite n von N, der Stand-Zeitpunkt und der Kopf-Hash des Protokolls. Eine Legende erklärt abgelesene, abgeleitete und unbekannte Km-Stände, die Quellen GPS, Manuell und Mögliche Fahrt sowie geschätzte km.

Für Arbeitgeber, Steuerberatung und Betriebsprüfung

Das Protokoll ist eine Liste von Ereignissen, die nur ergänzt wird und in einer Datenbank auf dem Handy der Nutzerin oder des Nutzers liegt. Die Datenbank selbst verweigert es, einen Eintrag zu ändern oder zu entfernen, und ein automatisierter Test durchsucht den Code der App nach jeder Anweisung, die das tun würde. Einträge verschwinden nur durch Alles löschen und durch das Wiederherstellen eines Backups, die beide das ganze Protokoll ersetzen (siehe Ehrliche Grenzen). Was du als „Fahrt“ siehst, wird aus den Ereignissen neu aufgebaut.

  • Zwei Zeiten pro Eintrag. Jeder Eintrag hat occurred_at (wann die Tatsache eintrat) und recorded_at (wann sie geschrieben wurde). Beide werden gedruckt: Eine Korrektur für März, eingetragen im April, zeigt beide Daten.
  • Einheiten. Strecken werden als ganze Meter gespeichert, Zeiten als Millisekunden in UTC mit der Zeitzone bei der Erfassung, Geldbeträge in der kleinsten Währungseinheit. Gerundet wird nur für die Anzeige (0,1 km) und bei Summen, nie bei gespeicherten Tatsachen.
  • Die Hash-Kette. Jeder Eintrag speichert hash = SHA-256(prev_hash ‖ canonical JSON) aus Sequenznummer, Typ, Entität, Entitäts-ID, Nutzdaten, occurred_at und recorded_at. prev_hash ist der Hash des vorherigen Eintrags als 64 Hex-Zeichen (64 Nullen beim ersten Eintrag). Das kanonische JSON folgt RFC 8785 (JSON Canonicalization Scheme), mit Text in Unicode-NFC-Normalisierung. Wird ein gespeicherter Eintrag geändert, ändert sich sein Hash, und jede Verknüpfung danach bricht.
  • Die Prüfung. Die App berechnet die Kette beim Start im Hintergrund neu und noch einmal vor jedem Export. Bei einer Abweichung erscheint „Logprüfung fehlgeschlagen bei Eintrag N“, und der Export druckt den Bruch. Exporte drucken den Kopf-Hash, und die CSV listet Sequenznummer und Hash jedes Eintrags.
  • Km-Stände werden als abgelesen (von der Nutzerin oder dem Nutzer eingegeben), abgeleitet (zwischen zwei eingegebenen Ablesungen berechnet, nur wenn dazwischen keine Lücke und keine mögliche Fahrt offen ist) oder unbekannt gedruckt. Strenge Profile zeigen für jeden abgeleiteten Wert eine Warnung in der Checkliste. Ob ein abgeleiteter Wert akzeptabel ist, entscheidet, wer das Fahrtenbuch liest.
  • Sätze tragen eine Version und eine Regel-ID, die in jedem Bericht gedruckt werden. Eine aktualisierte Satztabelle ändert nie still einen Export, den du schon erstellt hast.
  • Deutschland. Das Layout Fahrtenbuch (DE) ist eine geschlossene, chronologische Form für das ganze Jahr, mit dem Änderungsverlauf in derselben Datei. Ein Zweck oder Geschäftspartner, der mehr als 7 Kalendertage nach einer Fahrt hinzugefügt wird, wird als „spätere Eintragung“ gedruckt, außer Datum, Km-Stand und Ziel wurden bei Fahrtende erfasst. Ob das Fahrtenbuch für die Fahrtenbuchmethode genügt, entscheiden die Nutzerin oder der Nutzer und ihre Steuerberatung.

Ehrliche Grenzen

  • Die Kette zeigt Änderungen, die über die App gemacht wurden, und erkennt Bearbeitungen, die sie brechen. Wer vollen Zugriff auf das Gerät hat, könnte die ganze Kette von Anfang bis Ende neu schreiben, und die App kann das nicht verhindern. Das Protokoll belegt, wie es geführt wurde, nicht, dass niemand es hätte ändern können.
  • Odotur ist ein unabhängiges Werkzeug. Es ist mit keiner Steuerbehörde verbunden.
  • Alles löschen (Einstellungen, bestätigt durch Eingabe von LÖSCHEN) entfernt das ganze Protokoll vom Handy, samt Verlauf. Es sind deine Daten und deine Entscheidung. Bewahre die Exporte oder Backups auf, die dein Land von dir verlangt.
  • Das Wiederherstellen eines Backups ersetzt das Protokoll auf dem Handy durch das aus dem Backup, und die wiederhergestellte Kette wird geprüft.
  • GPS-Strecken können falsch sein, und ein Handy kann eine App während einer Fahrt beenden. Deshalb werden Lücken, Schätzungen und Korrekturen protokolliert statt versteckt.

Fragen zum Format des Protokolls: odotur@benbasha.com.