Reference Manual
How to run random selections, manage your driver roster, and read your results in DTSMS Online. Written for company administrators and for drivers who want to understand how a selection works.
If you run selections for multiple companies under one login, use the company picker at the top of your account. Switching companies changes which roster, selections, and results you're viewing — it doesn't log you out or change your billing.
From your company dashboard, open Roster and click Add Driver. Enter a name and a unique driver ID. If your company uses Social Security Numbers as the driver identifier, you can enter an SSN directly and the system will treat it as the ID.
For larger rosters, use Import CSV instead of entering drivers by hand.
If your file has a Department column (the DOT agency or internal classification a driver belongs to), map it too — this feeds directly into the agency scope options on Running a selection. A Department name that doesn't match an existing entry in the department directory is not auto-created — it's left unassigned and reported in the import summary as a name to review, so a typo doesn't silently split your roster across two departments.
Click Deactivate on any driver row to remove them from future selections. If that driver has a Verified Positive or Verified Negative result already on file, the system asks you to confirm they've actually left the company before the deactivation goes through — an active driver on your roster shouldn't be marked Inactive for any other reason, since it affects your eligible pool for future draws.
A pool (also called a consortium) is a named group of companies whose drivers are combined into one shared roster for selection purposes. This is the standard setup for owner-operators and small fleets who test together to meet DOT random testing rate requirements.
You can belong to more than one pool, and unchecking a company removes it from that pool at any time without affecting its individual roster. Use Delete pool to remove the grouping entirely — the companies themselves are never deleted, only the pool that grouped them.
A pooled selection notifies each member company's own DER separately — no company ever sees another member's drivers, even though the draw pulls from the combined roster. See DER notifications. You can also put a pool on an automatic monthly or quarterly schedule instead of running it by hand each time — see Recurring selections.
Go to Run Selection for a single company, or Run Pool Selection to draw across every company in a pool at once. If your company has departments/agencies set up, choose which one to run against (or All DOT agencies combined, or DOT and Non-DOT together) — otherwise it runs against your whole active roster.
Drug and Alcohol each get their own rate, set the same way: either a fixed number of people or a percentage of the pool. DOT-regulated agencies use a fixed federal rate you can't change — DTSMS Online shows it, but there's nothing to configure. If your scope includes Non-DOT drivers, only that portion is yours to set.
You also choose a Number of alternates and a Selection mode: Separate draws (drug and alcohol are drawn independently, so different people can land in each) or Same person, both (anyone drawn is tested for both).
DTSMS Online draws names using a cryptographically secure random process, not a simple shuffle — the same standard used for lottery-grade randomness. Every eligible driver in the pool at the time of the draw has an equal chance of selection, and the eligible list is saved as a snapshot so the draw can be reconstructed for an audit later.
Don't want to run this manually every period? See Recurring selections to set a pool or company on an automatic monthly or quarterly cadence.
Each selection produces a results list showing which drivers were chosen, their driver ID, and the company or pool the draw came from. Each selection has a plain sequential ID (shown as #1, #2, and so on) — it's not formatted to match any legacy DTSMS desktop numbering.
Export any selection to Excel from the results page. The export includes a full multi-sheet workbook — selected drivers, the eligible pool at draw time, and a summary sheet — for your records or an auditor.
If you've been notified that you were selected, it means your name was drawn as part of your employer's random testing program, not because of anything specific about you. Selection is random by design — every eligible driver has the same chance each time. Your employer will tell you where and when to report for testing.
| Term | What it means |
|---|---|
| Eligible pool | Everyone who could have been drawn for that specific selection |
| Selection ID | The unique record number for one draw event, used for audit tracking |
| Testing category | Whether the draw was for drug testing, alcohol testing, or both |
Once a selection has been drawn, each selected driver's actual test outcome gets recorded separately, on the selection's detail page. This doesn't change who was selected — that record stays locked, as described in Running a selection — it adds an outcome to a driver already on that list.
A driver who already has a result shows Edit instead of Enter Result. Opening Edit lets you correct an entry; it doesn't create a duplicate record.
In most selections, the majority of drivers test negative and only a few need individual attention. Rather than clicking through everyone, use Mark Remaining as Negative, which sits under each Drug or Alcohol list on a non-pooled selection. If everyone in that category already has a result logged, clicking it just tells you there's nothing pending — it won't overwrite anything.
DTSMS Online bills monthly per driver using graduated tiers — drivers past each threshold are billed at a lower rate, not your whole count at the top tier's rate.
| Drivers | Rate |
|---|---|
| 1–25 | $5.00 / driver / month |
| 26–100 | $4.00 / driver / month |
| 101+ | $3.00 / driver / month |
You're redirected back to a confirmation page. Your plan doesn't necessarily flip to Paid the instant checkout finishes — that switch happens when Stripe's webhook confirms the payment, normally near-instant but occasionally a few seconds behind the redirect. If the page still shows "Processing," refresh it or check back from Billing in a moment; nothing's wrong, it just hasn't caught up yet.
Once you're on the paid plan, the Billing page itself doesn't have a control to change your driver count or cancel — that currently goes through the link in your Stripe receipt email, or by contacting support directly.
| Issue | What to try |
|---|---|
| Verification email never arrives | Check spam, then use "resend verification" on the login page rather than creating a second account |
| CSV import skips rows | Check the import summary for flagged rows — usually a missing company name or an unrecognized state value |
| Pool results show blank company names | Refresh the results page; if it persists, contact support with the selection ID |
| Can't switch companies | Confirm you're logged into the account the company was added under, not a separate login |
| "A screening result is required" when saving an alcohol result | Alcohol results require a screening value on every save, and a confirmation value when the result is Positive — this is required, not optional, and the save is blocked until it's filled in |
| "A specimen ID is required" when saving a result | Every result needs the number from the physical CCF, negative results included — see Recording test outcomes |
| "Specimen ID is already on file for [driver]" | That exact specimen ID is already attached to a different driver's result under your account — double-check both entries against the physical CCF for a data-entry mistake |
| A staff login can't see a page or button I expect | Their role doesn't have that permission granted — go to Companies → Roles and check the box for that page/action, or confirm they have a role assigned at all under Companies → Staff |
| DER never received a notification email | Confirm a DER email is saved under Company → Manage Companies — it only applies to selections run after it was saved, see DER notifications |
| DER's confirmation link says "not valid" | The 14-day link has expired — have the DER request a fresh one at resend-der-link.php, see DER notifications |
Support runs through an in-app ticket system rather than email — every response you get back, and every actual fix, is logged directly on the ticket, so you can see the full timeline yourself rather than taking someone's word that it was handled.
Go to Support to see every ticket you've opened for your current company, newest first, with its status and how long it took to get a first response. Click into any ticket to see its full timeline:
| Status | What it means |
|---|---|
| Open | Submitted, not yet reviewed |
| Acknowledged | Reviewed — someone is actively looking into it |
| Resolved | Fixed, with the actual change that fixed it linked directly on the ticket |
| Closed | Wrapped up — no further action expected on either side |
You can add a follow-up comment to your own ticket at any time from its detail page, regardless of its status — no need to open a second ticket for the same issue.
The MIS report is the DOT MIS Data Collection Form, built from your company's actual recorded results rather than filled in by hand. It aggregates a full calendar year of test outcomes into the exact structure the federal form expects — Section III for drug testing, Section IV for alcohol testing — broken out by DOT agency.
Every row on this report is Random testing — that's the only test type DTSMS Online currently produces, since it's built around random selection. Pre-Employment, Post-Accident, Reasonable Suspicion, Return-to-Duty, and Follow-Up rows on the official form stay blank; the system doesn't track those categories.
If your company runs Non-DOT testing (internal company policy testing that isn't part of a federal program), those results are shown in their own section at the bottom of the report, clearly separated from the DOT compliance numbers above it — Non-DOT results are never mixed into a DOT agency's totals.
Staff logins let other people work in DTSMS Online without sharing your own account credentials. Each staff login is scoped to exactly one company — someone added as staff for one company can never see, switch to, or affect any of your other companies, even if your account manages several. What that person can actually do inside their one company is controlled by a role you assign them.
They log in at the same login page you use, with their own email and password — DTSMS Online recognizes automatically whether a login belongs to an account owner or a staff member.
On Companies → Staff, click Deactivate next to their name. This takes effect immediately — if they're logged in at that moment, their very next click logs them out completely, and they can't log back in until reactivated from the same page.
The audit log shows every add, edit, status change, and selection-lock event for a company's drivers, in plain language rather than raw data — what changed, when, and who did it. It exists so "who deactivated this driver, and why" has a real answer inside the app, not something that requires asking your developer to look at the database.
Each row shows the driver, an action badge — Driver Added, Details Updated, Marked Inactive, Marked Active, or Sealed (Selection) — a short description of the actual change in the Details column, and who did it: either a specific staff member's name, or Account owner if you made the change yourself, logged in directly.
Entries are shown 30 at a time, most recent first, with Prev/Next controls at the bottom. There's currently no search or filter on this page — to find a specific driver's history, page through, or ask your developer to look it up directly if the list is long.
The audit log is scoped to whichever company you're currently viewing — it never shows another company's history, even if your account manages several. For a staff login, access to this page follows the same permission as the roster page itself: if their role can manage drivers for this company, they can see this company's audit log too.
Once a selection runs, results never go to whoever's logged in and clicked "Run Selection" — they go to each company's own Designated Employer Representative (DER), the person your DOT program designates to actually pull a driver for testing. This keeps the person triggering a draw from being the same person who learns who was picked, which is the standard your consortium's TPA arrangement is expected to meet.
Go to Company → Manage Companies. Each company has its own DER Name, DER Email, and DER Phone fields — enter them and click Save DER. This has to be done before a selection runs; setting the DER contact afterward does not retroactively notify anyone for a draw that already happened.
selection_der_notifications log for a skipped_no_der entry against that selection.
Each DER gets one email, scoped to their company only — even for a pooled/consortium selection spanning several companies, a DER only ever sees their own company's drivers, never the rest of the pool. The email lists who was selected for drug testing, who for alcohol, and who's an alternate, along with the same instruction every time: notify each selected employee and send them to testing only when they're already on-site, never in advance.
Every DER email includes a link the DER can open to view the same results on a simple web page, without needing to log in to DTSMS Online at all — DERs are not account holders. This link is unique to that one notification and expires automatically 14 days after it's sent.
The DER can request a fresh one themselves at oshaland.com/resend-der-link.php by entering the same email their company has on file. If it matches, a new link is emailed immediately with a fresh 14-day window. This response is the same either way — "if that email is on file, check your inbox" — whether or not it actually matched anything, so the page never reveals which DER emails are valid.
| Term | What it means |
|---|---|
| DER | Designated Employer Representative — the person authorized to pull a driver for testing on behalf of the company |
| Confirmation link | The one-time-issued, expiring link in a DER's email that shows their company's results without requiring login |
| Skipped, no DER | A selection ran, but no notification could be sent because that company has no DER email on file yet |
Rather than remembering to log in and run a selection every month or quarter, a company or pool can be put on a recurring schedule that runs automatically in the background.
The schedule runs itself from that point on — each run advances automatically to the next month or quarter, and produces the exact same kind of selection, results, and DER notification as running one manually. There's no difference in the record it leaves behind; a scheduled draw is audited the same way a manual one is.
A schedule can fail to run — for example, if a pool temporarily has no active drivers. This doesn't silently disappear: it's logged, and skips that period rather than crashing every other company's scheduled selections that same day. If you expected a draw and don't see one, contact support with the pool or company name and the expected date so it can be checked against the schedule's run history.
Federal Drug & Alcohol Clearinghouse rules require a pre-employment query before a driver first performs safety-sensitive duty, and a limited annual query for every driver at least once every 12 months. The Query Schedule keeps track of those due dates for your active roster and stores your records of what's been done — it does not run the queries themselves.
Go to Drivers → Query Schedule. The three tiles at the top summarize your active roster: how many drivers are Overdue, how many are Due within 30 days, and the total number of Active drivers tracked.
Each row shows a driver's CDL number, their last logged query date, when their next one is due, and a status badge. A driver with nothing logged yet shows No date on file instead of a due date — that's expected for a driver who hasn't had a query recorded here, not an error.
| Query type | When to use it | Effect on Next Due |
|---|---|---|
| Pre-employment | Before a driver first performs safety-sensitive duty for your company | Sets Next Due to one year out — this starts the driver's annual cycle |
| Annual | The recurring limited query required at least once every 12 months for every driver | Sets Next Due to one year from the date completed |
| Follow-on (post-notification) | Tied to a driver's return-to-duty / SAP follow-up testing plan, not a fixed annual cycle | Logs the completion but leaves Next Due unchanged |
Pick the query type carefully — Pre-employment and Annual both push Next Due out a year, so logging the wrong one will still show a due date, just possibly the wrong one for that driver's actual cycle. Follow-on is the one exception: it records the query without touching the driver's existing due date.
Query Schedule is scoped to whichever company you're currently viewing, same as the rest of the Drivers section — it never shows another company's due dates, even if your account manages several.