Field & cost
Crew scheduling for commercial subcontractors: you schedule commitments, not appointments
For the PM or operations manager who decides on Friday where every crew goes Monday.
Search for crew scheduling software and almost everything you find is built for dispatch: a map, a queue of service calls, a technician routed to the next address. That is a real business. It is not yours.
A commercial specialty sub does not dispatch. It commits. You promise a superintendent that six people will be in the east stair tower Monday, because his ceiling grid cannot start until you are out of it. Then you promise another superintendent something that needs four of the same six. Nobody is waiting on a phone call. Somebody is waiting on a pour, a top-out or an inspection, and the cost of being wrong is not a late appointment — it is a crew standing in a parking lot at 7 a.m. getting paid.
The problem has a different shape, and it is worth describing properly before anyone buys anything.
Why your schedule is harder than a dispatch board
Three things make it harder, and none of them is the number of people.
You do not own the sequence. The GC’s schedule sets your dates, and the GC’s schedule moves. A two-week slip on a deck pour moves your layout crew, and you hear it in a superintendent’s text rather than a dated revision. Your crew plan is downstream of between three and fifteen other people’s plans.
Your crew size is really a range. A rough-in crew is five, unless the material drop is late and three of them are staging. A trim-out crew is two, unless the inspection moved to Thursday. The schedule has to hold a commitment — these people, this job, this day — without pretending the hours are precise.
The same person is the answer to two different questions. Your best welder. Your only person with the certification the spec calls for. The foreman who can run two floors at once. Those are the people who get double-booked, every time, because they are the people who make a plan work.
That third one is the whole problem. Double-booking is not a clerical error. It is what happens when scarce, good people are the solution to more than one problem on the same Tuesday.
Four questions a crew schedule has to answer
Forget features for a moment. If a schedule — notebook, whiteboard, workbook or app — cannot answer these four, it is decoration.
1. Where is everybody next week? Across all jobs at once, not one job at a time. The one-job-at-a-time view is exactly why double-bookings survive: each job’s own page looks fine.
2. Who is committed twice? Named, with both jobs and the date, early enough that you can choose which promise to renegotiate and tell someone.
3. Who is not committed at all? The expensive silence. A journeyman with no job Wednesday is cost you are carrying with nothing billable against it, and that is invisible in a per-job view.
4. What actually happened? Not the plan — the day. Who was on which job, and how it differed from what you said on Friday.
The fourth is the one nearly every system skips. It is also the one that pays for the other three.
How double-booking actually happens
Watch the mechanism, because it tells you what a conflict check has to be.
It is almost never one person typing the same name twice. It is Thursday afternoon, a superintendent asks for “a couple of guys Monday to knock out the corridor,” you say yes, and that yes lives in a text message for four days. Monday’s plan was built on Friday from a different set of facts, by someone who never saw the text.
Which is why a useful conflict check is not a time-of-day scheduler. You are not booking 8:00 to 10:30. You are committing a crew to a job for a day. The grain that matters is the same crew, or the same named person, committed to two different jobs on the same date. That is checkable the moment both commitments exist.
It also implies two limits you should expect from any tool, ours included.
- A conflict is a flag, not a verdict. Splitting someone across two jobs in a day is sometimes exactly right: four hours of layout here, four of trim there. The flag exists so that you chose it, instead of discovering it at 7 a.m. So there has to be a way to acknowledge one and move on — otherwise everybody learns to ignore the warnings, which is worse than having none.
- A crew check and a person check are different checks. A crew committed to two jobs is one kind of collision. A named worker committed to two jobs is another. If a tool only compares crews, somebody who sits on two crews can still be in two places at once.
The gap between the plan and the log is where the margin goes
This is the part that connects scheduling to money, and the reason it is not an operations-only subject.
You planned six people on the east tower Monday. The log says four, and the other two were next door. Nobody did anything wrong — the lift was late and the super needed help. But now three things are true:
- The east tower is two crew-days behind and nobody has said so out loud.
- Two crew-days of labor landed on a job whose budget never planned for them, and if nobody recoded the hours, the cost sits wherever they were entered.
- If the move was caused by a GC-side delay, the proof is a dated record of who was where — and you will want it four months from now, not a memory of a text message.
So run the comparison weekly: planned crew-days against logged crew-days, per job. The jobs where the two drift apart in the same direction every single week are not having a scheduling problem. They are either underbid or being used as your float, and both of those are margin decisions wearing a field decision’s clothes.
That is the honest reason to keep the schedule and the labor log in one system. Not because double entry is annoying — because the difference between them is a number you cannot get any other way. The wider version of that subject, the three sets of hours that never agree and which one your costs should come from, is how to track labor hours by job and cost code.
Five rules that make a crew schedule survive contact
Commit people, not hours. Put a crew or a named worker on a job for a day, with an estimated-hours figure you treat as a plan rather than a promise. Precision you cannot keep teaches everyone to distrust the whole board.
One place, or it is not a schedule. One person’s head, plus a group text, plus a workbook, is three schedules. The conflict is always in the gap between them.
Build crews as real objects. A named crew with members and a foreman is worth the setup, because every commitment afterwards is one entry instead of five — and because a conflict check can only follow a person through a crew if the membership is written down. Keep one rule: a worker is on one crew at a time, or membership stops meaning anything.
Let the field read it and nobody else write it. Foremen should see next week on a phone. They should not be able to move it. A schedule is a commitment register, and commitments are made by whoever has to answer for them.
Read last week before you plan next week. Five minutes. Where did the plan and the logs disagree, and why. That is the habit. The software only makes it quick.
How SubMark handles it
Crew scheduling in SubMark is one calendar across every job, in a month view, a week grid or a list.
You schedule either a crew — a named group with members and a foreman, built once on the Crews page — or an individual worker, onto a job, on a date, with estimated hours and a note. A worker is on one crew at a time, and the app tells you when adding someone moves them off their current crew.
Conflict detection is automatic, at the grain described above. When the same crew, or the same named worker, is committed to two different jobs on the same date, both entries are flagged and the toolbar carries a conflict count. Opening it lists each one as “[name] is scheduled on two projects” with both job names and the date, and jumps you to that day. Someone with the right permission can dismiss a conflict when the split is deliberate. Before saving a worker entry you can also check availability for that date, which tells you whether they are already committed, to which jobs, and for how many hours each.
Jobs carry a color on the calendar. In the week and month views an entry shows the crew or worker name and its hours, with the job shown by color; the list view and the entry itself spell the job name out.
Your foremen and crews are field users, and field users are free and unlimited on every plan — see how pricing works. On a phone the schedule is a read-only week agenda, Sunday to Saturday, behind a view-schedule permission, plus each person’s own schedule. Editing is office-only on purpose.
Then the other half. Where Workers Are reads the day’s labor logs and groups them by job: which workers were on which job, with a phase chip next to the name on drywall jobs that use patch tracking, and a date you can scrub backwards through. It is the record of the day that happened, built out of what the field logged — which is what makes the planned-versus-logged comparison possible — you read the two side by side; there is no built-in planned-versus-logged report. The same hours feed job costing at each worker’s wage rate.
Two limits worth knowing before you sign up. The conflict check is per date, not per hour: it tells you somebody is committed to two jobs Tuesday, not that the two commitments add up to eleven hours. And crew entries and individual entries are checked separately: if a crew is on one job and one of its members is also scheduled by name on another job the same day, neither check flags it — and the availability check before saving a worker entry looks at individual entries only.
Scheduling lives in run the field next to daily logs, the time clock and change events. If the documentation half is what you are really shopping for, that is daily logs; the hours end up in job costing.
What to do this month
You do not need software to start. You need the four questions answered in one place.
Take next week. Write every crew and every named individual against a job and a date, all jobs on one page. Then circle every name that appears twice. That list is the week’s real risk, and on most weeks it is a handful of names — every one of them someone you depend on.
At the end of the week, put the daily logs beside it and mark where they differ. Do that four weeks running and you will know which job is being used as your float. That is worth more than any calendar.