HOS
HOS Command Center
Every hours-of-service violation across the fleet: found, explained, corrected and documented.
Omnitracs-connected
Samsara-connected
49 CFR Part 395
Every fix on file
HOS
Command Center
Hours-of-Service Compliance
build …
Fleet hours-of-service compliance
Command Center
Loading the fleet picture…
Today — what to do first

Violations by week

last 12 weeks

Open by type

what is driving them

Site scoreboard

ranked by past due, then open · hover a grade to see why · click a site to open its violations
#SiteGradeOpenPast due Oldest (days)ClosedClosed, last 90 days

Repeat drivers

open violations on 2+ different days

Upload today's files

Drop the Omnitracs Violations Detail Report (.xlsx) and the driver logs (.pdf), in any order. Samsara arrives on its own.
⭱
Drag files here or browse
Report .xlsx · driver logs .pdf

Violations

Every open HOS violation on the tracker, from Omnitracs and Samsara. Pick a row to check, chase or close it.
What changed overnight
What the nightly Omnitracs pull added and dropped. Every run, with Undo
Show
HOS violations
ELD exceptions
All
—
Fixable
—
Not fixable
—
Sites
—
Need log
—
Overdue
—
Fell off (history)
All
Fixable
Not fixable
No violations match. Upload a Violations Detail Report to begin.

Driver logs needed

Omnitracs logs the engine hasn’t read yet. Pull the day and the day before, then drop them in Upload.
SiteDriverViolation dateAlso pullViolationsUpload log
Nothing outstanding — every open violation has its driver log.

Live HOS

Who is about to run out of hours, before it becomes a violation. Samsara drivers only Refreshes every minute.

Drivers

Every driver on the tracker, ranked by risk, so each site knows who to coach first. Hover a score to see why.

Tracker

Your workbook, live, in your Excel colors. Pink cells are yours and save as you type; grey cells come from the ELD.
HOS violations
ELD exceptions
Simple
Full workbook
Pink: you fill it in (saves as you type)Grey: from the ELD NEWOPENPENDINGCLOSED Download always gives the full Excel workbook.
Nothing to show.

Ask HOS

Ask about a driver, a violation, a site, a log or a rule in plain English. Answers come from your tracker and live Omnitracs / Samsara logs, with the rule cited.
What do you need to know?
Answers come from your tracker and live logs. Enter to send · Shift+Enter for a new line · Always confirm before editing a log.

Fix Checker

Pick a driver or site to read the real log: can each violation be fixed, and how. Diagnosis Doctor says why one still shows on the ELD report.
Anything the log cannot show — who was really at the wheel and when, a yard move, a later start. A name is enough; the ID is not needed.
A violation only leaves the ELD's report when the record is corrected and the driver accepted it, a recalculation clears it, or it ages out. Fixable is not fixed.
Look up a raw log (driver + date range)
Leave To blank for a single day. A co-driver question usually needs the day before as well — the swap that causes a violation is often on the previous shift.
Who or what set an entry (driver + day)

Reports

Every report, grouped by ELD. Pick one ELD or see them all.

BOTHBoth ELDs from the tracker

OMNIOmnitracs pulled live from Omnitracs · Omnitracs sites

