The unit ends on the current site's contract as of this date and starts at the destination the next day — showing as a delete on the old site and an add on the new one. Its billing link is cleared so you can re-link it at the destination.
Check each driver's daily hours. Sign off when they're right, or dispute with a note so billing can fix them.
For your self-invoicing sites: review the hours, fill in any manual line-item values, add one-off custom charges, then submit for billing approval. Amounts shown are preliminary — your billing team confirms the final total when they approve.
Keep each unit's status current — active, out of commission, in maintenance. Billing sees your updates; it does not change what's billed, it's information for the billing office.
Invite people from the Supabase dashboard (Authentication → Users → Invite). They appear here after first sign-in as pending — assign a role, and for managers tick their sites. Roles: admin = everything (Ops review + Finance/billing) · manager = verify + enter items for assigned sites · pending = read-only.
Turn a site On to let its assigned managers see and update that site's equipment status. Off (default) hides equipment from managers entirely. Roll out gradually as you onboard people — this changes nothing about billing.
Turn a site On to let its assigned managers build the initial invoice themselves — approve hours, fill the manual line-item values, add one-off custom charges, then submit it for your approval. Off (default) keeps invoicing entirely with billing. Managers never see cost or margin. You always review and generate the final invoice.
Site managers submitted these drafts on self-invoicing sites. Review each one, then approve & generate the invoice or send it back with a note.
Week-over-week totals and sparklines build automatically as weeks are invoiced.
One ZIP with everything Finance files for the week — folders are week → customer → site, each site holding its archived invoice PDF and CIM upload workbook, plus a week-level itemized report at the top.
Builds the weekly RRX import CSV — credit to 1001 Sales:General for the grand total, and one debit line per billing line with each item's GL account and the site's QB location name.
Load a legacy RRX CSV and it's compared per location against what this tool computes from the same week's timesheet.
Win new yards? Export the CSV, copy an existing row per new site, fill in the contract terms, and re-import — profiles build themselves and the system starts matching their hours immediately. Standard sites (one hourly rate, optional $0 training/PTO band, fixed fees, add/delete) fit the CSV; complex sites round-trip losslessly through JSON.
Group sites for analytics — by customer, region, whoever runs them. One value per dimension per site.
Admin only. Used for margin — hours are costed per driver at their own wage. Drivers without a rate fall back to the site's burdened cost/hr.
Applied to wages at every site that hasn't set its own.
Admin only. Company-wide weekly carrying cost per vehicle type — the equipment "burden". Feeds profit-per-vehicle in Analytics. Override any single unit on its site's Equipment register.
Job codes listed here (e.g. Safety) are caught and never billed at any site, and are surfaced on the billing page so billing staff can see them. One code per line. On by default; an individual site can override with its own list.
When a site's week crosses one of these, it's flagged in the Week tab's "Needs attention" roll-up for the Ops pass. Deviation flags need BOTH the % and the $ floor, so small sites don't nag.
Give friendly names to T-Sheets job codes, sub-codes and shift / custom values (e.g. A1 Shift → Weekend, Target Wilton T579 → Target Wilton). Names show throughout the app — editor checklists, the unmatched-drivers list and the punch-correction screens. Billing and the invoice are unaffected (the invoice uses each item's Invoice band label). Load a week so the codes appear below.
Load a T-Sheets week to list its codes.
Off by default. Turn on only for THD (Home Depot) sites — it reveals the CIM upload constants below, the per-item "include on CIM" toggles, and the CIM upload (.xls/.xlsx) buttons.
Banners appear here and at billing time when a date is inside the lead window. The Contracts tab shows the waterfall across every site.
Hours are tracked every week regardless. Non-weekly sites appear on the board as tracked-but-not-billing until their next billing date.
Burden covers taxes, insurance, benefits — applied to driver wages and to labour-type fixed lines. Leave blank to use the company default. The fallback $/hr is used only for drivers with no pay rate on file.
Units on this site's fleet. On/Off dates drive the add/delete suggestions and the dedicated per-unit count; units active as of the week-ending date list on the invoice's Assets page. Bills to links a unit to a headcount or per-unit item.
Items save with the profile automatically. Toggle one off to keep its setup but skip it this billing. Items appear on the invoice grouped by their Invoice section, and only items with "Include on CIM upload" ticked become upload lines.
Record a rate or fee change now, dated when it takes effect. Weeks bill at whatever was in force that week — no need to edit on the day.
The weekly T-Sheets file is loaded once on the WEEK tab and shared with everyone. If hours are wrong, fix the punches in T-Sheets and re-pull the week (or have the site manager use Recheck).
The guided walk-through checks every row, flag and trend one step at a time. The fields below stay for quick edits.
| Description | Amount |
|---|
| Driver | Regular hrs | OT hrs | Total hrs |
|---|
| # | Ship Date | Trip Id | Driver / Label | Appt | Arrival | Hrs | Priced as | $ |
|---|
Day / night shifts per billing band (driver classification), per site. A shift is counted per driver, per day: a driver on-site about one Hours per shift counts as a full shift (measured clock-in to clock-out, so lunch/breaks are included), so N full-shift drivers ≈ N shifts. OT here = time worked beyond one shift on a day — this is a daily productivity measure and intentionally differs from the invoice's weekly (>40h) overtime. Night shifts that cross midnight (and their mid-shift break/lunch returns) stay whole on the day they started via the site's Day rollover hour. The per-day table also shows Day hrs / Night hrs — total on-clock hours (clock-in to clock-out, incl. breaks); by design hours = shifts × shift-length + OT. Honors the Period selector at the top of Analytics. Compare against your load count for productivity.
Tracks temporary / agency workers — anyone whose T-Sheets payroll id doesn't start with “W9R” (US1's own employees all carry a W9R… id; temps don't). Head-count is distinct people (deduped by payroll id, or by name when the id is blank); hours are gross clocked hours. Honors the Period selector at the top of Analytics — use the Trend table to see how temp usage changes week over week.
Revenue for every equipment billing line — dedicated per-unit lines, equipment add/delete lines, and fixed/variable lines married to the register — identified by their link to the fleet register, not their name (so differently-named lines still roll up together). Honors the Period selector at the top. Reads the saved line-item ledger; after loading old weeks click Rebuild ledger from history.
Live from the register. Composition and status honor the Group by selector; the change table honors Period.
Every week a manager (or billing staff) signed off or disputed — with their note — plus manager equipment status changes. Newest first.
Every week as it was billed. Invoiced sites show exactly what went out; PDFs open from here.
Dates are editable here. Rates, fees and driver counts read live from each site's billing items — click a site name to change them.
| Site | Status | Next milestone | Start | End / renewal | Rate review | Lead | Current terms | Scheduled | Notes |
|---|
A manager reported these units are no longer here, but they're still on contract and still billing. Set an off-contract date to stop billing them in future weeks, or leave them if the contract holds the count regardless.
Sites where the register holds fewer active units than the contract requires. Billing is unchanged — this is a signal to add or relocate units.
Whether each site's register units are actually wired to a billing line. A unit only earns tracked equipment revenue when its Bills to points at a billing item — unlinked units bill $0 and won't appear in the revenue report. Fix links on the Sites → Equipment register (or use Edit in the roster below).
Units whose on-fleet count changed since the prior billed week. A move here usually means an add/delete charge or a trailer-rental line needs updating.
| Site | Tags | Bills to | Type | Unit # | VIN | Year | Make | Plate | Code | On | Off | Status | Actions |
|---|
One CSV/XLSX for every site. Columns: site_name, unit_type, unit_no, vin, year, make, plate, code, active_from, active_to, status, rate, cost, bills_to. cost is an optional weekly cost override for that unit (else the company vehicle cost by type). Only site_name and unit_type are required; dates are YYYY-MM-DD. bills_to links the unit to a billing item — type the item's name exactly as it appears on that site (any name that doesn't match is imported unlinked and reported, so nothing links to the wrong line). The template exports whatever is already in the register, so you can edit and re-import.