Crew scheduling
Crew scheduling for commercial subs, across every job at once.
You do not have a dispatch problem. You have a commitment problem: nine superintendents each hold a date that moves, and every one of them was promised people you also promised somewhere else. SubMark puts crews and named workers on one calendar across every job, raises a conflict the moment the same people are committed twice, and shows how many of your workers are spoken for on any given day.
14-day free trial, no card needed. Field crews are free and unlimited. See pricing →
- Crews and named workers on one calendar, across every job you are running.
- The same crew or worker on two projects on one day raises a conflict by itself.
- Daily capacity: how many workers are committed against how many are active.
Why the whiteboard loses by Wednesday.
Your week is set by other people
A pour slips, an inspection fails, a ceiling grid goes in early. None of it is your decision and all of it moves your crews. A schedule that takes twenty minutes to redraw gets redrawn once a week, which is three days later than the job changed.
Two people promise the same five workers
One PM commits the finish crew to the hospital job Monday. Another commits the same crew to a punch list across town. Nothing in a workbook objects. You find out at 6:45 a.m. when a foreman calls asking where his people are.
Nobody counts heads before committing
Every individual promise is reasonable. Added up, Tuesday needs 34 people out of the 28 you employ. The arithmetic only exists if something is holding every job’s plan in the same place.
The plan and the day that happened never meet
The plan lives in a spreadsheet and the hours land in payroll, in two different places that nobody puts side by side.
Last week’s plan is gone
A workbook that gets overwritten every Friday leaves no record of what you committed to or when it changed — which is exactly what you need six months later, when a GC says your crew never showed.
How a week gets built in SubMark.
Build the crews once, then schedule against the jobs you already have in the system. Nothing here asks you to maintain a second list of people.
- 01 Build your crews once
A crew is a name, a type in your own words, a foreman and its members, with one marked lead. Point a crew at a subcontractor company and it is a sub crew instead of an internal one, which keeps a tier-two crew in the same calendar as your own people.
- 02 Schedule a crew or one named worker
Either one goes onto a job for a start date, an end date, hours and a note. Weekdays-only is a checkbox, so a two-week run skips the weekends without you clicking fourteen times.
- 03 Check a worker before you commit him
Before you save, check availability on a named worker and the panel tells you whether he is already scheduled that day — which project, and for how many hours.
- 04 Conflicts raise themselves
When a crew or a worker ends up on two projects on the same date, the day gets a marker, the header gets a conflict count, and a panel names both projects. Dismiss the ones you meant to make; the rest are a phone call you now get to make on Friday instead of Monday.
- 05 Move the week when the job moves
Drag an entry onto another day. Change the hours or the note, or move a named worker to another project. The week that changed is edited, not rebuilt.
- 06 Read the capacity bar before you say yes
Every day in view shows scheduled workers against active workers, and the bar changes color as the day fills and again when it is full. It is the fastest honest answer to "can we take that on next week".
- 07 Then compare it with the day that happened
The daily labor logs and the time clock are in the same system as the plan, so what you scheduled and what you paid for are not two companies’ data. Your field users cost nothing, so there is no reason for any of it to go unlogged. There is no side-by-side plan-versus-actual report; the two sit in one system, not one screen.
Everything above ships today and none of it is a tier you upgrade into. The core modules are on in every trade pack from setup; a few extras, like the invoices inbox, are a switch in Settings. The full list is on the product page.
In the app
What a schedule entry actually holds.
The scheduling page opens on the week, with month and list views beside it. Every entry on it is one of these:
- Crew entry
- A whole crew on a job for a date range, carrying its foreman and members. It is checked against the same crew elsewhere, not against its members scheduled by name.
- Worker entry
- One named worker on a job, for the days you need him there and nobody else.
- Hours and notes
- Planned hours per day and a free note — the "south stair only, grid is out of your way after Tuesday" that a date alone never says.
- Date range, weekdays only
- One entry covers a run of days, weekends skipped if you say so, up to 31 days at a time.
- Conflict
- Raised by the system when a crew or worker is scheduled on two projects on one date. Names both projects and the date, and can be dismissed when the double-booking is deliberate.
- Worker capacity
- Per day: scheduled workers over active workers, with the bar changing color as the day approaches and passes full.
- Crew record
- Name, type, foreman, members with a lead, an optional subcontractor company and notes. Internal crews and sub crews sit on the same calendar.
- Where workers are
- The other half of the question, on your Home page: who is on which job today, broken out by phase, with the days behind you a click away.
Scheduling an entry plans a day. It does not create an hour or a cost — labor cost comes from the daily labor logs and the time clock, which is why a plan can be wrong without quietly corrupting your job costing.
Straight answer
What it does not do.
A product page that only lists wins is a product page you stop trusting in week two. These are the gaps, in our own words, before you find them yourself.
- It does not push the schedule out to a worker’s phone. Sharing a schedule to field workers is not built yet, so today the calendar is read inside SubMark by the people you have given the schedule permission to. Field users are free and unlimited, so that can be every foreman you have — but a worker without a login still finds out by phone.
- Availability is checked for a named worker on the start date, not for a crew and not across a whole range, and it reads named-worker entries only. Crew entries and named-worker entries are checked separately: a crew on one job and one of its members scheduled by name on another the same day is not flagged, and the capacity bar counts named-worker entries, not crew members.
- There is no GPS or geofence verification on clock-in. The time clock records the project and the phase the worker picks, not where the phone was standing.
- This is a commitment calendar, not a per-job Gantt. The task breakdown, the links between tasks and the critical path live in the separate Project Scheduler module, which answers "what order does this job go in" rather than "who is where on Monday".
- A bulk add covers 31 days at a time. A six-month standing commitment is entered as a handful of ranges, not one.
Which trades feel this most.
Same problem, different shape. Each trade page leads with that trade's own phases, schedule of values and wording.
Drywall & Framing
The biggest headcount on the job, split across floors and buildings, with the same five finishers wanted everywhere at once.
Electrical
Rough-in follows the framer and trim follows the ceiling, on eight jobs whose dates all move independently.
Concrete
A pour date is not a preference. When it moves, every crew you promised somewhere else that week moves with it.
Questions
Crew scheduling: what a sub’s office actually asks.
Is this dispatch software?
No. Dispatch software routes a technician to the next address. A commercial sub commits a crew to a date a superintendent controls, then keeps that commitment while the date moves. This is built for the second thing: one calendar across every job, conflicts flagged, capacity visible.
Can I schedule a whole crew or individual people?
Both, on the same calendar. A crew entry commits the crew as a unit; a worker entry commits one named person. The two are checked separately, so pick one way to schedule a given person. Most offices use crews for production work and named workers for punch, service and the one person who goes wherever the trouble is.
How does it catch a double-booking?
The system raises a conflict whenever a crew or a worker is scheduled on two projects on the same date. The day carries a marker, the page header shows the count, and the conflict panel names both projects so you can see which promise to renegotiate. Deliberate overlaps can be dismissed.
Do my field workers see their own schedule?
Not pushed to them, no — sharing the schedule out to field workers is not built yet. Anyone you give a login and the schedule permission to can read the calendar in SubMark, and field users are free and unlimited, so a foreman can be one of them. A worker without a login still hears it from his foreman.
Do scheduled hours become labor cost?
No, on purpose. A schedule is a plan. Cost comes from the daily labor logs and the time clock, so a week you planned and then changed twice does not leave a trail of phantom hours in your job costing.
Is this the same thing as a project schedule?
No. Crew scheduling answers who is where this week, across every job. The Project Scheduler is an opt-in module: a per-job Gantt with a work breakdown, dependencies and a critical path. They are separate modules because they answer separate questions, and most subs turn on the first long before they need the second.
Read next
Crew scheduling for commercial subcontractors
The four questions a commercial sub’s schedule has to answer, and why dispatch software answers none of them.
How to track labor hours by job and cost code
The plan is half of it. This is how the hour that actually got worked lands against the job at a grain you can report on.
Choosing a construction time clock app as a commercial sub
The schedule is the promise; the clock is the record. What to insist on before you put one in front of a foreman.
Put next week on one calendar.
Start the trial, build two crews, and schedule the week you already know. The first conflict it flags is a phone call you were going to get at 6:45 on Monday anyway.
14-day free trial, no card needed. See the whole product →
$249/mo for your company, your first 3 office users included, $39/mo each after that. Field crews are free and unlimited. See what's included →
The rest of the job
Change orders
From the day the field finds the change to the day it is in the schedule of values, with an audit trail at every step.
T&M tickets
Priced in the office off your own rate lists, signed on site, and several tickets roll into one change order.
Schedule of values
One SOV per job, built from your trade’s own breakdown, locked when the first draw goes out, and approved change orders added to it automatically.
Draw tracking
Fifteen jobs, nine GCs, nine cutoff dates and nine submission methods — in one calendar and one log, with drawn, certified and received as three different numbers.
Retainage tracking
Five or ten percent of everything you have ever billed, sitting somewhere, on jobs some of which finished last year.
Daily logs
The record that wins an argument nine months later, written in two minutes by a foreman who wants to go home.
Lien waiver tracking
Which waivers went up the chain, which the GC has received, and which draw is sitting still because one of them has not.
Job costing
The overrun you can still do something about, instead of the one you find in the end-of-job autopsy.
QuickBooks
Bills and card purchases pull back as job costs. Draws and POs push across with a click. Your books stay your books.
Time tracking
Hours per worker, per job, per day — signed by the worker who worked them, approved by the office, and read straight into job costing.
Safety records
Toolbox talks signed off per person, scored site inspections, and certification and COI expiries you see 30 days out instead of on the day.