Logout scan — who is not going Off Duty
Drivers who logged out without going Off Duty, and how many of those caused a violation.
How to read it
A missing Off Duty entry is a risk, not a violation — most tidy themselves up when the driver goes off duty the next morning. The count that matters is how many actually produced one, which is matched against your open violations, not assumed. Logging out is not going off duty. When the entry is missed the duty period never closes and the next day’s limits are still measured from the last one — which is how a driver who rested all night picks up a 14-hour violation on his first mile. Same driver every week is coaching; same truck across different drivers is a power harness.
Stuck on duty Drivers whose clock is still running while they are at home.
▸ Site scorecard — accountability
Who’s current and who’s behind. Click a box to sort the sites; hover a grade to see what cost points.
Driver check — hours available & Big Day
Answers both at once: the last 10-hour reset and what’s left (drive / 14-hr window / weekly), and whether the 16-hour Big Day was used in the past 168 hours — with the date it’s available again.
Trip length — how long each run actually takes
Measures every duty tour to the hundredth of an hour (13.78h, not “about 14”), grouped by Route ID from dispatch. Routes averaging over 13 hours are manufacturing 14-hour violations — this is where you fix the schedule instead of coaching the driver.
Violation rollup — first instance only
One row per incident, not per re-trigger. Consecutive days of the same driver + type collapse into a single violation (a 70-hour that re-fires all trip counts once). Flags multi-day incidents and likely stuck-in-drive.
ELD malfunctions — by vehicle & site
Days with a recorded sensor/ELD failure, grouped by vehicle and site — find the trucks that keep breaking. Heavy pull; runs in batches.
Log edits by site — last 7 days
Every log edit in the last 7 days across all fleets, split driver vs. manager/office. Heavy pull — runs in batches. After it loads, ask the Assistant “who made the manager edits at [site]?” for the per-person breakdown.
Edit detail — pick a site
Every edit for that site and period — who edited, the line, when, and whether it was re-certified. Longer periods pull in windows, so 6 months takes a bit.
Driver settings & permissions
Reads each driver’s profile from Omnitracs: HOS rule set, Personal Conveyance, Yard Move and its termination settings, Big Day, Adverse Weather, split OFF/SB pairings, status and ELD exemption. Flags drivers missing a permission that would otherwise clear a violation. Read-only — nothing is changed.
Unassigned Vehicle Activity — find the queue
The tracker only sees a UVA once it has already become a violation on a named driver — 11 of them. The real queue lives in the Omnitracs host. This asks Omnitracs directly: it tries 14 candidate endpoints and sweeps the driver-log feed that already works, in case unassigned activity is arriving there as a pseudo-driver. Read-only — every call is a GET and nothing can be assigned or rejected.
A sweep asks every site in the group, so you can see which ones the activity is coming from.

ELD phantom driving

Auto-recorded DRIVING that the ELD creates after the driver has logged out. Omnitracs confirmed this in writing on 27 Aug 2026 as a known bug: the driver cannot edit it, it pushes him over hours, and it will keep happening until the next mobile firmware release — for which there is no ETA.
Why this has to be found here rather than by the driver
He has logged out and gone home before the block appears. Kris Moore’s 10 August block landed on a day he had already certified at 07:54 the next morning. Omnitracs’ instructions — annotate the false entry, then hand-calculate available hours to the next reset — are impossible unless someone catches it first. That is this page.
Every driver, every day in the window — not just rows that already carry a violation. A block eats the driver’s available hours whether or not it tipped him over, and the ones that have not yet are the drivers about to be caught by it.
Nothing scanned yet. Click Scan the fleet.

SAMSamsara pulled live from Samsara · LFS left out

Hours left right now
Every Samsara driver’s drive, shift, cycle and break time left, from the live clocks the site refreshes every few minutes. Lowest first.
Uncertified logs
Driver-days not certified in Samsara, split into days the driver worked and days with no activity. Up to 14 days at a time; takes about half a minute.
Day length — how long each driver’s day runs
Driving plus on-duty time per day, to the hundredth of an hour. Days of 13 hours or more are where 14-hour violations come from. A 24-hour day means the driver never went Off Duty; those are counted as stuck on duty, not in the averages. Up to 14 days at a time; takes about half a minute.
Driver settings & permissions
Each driver’s ELD settings in Samsara: rule set, yard move, Big Day, adverse weather and ELD exempt. Samsara’s driver feed does not report personal conveyance, so it is not shown. Read-only.
Weekly HOS violations
The weekly Samsara report: LFS out, one per type per 24 hours, at most 4 a day. It lives on the Samsara page under Admin.

Edit status

Every correction sent to a driver. An edit is only a proposal until the driver accepts it and re-certifies; until then the violation stays open.
Nothing scanned yet. Click Scan all open violations.

Annotations

What is written on each log, and by whom. An annotation explains a day; it never closes a violation on its own.
How annotations are judged
Two rules do the work here. 49 CFR 395.30(c)(2) requires an annotation on every change made to a driver’s record, and 395.32(b) on every unidentified segment a driver assumes. The ELD specification sets a 4-character minimum — “ok” and “x” are not annotations. Text the ELD writes by itself (rule-set changes, inspections, “adjust time”) lands in the same column and is not an annotation; it is shown separately below.
Nothing scanned yet. Click Scan all open violations.

