Notes/Jun 2026
Jun 2026·8 min·Colby

Field service workers do not usually disappear. The proof they were there is what goes missing. It lands in a paper log at the job site, in a text to the dispatcher, or in an app that worked fine until the phone died at the 4-hour mark.

How time gets captured in the field

A cleaning crew rotates through six buildings on a janitorial route, and there is no single time clock anywhere on that route. The crew uses whatever exists at each job site, which is rarely the same thing twice.

One site has a paper sign-in sheet on the supervisor's clipboard. At another, the supervisor texts the dispatcher at shift end with the crew count and the hours. A third site runs a digital kiosk that belongs to the building owner and does not export anywhere useful. Then there is the app the company paid for. Some workers downloaded it, some did not, and it logs correctly when the GPS cooperates and quietly drops entries when it does not.

Calling this a time-tracking failure misses what is actually wrong. It is a format problem. The hours exist, scattered across a paper log that arrives by Tuesday, a supervisor's phone, a third-party kiosk, and a cloud app that covers 65 to 70% of the workforce on any given week.

What Friday looks like

The coordinator does not spend Friday calculating payroll. The job is to reconstruct one coherent record from those four sources, apply client bill rates and worker pay rates that may have changed since last month, and hand off something both the payroll processor and the invoicing system will accept.

Take a worker who moved from Site A to Site B mid-week. The two sites carry different bill rates. The coordinator has hours in two sources, and one of them lists the wrong site. Buried in an email chain is a rate adjustment for Site C that took effect six weeks ago, and nobody is certain it has been applied since. Three workers show no hours for Monday because the paper form from that building has not shown up, so the coordinator cannot tell whether they skipped the shift or the form is still in the mail.

The six hours this week-end close eats are mostly phone calls and email threads. Once the record is clean the arithmetic takes minutes. The record is almost never clean when it lands.

The exception problem

Every payroll reconciliation splits into two buckets: clean hours and exception hours. Clean hours are the bulk of it. The coordinator knows the worker, knows the site, knows the rate, and the hours showed up in a usable format. That part takes thirty minutes.

The exceptions swallow the other five and a half hours. They are not complicated. Each one just forces a decision. Is this missing entry a no-show or a late paper form? Did this classification mismatch come from a data error or a reclassification nobody mentioned to the coordinator? Is the overtime flag a genuine event, or did two entries at the same site get counted twice?

Every one of those questions has an owner somewhere, a supervisor or the operator or the site manager, and tracking that person down on a Friday afternoon takes as long as it takes.

When the system closes the gap

A better app the workers will keep ignoring does not fix this. What fixes it is a reconciliation layer that pulls in all the existing sources, normalizes them into one ledger, and hands the coordinator a queue of exceptions instead of a spreadsheet they have to comb through alone.

We built precisely that for one commercial staffing and field service operation. The weekly tool takes paper-digitized hours, structured supervisor intake, and app sync data, then applies client bill rates and worker pay rates from an editable table the owner controls. It flags every anomaly (a shift mismatch, an unknown classification, hours past a configurable threshold) and lays them out as a numbered list, each with the source record and a fix input.

A clean week shows total hours, total invoiced, total payroll, and zero exceptions, with one click to export. A problem week shows the exception list. You fix the item, re-run, and export. The detective work stays. It just becomes specific and finite instead of an open-ended Friday-morning puzzle.

Before you build

The tool only works once the rates live somewhere other than the owner's memory. The first step in an engagement like this is getting the bill rate table and the pay rate table into a document, any document, even a CSV, and confirming it is actually current. That usually burns a day and turns up discrepancies nobody saw coming.

The second prerequisite is knowing where the paper actually comes from. If three sites still run paper logs, you need to know how those logs arrive and whether they are consistent enough to parse. Some are. Some are not, and the fix for those sits upstream, in a structured intake at the site rather than a smarter parser at the back end.

