Robinsons DTR · Schedule Codes

Schedule Code Finder

Enter a date range and shift time — get the correct TPS‑code and the day it's actually tagged to, without the manual lookup.

672 codes indexed · from ROBINSONS SCHEDULE CODE.xls

Import a roster or list

Upload an "ACTUAL SCHEDULE" file — one row per guard, one column per date — and this finds the consecutive‑day blocks itself. Or upload a flat list (Access ID, Date Started, Date End, Time Schedule — see the Schedule Input Template) if the blocks are already worked out. Either way, it fills in the batch below.

Also reads: an ACTUAL‑TIME‑LOGS workbook (one sheet per guard, a "NAME OF GUARD:" line, DATE/SCHEDULE columns) and a Schedule VS Actual DTR Report export (one row per guard per day, with its own Access ID and Schedule Start/End Date/Time columns). Both are detected automatically — just drop the file in.

Client type for this import

New entry

Client type
 
 

If the shift ends earlier than it starts, it's treated as crossing midnight into the next day.

Rules & settings
  1. Night differential window — any shift touching this window (default 10:00 PM–6:00 AM) is tagged as a night‑differential shift instead of a day shift.
  2. Day‑shift adjustment — the tag day is the basis date +1 day. Example: a Monday 6 AM–2 PM shift is filed under Tuesday's code.
  3. Night‑differential adjustment — the tag day is the basis date +2 days. Example: a Monday 6 PM–2 AM shift (crossing into the 10 PM–2 AM window) is filed under Wednesday's code.
  4. Block basis date — for a run of consecutive days on the identical shift, the whole block uses one basis date rather than a date per day.
  5. Max block length — a run longer than this is chopped into consecutive pieces of at most this many days before a code is picked for each piece. Example: 0900H–2100H for Aug 1–15 with a 5‑day cap becomes three blocks — 1–5, 6–10, 11–15 — each coded off its own last day.
Found while checking your sample file: in Schedule Template Upload.csv, the 7/1–7/3/2026 block (Wed–Thu–Fri, 9:00 AM start) is coded TPS0763 (Thursday). The "last day" rule used here would instead give TPS0765 (Saturday) — same as the very similar 7/6–7/10 block a few rows down, which does match. Every other row in that file (6 of 7) agrees with "last day." Worth a quick check with whoever filed that one row — see the flagged row in the batch table below.

RL schedule codes

The RL table only covers the shifts one store has reported so far — a start time it hasn't seen yet will come back unmatched until you add it. Upload an updated RL Schedule Codes.xlsx any time to replace it; sheets named with "ZERO" and "BREAK" load as the zero‑breaktime table, everything else loads as the standard table.

How a code gets picked

  1. Take the basis date — the end date of the range (or the single date, if it's one day).
  2. Check whether the shift touches 10 PM–6 AM. If yes, it's night differential; if no, it's a day shift.
  3. Shift the basis date forward — +1 day for a day shift, +2 days for night differential — to get the tag day.
  4. Round the shift's start time to the nearest 15 minutes.
  5. Look up (rounded start time, tag day) in the 672‑row table pulled from the SSP sheet of ROBINSONS SCHEDULE CODE.xls — that's your code.

The table only ever needs the start time — every code represents a fixed 12‑hour window (start → start+12h), so the end time only matters for step 2, the night‑differential check.

Always glance at the weekday shown next to each date you type — that's your counter‑check against the roster before you trust the code.

Batch

Access ID Start End Shift Client Type Tag day Code
Browse the full code table

All 672 entries from the SSP sheet — every 15‑minute start time, every day, in case you want to verify a code by hand.

CodeStartEndDay