What changed

Every run that touched the tracker, with the exact before and after for each row. Undo puts a whole run back and needs the admin code.
All sources
Omnitracs pull
Upload
Samsara sync
Master import
Manual

Samsara

Connect Samsara in four steps. Nothing it reports changes your numbers until step 4 is switched on.

↓Weekly Samsara report

Pulls every Samsara driver's hours violations for the dates you pick — straight from Samsara, not just the sites on the tracker. LFS is taken out, every driver shows a location, and the same type of violation for the same driver inside 24 hours counts once — so a driver can have at most 4 a day (11-hour, 14-hour, 30-minute break, 70-hour). Nothing on the tracker changes.
Starts on the last 7 days. Up to 31 days at a time; dates are each driver's own local day.

↓Pull a Samsara log

Pick a driver and a day. The log comes straight from Samsara, and any open violation for that day gets a fresh 1-pager. Repull violations asks Samsara for its violations now instead of waiting for the hourly pull.

Alerts

Data feeds, failed jobs and anything that needs a person. Green means there is nothing to do.

Data feeds

FYI & dismissed
Scheduled jobs — last 26 hours
JobRunsFailuresLast runStatus

Email

Who gets the daily reminder for each site, and a preview of exactly what would go out.
Checking whether emails are in dry-run… “Send center emails” asks you to confirm and for the admin code either way.
Centers
SiteManagerEmailCCActive

Users

Who can sign in. New accounts wait here until an admin approves them.

Settings

How the tracker behaves for you and your sites. Each card saves on its own.
Red number badges
A badge counts only what is new since you last opened that tab. Opening the tab clears it.
This is me
Used as the From on Outlook drafts the Fix Checker builds, so the draft opens as you. Nothing is emailed from here.
My sites
Tick the sites you are responsible for. Reports and lists default to these — the rest stay available but out of the way.
Due dates & escalation
How long a site gets before a violation is overdue. The clock starts the day the site is emailed.
AI engine
Which model answers in Ask HOS. Fix Check does not use a model at all — its verdicts are deterministic code, so this setting does not affect them.
Technical details
The paid options need the ANTHROPIC_API_KEY secret on the worker. The model comes from the CHAT_MODEL variable — claude-opus-5-5 for the sharpest answers, claude-sonnet-5-5 for a cheaper one.
Samsara ELD
Connection, site matching, preview and the on/off switch now live on their own Samsara page under Admin.
Use HOS inside your Claude subscription
Adds this site to Claude (claude.ai, the Claude desktop app and mobile) as a custom connector, so you can ask HOS questions from your own Claude plan with the same data and tools as Ask HOS. Read-only. In Claude: Settings → Connectors → Add custom connector, paste the link, then turn it on in a chat. Creating a new link turns off the old one.
Backup & restore
A snapshot of every violation and all your work. Take one before any big change.
Unassigned Vehicle Activity
Load the UnassignedVehicleActivity CSV export. The Fix Checker uses it to tell a driver's own driving from motion a truck booked to him because its association never released — the Kris Moore case. Re-loading the same export is safe; rows update in place.
⇪
Drop the UVA .csv or browse
Import an old tracker
One-time migration from a previous Excel tracker.

Import your existing tracker

Brings your historical open items in, so fall-off detection has something to compare against.
This previews before it writes. Nothing is saved until you review the dry run and press Commit. Rows whose violation type doesn't match Omnitracs' wording are flagged — if they were imported as report-sourced, the next report could mistake them for resolved violations and drop them.
⇪
Drop your tracker .xlsx or browse
Diagnostics — for troubleshooting, not day-to-day use
These check the plumbing: which HOS settings Omnitracs will return, which writers work on this account, and how the same sheet reads from each writer. Nothing here changes a violation or a one-pager.
Walks the Omnitracs service surface read-only and reports which entity carries Yard Move termination, the geo-fence rules and Adverse Weather.
Renders one real violation written by the engine alone and by Kimi, side by side.