Start with a source audit. Name every time-tracking channel, count how many entries per week arrive from each, and measure the share that come in clean against the share that need a human to intervene. An afternoon of that tells you whether you are looking at a format-normalization problem or a decision-ownership problem, and those two need different solutions.

More notes
Jun 2026·9 min
How facilities management companies win new maintenance contracts
A facilities company keeps fifteen buildings running and still cannot reliably add the sixteenth, because the people who deliver the service are not the ones chasing the next portfolio. Here is where facilities business development leaks.
Read →
Jun 2026·8 min
Field service quoting: the estimate that leaves days after the tech does
A tech diagnoses the repair on-site, then the quote waits days while someone prices it, and the urgent customer calls the next company. Here is where field service quoting leaks.
Read →
Jun 2026·8 min
The staffing agency that grew on referrals and then stopped growing
An agency fills every req its clients send and still cannot add a new logo, because the people who could sell are buried in the people they place. Here is where staffing business development leaks.
Read →
Jun 2026·8 min
Why commercial cleaning accounts churn in month four
An account that paid on time and never escalated cancels in one email. The misses were small and nobody tracked them, so the first warning was the last one. Here is where janitorial retention leaks.
Read →
Jun 2026·9 min
The facilities maintenance bid: priced on the schedule, bled by the call-outs
A property maintenance company bids the preventive schedule cleanly, then drowns in reactive calls nobody priced. Here is where the margin leaks before the contract is signed.
Read →
Jun 2026·9 min
Proving the clean: commercial cleaning QA before the client complains
Clients judge a cleaning vendor on the one thing they notice, not the forty things that went right. Here is where quality control breaks down and what a system catches before the client does.
Read →
Jun 2026·9 min
Night coverage: how commercial cleaners lose a site before anyone notices
Crews clean thirty buildings a night across a city. When one cleaner no-shows, the gap is invisible until the client emails at 8 a.m. Here is where coverage breaks and what holds it.
Read →
Jun 2026·9 min
The commercial cleaning pipeline: where new accounts leak before the bid
Most janitorial owners prospect in the gaps between running the business, so the pipeline leaks at follow-up. Here is where the accounts go and what holds them.
Read →
Jun 2026·8 min
Why commercial landscaping companies lose track of job costs, and what it takes to see margin per contract
Crew hours sit in the timesheet app. Material costs sit in the bookkeeping ledger. Equipment hours sit on a log in the truck. None of them connect to the contract number, so the margin story is always three months old.
Read →
Jun 2026·9 min
How to audit a commercial cleaning operation for workflow gaps
The quoting log, the payroll close, and the prospect pipeline each signal a different kind of operational drag. Here is what to look for in each.
Read →
Jun 2026·8 min
How facilities teams track open work orders across properties (and where jobs go quiet)
The request came in. The vendor got dispatched. Then nothing. Where work order tracking breaks down at ten properties, and what it takes to fix it.
Read →
Jun 2026·8 min
How janitorial operators price contracts (and where the number goes wrong)
The math closes in an afternoon. The inputs are the hard part. Here is where underbidding starts and how to make the pricing logic repeatable.
Read →
Jun 2026·8 min
Why the RFP response is already late before anyone starts writing
BD found the opportunity. The deadline is in ten days. Most of that window goes to locating the right answers and confirming they are still current, before a word gets written.
Read →
Jun 2026·9 min
The commercial cleaning bid: why it still takes three days
The walkthrough takes 45 minutes. Getting a number to the prospect takes three days. Here is where the time goes.
Read →
May 2026·11 min
How to audit a services business for automation
A practical way to find the workflow bottlenecks worth fixing before anyone starts building with AI.
Read →
Mar 2026·8 min
Why we ship two projects, not five
How we score 30 ideas down to the two that move revenue this quarter.
Read →
Feb 2026·12 min
What we hand off when we leave
A runbook your team uses without us. Here is what it covers and how we test it before we go.
Read →
Jan 2026·15 min
Six engagements, one pattern
Where $1M to $50M services businesses lose revenue, and the fix that held.
Read →