intermediate
fahrer-score
safe-ride-check
reaktionstest

Reaktionszeit-Safe-Ride-Check

Wie der spatabendliche Reaktionstest funktioniert - Auslosefenster, Bestehensgrenzen, Cooldown und die Datenschutz-Rahmung.

Levy Fleets TeamMay 18, 20267 min read

Reaktionszeit-Safe-Ride-Check

Der Safe Ride Check ist ein kurzer Reaktionszeit-Test, den der Fahrer vor dem Unlock wahrend eines konfigurierbaren Spatfensters absolviert. Er ist darauf ausgelegt, sichere Entscheidungen zu fordern - es ist kein Nuchternheits- oder DUI-Test.

Datenschutz-Rahmung - wichtig

Dies ist ein "Safe Ride Check", kein medizinischer oder rechtlicher Beeintrachtigungstest. Der In-App-Text lautet:

"Dies ist kein medizinischer oder rechtlicher Test der Beeintrachtigung. Wir verwenden ihn, um sichere Entscheidungen zu fordern. Wenn Sie sich nicht sicher fuhlen zu fahren, wahlen Sie bitte einen anderen Verkehrstrager."

Wir teilen Ergebnisse niemals mit Strafverfolgung ausser per Haftbefehl.

Was der Fahrer tut

  1. Spatabendlicher Unlock-Versuch (Standard-Fenster: 22:00 bis 04:00 Ortszeit).
  2. Die App startet ein 5-Runden-Tap-the-Dot-Minispiel.
  3. Jede Runde zeichnet eine Reaktionszeit in Millisekunden auf, oder einen "Miss" bei Timeout (3s).
  4. Nach 5 Runden berechnet die App den Median und die Miss-Anzahl.
  5. Bestehen: Median < 450ms, weniger als 2 Misses.
  6. Nicht bestehen: 30-Minuten-Unlock-Cooldown plus "Sind Sie sicher zu fahren?" mit "Freund anrufen"-CTA.

Bestehens-Schwellenwerte

EinstellungStandardWirkung
reaction_median_threshold_ms450Maximale Median-Reaktionszeit
reaction_max_misses1Maximale Misses
reaction_test_round_count5Anzahl Runden
reaction_test_timeout_ms3000Pro-Runden-Timeout

Alle pro Subkonto editierbar unter Einstellungen > Safe Ride Check.

Auslosefenster

EinstellungStandardWirkung
reaction_window_start_local22:00Fensterbeginn
reaction_window_end_local04:00Fensterende (umschlagt Mitternacht)
reaction_window_enabledtrueAuf false setzen, um zu deaktivieren

Der Mitternachts-Umschlag wird in isWithinNightWindow() in src/lib/rider-score/reaction-test.ts behandelt und ist unit-getestet.

Was bei Nichtbestehen passiert

Ein einzelner Fail:

  • 30-Minuten-Unlock-Cooldown.
  • Cooldown-UI zeigt verbleibende Zeit und "Erneut versuchen".
  • Keine Score-Sanktion.
  • Kein score_audit_log-Eintrag.

Drei Fails in 24 Stunden offnen eine Schritt-6-Zeit-Sperre in der Interventionsleiter.

Was bei Bestehen passiert

  • Fahrer entsperrt normal.
  • reaction_tests-Zeile mit passed=true.
  • Keine Auswirkung auf Score oder Preis.

Cooldown-Logik

Der evaluateAttempts()-Kernel ist unit-getestet.

reaction_tests row:
  median_reaction_ms  - Median aller Runden
  miss_count          - Misses (Timeout &gt;= 3s)
  passed              - bool aus Bestehenskriterien
  trigger             - 'nighttime' | 'appeal' | 'random'
  cooldown_until      - jetzt + 30 Min bei Fail

Ein Fahrer mit cooldown_until in der Zukunft wird vom Tor blockiert (reason='reaction_cooldown').

Wann der Test sonst ausgelost wird

  • Nacht-Trigger (Standard): jeder Unlock-Versuch im Nachtfenster.
  • Einspruchs-Trigger (optional): Betreiber kann Safe-Ride-Check vor Auflosung einer Schritt-6-Einspruchs erfordern.
  • Zufalls-Trigger (optional): zufallige Untermenge aller Unlocks. Standard 0%.

Datenschutz und was wir nicht tun

  • Wir protokollieren nicht, mit wem der Fahrer gesprochen hat.
  • Wir nehmen den Bildschirm, die Kamera oder das Mikrofon nicht auf.
  • Wir teilen Ergebnisse nicht mit Versicherern in identifizierbarer Form.
  • Wir teilen Ergebnisse nicht mit Strafverfolgung ausser per Haftbefehl.

Betreiber-Steuerung

  • Einstellungen > Safe Ride Check zum Konfigurieren.
  • Prufspur gefiltert nach action='reaction_test_fail_lockout'.
  • Fahrer-Profil > Reaktionstests zeigt die letzten 30 Tage.

ADA und Barrierefreiheit

Reaktionstests konnen Fahrer mit bestimmten Behinderungen benachteiligen. Bei Selbstoffenlegung sollte der Betreiber eine kontoebene Ausnahme unter Fahrer-Profil > Ausnahmen konfigurieren.

API-Oberflache

EndpunktZweck
POST /api/mobile/rider/reaction-testVersuche einreichen
GET /api/mobile/rider/reaction-testIst gerade einer erforderlich?

Weiter

Siehe Interventionsleiter dafur, wie 3 Fails in 24h zu einer Schritt-6-Sperre werden.