Construction · multi-jobsite labor dashboard + incident log

Construction scheduling software for general contractors running 3-6 active jobsites. AI scheduling for GCs and multi-jobsite scheduling that handles the way you actually run weather days, MEP rough-in dependencies, OSHA-cert role gating, multi-site foreman coordination, and the end-of-month OT push. $200,000 to $600,000 a year per GC of preventable bleed. Caught at save time, not at payroll close.

It is Sunday at 5:42 PM. Walsh, your superintendent, has been at the kitchen table since 1 PM rebuilding next week's 3-jobsite construction schedule by hand. He has 7 more hours ahead of him. His wife and kids are at her mother's because they know not to plan a Sunday dinner during construction season. This is week 14 of this exact Sunday. He has not eaten Sunday dinner with his family since March. The yellow legal pad on the left has 47 cross-outs. The cold coffee from 3 PM is still next to it.

That is one superintendent. One Sunday. One GC.

Stack the conservative-end annual numbers across a typical 4-jobsite GC — the end-of-month OT spike ($73K-$200K/year, incident #7), the labor variance vs budget per jobsite ($80K-$300K/year, widget #2), the multi-site foreman double-booking ($20K-$120K/year, incident #5), the MEP rough-in coordination misses ($33K-$67K/year per active fitout, incident #3), the weather-day show-up pay ($8.7K/year, incident #1), the critical-path operator no-shows ($10K-$150K/year, incident #2), the subcontractor coverage gaps ($20K-$120K/year, incident #8), the OSHA-cert lapse contract-clause exposure ($20K-$100K/year, incident #4) — and the typical 4-jobsite GC is leaving $200,000 to $600,000 a year on the table that manual scheduling and the older jobsite scheduling tools do not catch. Across a 5-project GC: $1,000,000 to $3,000,000 a year.

What follows is the multi-jobsite labor dashboard XShift shows you (6 widgets), then 8 real staffing incidents from a single month at a GC running 4 active jobsites. Every widget and every incident ties to a named XShift feature you can verify in the product. XShift AI is $29/month base + $1 per active staff member — a 130-staffer 4-jobsite GC pays $159/month, $1,908/year, for the tool that protects the $200K-$600K above. The math is not subtle.

XShift · multi-jobsite labor dashboard
Walsh · Acme General Contractors · 4 active jobsites
Pulled
Tue 7:15 AM
Active jobsites
4
multi-site rollup
Total staffers
132
across all sites
Over-40 this week
17
OT trending
Budget variance
+5.3%
$4.7K over
Section 1 of 2 · the dashboard

The 6 widgets that run a multi-jobsite GC.

OT exposure per jobsite. Labor variance vs budget. Certified-role coverage. Per-time-window coverage minimums. The multi-site rollup. Crew reliability. Every widget pulls from features your manager can verify in the product. Every widget shows the operator math underneath — where the number comes from, and what changes when the bleed stops.

01
Workforce Insights · scheduled hours

OT exposure per jobsite

Week-to-date scheduled hours
4 jobsites · 132 staffers · OT trending
Pulled Tuesday 7:15 AM by Walsh from the office trailer
Midtown Tower
38 staffers
Avg 41.2 hrs · 11 over 40
Park East Condos
42 staffers
Avg 39.4 hrs · 4 over 40
Westside Office Fitout
28 staffers
Avg 36.1 hrs · 0 over 40
River Bend Industrial
24 staffers
Avg 38.8 hrs · 2 over 40

Walsh, your superintendent, used to find out about overtime when payroll closed the next Friday. By then the premium was already booked, the foremen were defensive, and the only conversation was "we'll watch it next week." On Midtown Tower, 11 staffers were already over 40 hours by Tuesday morning. At a framer base rate of $24-$28/hr and a journeyman electrician base of $34-$42/hr, the 1.5x overtime premium per staffer per OT hour runs $12-$21/hr. If Walsh does not intervene by Tuesday afternoon, the average over-40 staffer on Midtown lands 6-10 OT hours on the week. 11 staffers × 8 OT hours × $16 average premium = $1,408 of OT premium on a single jobsite for a single week. That is one week. One jobsite. Workforce Insights surfaces scheduled hours and OT trending per staffer, per role, per jobsite, week by week. Walsh now opens the dashboard every Tuesday morning and sees the trend before the bleed prints. He moves the framing crew on Midtown to Park East where the foreman is light, calls the crane operator's apprentice to cover the back half of Wednesday, and the week closes 7 OT hours instead of 88. Across 4 active jobsites a 3-6 jobsite GC saves the OT premium 30-50 times a year — not because the OT vanishes, but because Walsh catches it on Tuesday instead of next Friday.

Workforce Insights · scheduled hours + OT trending
02
Custom rule · weekly labor cost cap + daily labor cost cap

Labor variance vs budget per jobsite

This-week labor vs budget
$94,200 spent · $89,500 budgeted · +5.3%
Per-jobsite ceiling enforced at save time
Midtown Tower
Budget: $38,000
Actual: $40,100 · OVER
Park East Condos
Budget: $26,500
Actual: $25,900 · under
Westside Office Fitout
Budget: $14,000
Actual: $14,200 · over
River Bend Industrial
Budget: $11,000
Actual: $14,000 · OVER

Park, your project manager, sets a weekly labor budget per jobsite — Midtown Tower at $38,000, Park East at $26,500, Westside at $14,000, River Bend at $11,000. With manual scheduling and legacy construction workforce platforms, the budget is a number on a spreadsheet. Foremen schedule whatever crews they think they need. The real labor cost lands at payroll on Friday. By then the variance is whatever it is. On River Bend, the foreman scheduled two extra ironworkers Thursday for a steel lift that did not happen. $3,000 over on a single week. Across 50 weeks × 4 active jobsites × an average $400-$1,500 of preventable variance per jobsite per week = $80,000-$300,000 a year on a 4-jobsite GC. In XShift, on the Autopilot page you write a custom rule in plain English: "weekly labor cost over $11,000 at River Bend — block the shift." Add the same rule for the other 3 jobsites at their numbers. The rule fires when the shift is being assigned, not at payroll. A shift that would push the week over the ceiling either blocks at save, or shows a manager-override popup with a written-reason box. Same for the daily cap — "daily labor cost over $2,200 at Midtown on this day — block." The 5-rule cap forces Park to pick the budgets that matter most. But the labor budget stops being a Monday-morning surprise. It starts being a Friday ceiling the grid actually holds. Heads up: the labor-cost rules block or warn. They do not auto-pick a cheaper crew. That is the foreman's call.

Custom rules · weekly labor cost cap + daily labor cost cap
03
Role-based assignment · OSHA-cert and trade-cert as roles

Certified-role coverage per jobsite

Required certs per shift, per jobsite
Cert-as-role roster · 14 cert roles configured
Grid blocks any assignment that would leave the cert open
Midtown Tower
Signal person: 1/1 ✓
Rigger: 2/2 ✓ · OSHA 30 super: 1/1 ✓
Park East Condos
Fall-protection lead: 1/1 ✓
OSHA 10 carps: 8/8 ✓
Westside Office Fitout
Hot-work permit holder: 0/1 ✗
Assignment blocked at save
River Bend Industrial
Confined-space cert: 2/2 ✓
Crane signal: 1/1 ✓

XShift handles certs through roles. There is no cert-expiry date stored inside the scheduler. Instead, you add a role on each staffer's profile for every cert they hold. Roles like "signal person," "rigger," "long safety course done (super)," "short safety course done (carpenter)," "hot-work permit," "confined-space cert," "fall-protection trained," and "scaffold trained." Each cert is a role. Each staffer with the cert gets the role on their profile. When the cert renews or lapses in your HR system, you update the role. That is the enforcement gate. Then in the staffing rules, you set "Westside Office Fitout, Tuesday 7 AM-3 PM hot-work block: need 1 hot-work permit role on shift." The AI Copilot honors the staffing rule when it builds the week. Any save that would leave the hot-work block uncovered gets blocked at save time. This is not a compliance guarantee. XShift makes no compliance promises. What it does is hold the line on whoever you have set as eligible. The cert lapse itself still has to live in your HR system. The contract-clause exposure when a non-cert staffer ends up on a cert-required job is the reason the role-as-cert workaround exists — $10K-$50K per-incident penalty clauses are common in commercial GC contracts. The AI Copilot will not put a non-eligible staffer on the shift. The grid blocks it. Aldana, your foreman on Westside, sees the red tile, calls the journeyman who got his hot-work permit last month, swaps him in, the tile goes green.

Role-based assignment · cert-as-role workaround
04
Staffing rule · per-window minimums (exact time match)

Coverage minimums per shift window

Per-jobsite, per-time-window minimums
11 time-based staffing rules across 4 jobsites
Exact start/end time match required for the rule to fire
Midtown Tower
Crane lift block Tue 7-11 AM
1 operator + 2 riggers + 1 signal
Park East Condos
Concrete pour Wed 5-9 AM
1 finisher + 3 laborers + 1 foreman
Westside Office Fitout
MEP rough-in Thu 7 AM-3 PM
2 electricians + 2 plumbers + 1 MEP tech
River Bend Industrial
Steel erection Fri 6 AM-2 PM
1 ironworker foreman + 4 ironworkers

Construction shift coverage is not a flat number across the day. The crane lift block on Tuesday morning at Midtown needs a crane operator plus 2 riggers plus a signal person — 4 roles, all needed, only for that 4-hour window. The Wednesday morning concrete pour at Park East needs a finisher plus 3 laborers plus a foreman, 5 AM to 9 AM. The Thursday MEP rough-in at Westside needs 2 electricians plus 2 plumbers plus an MEP tech, 7 AM to 3 PM. If any of these windows runs short, the critical path slips. Critical-path slip cost in commercial construction runs $5,000-$50,000 per day in carrying cost, equipment idle, and downstream-trade rebooking. Manual scheduling holds these minimums in Walsh's head. Conventional construction workforce platforms let you set a flat per-shift minimum but not a per-time-window minimum — and the older jobsite scheduling tools have no concept of trade-sequence coverage at all. In XShift, you set a per-window minimum: jobsite, role, day-of-week, time window, count. The rule fires when the shift's start and end match the rule's window exactly. The AI Copilot honors the rule when it builds the week. The grid blocks any save that would leave the window under the minimum. Heads up: the time match is exact. A 7:00 AM to 3:00 PM rule does not fire on a 7:00 AM to 3:30 PM shift. Set the rules to match the shift windows your crews actually run.

Staffing rule · per-window minimums (exact time match)
05
Multi-location · base tier

Multi-site rollup

Active jobsites in one org
4 jobsites · 132 staffers · 1 schedule view
No paid add-on. Same screen across every jobsite.
Midtown Tower
Active · 38 staffers
Walsh + Aldana + Hollings
Park East Condos
Active · 42 staffers
Park + 3 foremen
Westside Office Fitout
Active · 28 staffers
Aldana (shared) + 2 foremen
River Bend Industrial
Active · 24 staffers
Reyes (operator) + sub crews

A GC running 3-6 active jobsites with separate spreadsheets is running 3-6 separate scheduling problems. They all overlap on the most expensive staffers — the foremen, the crane operators, the finish carpenters, the journeyman electricians, and the supers with the long safety course done. Foremen routinely get double-booked across two jobsites on the same Tuesday morning because nobody sees both sites at the same time until Friday. A double-booked foreman on a critical-path day costs $5,000-$50,000 in delay carrying. Across 8-15 double-bookings a year for a 4-jobsite GC: $40,000-$750,000 of avoidable critical-path slip. Multi-location is included in the XShift base tier — no paid add-on, no upgrade, no separate seat. One organization, every jobsite, one staffer roster, one schedule view. The AI Copilot sees every staffer's hours across every jobsite when it builds the week. Aldana cannot be scheduled to Park East and Westside in the same hours. The grid blocks the second save on its own. The multi-jobsite labor dashboard at the top of this page is what the Workforce Insights view looks like when multi-location is on. Every jobsite, every staffer, every hour, in one screen instead of four. The shared foreman pattern (Aldana split across Park East and Westside) is exactly what the system is built to handle. One staffer profile, schedule visibility across both sites, the AI Copilot checks for clashes at build time, and Park sees the split allocation in real time.

Multi-location · one org, every jobsite
06
Reports & Analytics · clock-ins divided by assignments

Reliability metric per crew

Show-up reliability, trailing 90 days
Reliable crews get the critical-path days
Honest caveat: counts missed clock-ins as misses — same as a no-show
Midtown framing crew
94 of 96 clocked in
Reliability: 97.9%
Park East MEP sub
78 of 88 clocked in
Reliability: 88.6%
Westside drywall crew
64 of 72 clocked in
Reliability: 88.9%
River Bend ironworkers
102 of 102 clocked in
Reliability: 100%

Walsh used to assign critical-path days from memory and seniority. Some of the crews he trusted were not actually showing up at the rate he thought they were. The Park East MEP sub had been missing 1 in 8 scheduled days — small enough nobody noticed week to week, big enough to slip a 4-week MEP rough-in by a full day or two over the run of the project. On the Reports & Analytics page, the reliability metric surfaces clock-ins divided by assignments across every staffer and every crew, trailing 90 days. Reliable crews get the critical-path Tuesday lifts and the Saturday pours. The lower-reliability crews get the non-critical-path days while you have the show-up conversation. The honest caveat we are required to put on the page: the metric counts a missed clock-in the same as a no-show. If a staffer worked the day but forgot to clock in on the app, the metric reads that as a miss. The fix is to drill into the underlying clock-entry log before drawing conclusions on a single crew. The metric is a screening tool — useful at the crew level, directional at the individual level. Combined with the show-up conversations, it makes promotion and critical-path assignment decisions data-grounded instead of memory-grounded.

Reports & Analytics · reliability metric
Section 2 of 2 · the incident log

8 staffing incidents. One month. One 4-jobsite GC.

Every incident is one Walsh has lived through. The trigger that landed the call-off, the cert lapse, the rough-in miss, the weather cascade. The mechanism that turns a small event into a budget hit. The operator math that shows where the dollars come from. The XShift rule that catches it. The payoff in time or money that lands on the P&L.

01
Week 1 · Monday, 4:42 AM

Rainstorm hits 3 jobsites at once. The weather-cancellation cascade.

Trigger

A line of severe thunderstorms parks over the metro region. Lightning is forecast through 11 AM. Midtown Tower (5th-floor structural steel), Park East Condos (Saturday-pour follow-up finishing), and Westside Office Fitout (exterior glazing work on a lift) are all weather-cancellable. Walsh is staring at three jobsites that cannot start at 7 AM. He has 9 crews and 67 staffers staged to drive into work. He has 90 minutes to make decisions before the first truck rolls.

Mechanism · how a small event becomes a budget hit

The weather-day labor problem is not just "tell people not to come in." It is: which staffers do you redirect to which sites where the work CAN happen indoors? Which staffers do you call off and absorb the show-up pay on? Which foremen go where? And critically — once you redirect Aldana's framing crew from Park East to the Midtown stairwell rough-in, you cannot accidentally pair Aldana with the journeyman electrician he had the blow-up with two weeks ago. Manual scheduling means Walsh texts every foreman individually. 30-45 minutes of triage. Three crews drive to a closed site anyway because the text did not land before they left. Show-up pay on a closed weather day for a 12-staffer crew at $26/hr average runs $312-$936 in show-up minimum per crew. Across 4-6 weather days a year per GC × 2-3 wasted-trip crews per event × $600 average = $4,800-$10,800 per year of weather-cascade show-up pay.

Operator math · where the dollars come from

4 weather days/year × 3 wasted-trip crews × 14 staffers × 2-hour show-up minimum × $26 avg = $8,736/year of preventable weather-cascade show-up pay. Plus the redirect-pairing landmine: 1-2 times a year the redirect accidentally pairs Aldana with the journeyman electrician he had the blow-up with → tension on the indoor work → drywall corner gets dinged → rework $400-$1,200 per incident. $400-$2,400/year of preventable rework cost.

The XShift rule that catches it

Two audit-grounded rules cover this. First, an anti-pair custom rule on the Autopilot page: "Aldana and the journeyman electrician are never scheduled on the same shift." The rule fires when a shift is being assigned. When Walsh runs the weather-day redirect through the AI Copilot, the Copilot will not put them on the same indoor site. Second, the weekly labor cost rule on River Bend (or wherever the redirected staffers land) catches the budget swell from the redirect itself. If moving 14 staffers from Westside to River Bend would push River Bend's weekly labor over $11,000, the rule blocks the save or shows the override popup. The Copilot sees all 4 jobsites in one view (multi-location is on), so it knows which sites can actually take redirected staff and which are already at OT risk.

Payoff · money

$8,736/year of show-up pay stays in the account. $400-$2,400/year of pairing-landmine rework stops. Walsh runs the weather decision through the Copilot in 90 seconds instead of 45 minutes of texts. 2-4 hours of superintendent time back on a weather day, and 8-15 hours back over a year of weather days.

Custom rules · anti-pair + weekly labor cost cap + multi-location
02
Week 1 · Thursday, 5:38 AM

Crane operator Reyes no-show on a critical-path lift day.

Trigger

Reyes, your $42/hr crane operator on Midtown Tower, was supposed to clock in at 6 AM for the 7 AM structural-steel lift. At 5:38 AM you get a text: his back went out overnight, he cannot work. The lift is the critical-path item for the day. If the steel does not go up by 11 AM, the ironworker crew (5 staffers at $32-$38/hr) sits idle and you carry the float. A skipped lift day on this project pushes the topping-out date by a calendar day. Critical-path slip cost on a $4M commercial build: $5,000-$50,000 per day in carrying cost, equipment idle, and downstream-trade rebooking.

Mechanism · how a small event becomes a budget hit

Walsh has 82 minutes to find a certified crane operator who is local, eligible, and not at OT. He starts dialing. The local operator pool is small. Half the calls hit voicemail at 5:40 AM. Two operators say yes from separate dispatchers and you renegotiate. 45-90 minutes of phone calls. If nobody picks up, the lift slips. With 8-12 day-of operator/foreman no-shows a year and 2-3 of them on critical-path days: $10,000-$150,000 a year in critical-path slip cost the GC absorbs from coverage gaps alone.

Operator math · where the dollars come from

2-3 critical-path operator no-shows/year × $5,000-$50,000 of slip cost per day = $10,000-$150,000/year of avoidable critical-path slip. Plus 8-12 non-critical-path no-shows/year × 45-90 min of Walsh's time × $52/hr fully-loaded super rate = $312-$936 per incident in super phone time = $2,500-$11,200/year of pure scramble time.

The XShift rule that catches it

When Reyes's call-off lands, Autopilot Call-Off runs 7 quick checks on every operator on the roster in under a second. The checks: (1) is the staffer eligible at Midtown; (2) do they have the right role — the "crane operator" role on their profile, plus the "signal person" role where the lift needs one, including backup roles if multi-role is on; (3) is the day a full day off for them; (4) do they have a time window off; (5) does any custom park rule (the anti-pair rule, the weekly hour cap rule) block or warn on this pick; (6) are they already booked or about to hit overtime; (7) are they on approved time off. Non-overtime candidates get sorted first. Because the call-off is less than 7 days out (the default threshold), Autopilot fires pickup texts to everyone who fits, with a one-tap accept. Reyes's backup operator one-taps accept at 5:54 AM. Walsh never picks up the phone. Heads up: the checks run against rules you have set. They do not enforce regulatory requirements XShift has no knowledge of — those still live in your contract paperwork.

Payoff · money

$10,000-$150,000/year of critical-path slip cost from operator no-shows stays in the account. $2,500-$11,200/year of super scramble time back. Walsh covers the lift in 16 minutes instead of 82.

Autopilot Call-Off · 7 quick checks + auto-assign or pickup texts based on how soon the call-off hits
03
Week 2 · Tuesday, 6:55 AM

MEP rough-in dependency miss — electricians cannot start until plumbers finish.

Trigger

On Westside Office Fitout, the MEP rough-in sequence is plumbers first (rough waste lines and water supply behind the wall), then electricians (run conduit and pull wire), then HVAC. The plumber sub was scheduled 7 AM-3 PM. The electricians were also scheduled 7 AM-3 PM. The journeyman electrician shows up at 7 AM, finds the plumbers still installing the waste line on the back wall, and stands around for 90 minutes with his three apprentices. At $34-$42/hr for the journeyman plus $22-$28/hr × 3 apprentices, the standing-around cost is roughly $100-$166 of paid idle per 15 minutes. 90 minutes of idle: $600-$1,000 of paid-but-unproductive labor on a single morning.

Mechanism · how a small event becomes a budget hit

MEP coordination misses look small per-incident but compound. They happen 8-15 times a quarter on a busy commercial fitout. Each miss costs $400-$1,500 in paid idle. $3,200-$22,500 per quarter per active fitout project. The root cause is that nothing in the schedule said "electricians cannot start at 7 AM — they need to start at 8:30 AM after the plumbers clear." The shift windows do not enforce trade-sequence dependencies.

Operator math · where the dollars come from

12 MEP idle incidents/quarter × $700 average paid idle per incident × 4 quarters = $33,600/year of preventable paid-idle on one active fitout. Across 2 active fitouts a year for a typical GC: $67,200/year.

The XShift rule that catches it

Set two per-window staffing rules: "Westside, Tuesday 7 AM to 8:30 AM rough-in block — need 1 plumber foreman plus 2 plumbers." Then "Westside, Tuesday 8:30 AM to 3 PM rough-in block — need 1 electrician foreman plus 1 journeyman electrician plus 3 apprentices." The rules fire only when shifts are saved at those exact windows. The AI Copilot honors the rules when it builds the week. The grid blocks any electrician shift that would start at 7 AM in that block. The dependency is now in the schedule grid, not in the foreman's head. Park sets the rules once at the start of the rough-in phase, and the AI Copilot enforces them across the 4-week sequence.

Payoff · money

$33,600-$67,200/year of paid-idle from MEP coordination misses stops bleeding. Park sets the dependency once, the Copilot runs it every week, the electricians walk onto a finished plumbing wall.

Staffing rule · per-window minimums (exact time match)
04
Week 2 · Friday, 2:14 PM

OSHA-cert lapse on safety officer Hollings — contract-clause exposure.

Trigger

Hollings, your safety officer on Midtown Tower, has the OSHA 30 cert that the GC contract requires for site-level safety oversight. His cert lapsed 8 days ago and HR did not flag it. He is on the schedule for next Monday 7 AM-3 PM. If he works the shift without a current cert and the GC's prime gets audited (contract-clause penalty: defensible operator concern, with $10K-$50K per-incident penalty clauses common in commercial GC contracts), the GC eats the penalty.

Mechanism · how a small event becomes a budget hit

XShift does not store cert expiry dates inside the scheduler. What XShift does provide is the role workaround. Hollings carries the "long safety course done (super)" role on his profile. The staffing rule on Midtown is set to "Midtown, Monday 7 AM to 3 PM safety oversight — need 1 staffer with the long safety course done." When HR finds out the cert lapsed, the fix is to remove the role from Hollings's profile. The AI Copilot will no longer assign Hollings to that role, and the grid blocks any direct assignment.

Operator math · where the dollars come from

Defensible operator concern: contract clauses commonly assess $10K-$50K per cert-lapse incident on commercial projects, plus the project-side exposure if a regulatory audit catches an uncertified safety officer on a critical site (cite as operator concern, not as a verified XShift statistic). A single cert-lapse incident on the wrong project can compound into project-shutdown days at $5K-$50K/day of carrying cost. 1-2 lapse events a year that the GC catches manually: $20K-$100K/year of avoidable exposure.

The XShift rule that catches it

Role-based assignment is the workaround. The "long safety course done (super)" role on Hollings's profile is the eligibility gate. Update the HR system the moment the cert lapses, pull the role off the staffer profile, and XShift will not put him on the shift. The staffing rule on Midtown ("need 1 long-safety-course super on this shift") blocks the shift from saving without an eligible staffer. Walsh sees the open requirement, swaps in Park (who has the same role), and the requirement clears.

Payoff · money

Defensible $20K-$100K/year of contract-clause exposure managed through the role-as-cert workaround. Hollings does not walk onto a job he is no longer cert-eligible for. (We are not claiming XShift guarantees OSHA compliance. We are saying the role gate does the work the contract clause requires.)

Role-based assignment · cert-as-role workaround
05
Week 3 · Wednesday, 11:08 AM

Foreman Aldana double-booked across Park East and Westside on the same Tuesday.

Trigger

Aldana is your sharpest foreman. Park East needs him on Tuesday for the punch-list walk on the second-floor units (closing $180K of progress billing). Westside needs him on Tuesday for the trim-carpentry coordination (the only week the finish carpenter sub has open). Two project managers booked him from separate spreadsheets on Monday afternoon. Nobody noticed until Aldana walked into Park East on Tuesday morning and his phone started ringing from Westside.

Mechanism · how a small event becomes a budget hit

Multi-site foreman double-booking is the most expensive mistake a GC running 3-6 jobsites makes, because the GC's best foremen are exactly the staffers who are always in demand on multiple sites. The cost is not "Aldana works one site instead of two." The cost is the delayed billing on the site Aldana abandons (Westside trim-carpentry coordination slips a day, finish carpenter sub re-billed at $1,200/day kill-fee) plus the progress-billing slip on the site Aldana stays at (Park East punch-list runs without his Westside-coordinated decisions, three items get re-walked).

Operator math · where the dollars come from

8-15 multi-site foreman double-bookings a year × $2,500-$8,000 of slip + kill-fee + re-walk cost per incident = $20,000-$120,000/year of avoidable multi-site coordination cost on a 4-jobsite GC.

The XShift rule that catches it

Multi-location is on at the org level (base tier, no add-on). Aldana exists as one staffer profile that both PMs see. When Park's PM books Aldana to Park East on Tuesday 7 AM to 3 PM, the AI Copilot sees Aldana's hours across the whole org. When Westside's PM tries to book Aldana to Westside on Tuesday 7 AM to 3 PM, the grid blocks the second save because Aldana is already scheduled. If both PMs ask the AI Copilot "is Aldana available Tuesday morning?" the Copilot answers with the existing assignment. The Copilot also flags shifts that still need coverage — including the Westside trim-carpentry block that lost Aldana. Park and the Westside PM resolve the conflict on Monday afternoon because the build itself surfaced it Sunday, when there is still time to reroute.

Payoff · money

$20,000-$120,000/year of multi-site foreman double-booking cost stops bleeding. The schedule grid becomes the single source of truth across all 4 jobsites instead of 4 separate spreadsheets nobody reconciles until the conflict is already on the floor.

Multi-location + AI Copilot conflict detection at schedule build
06
Week 3 · Sunday, 5:42 PM

Walsh rebuilds the 3-site weekly grid by hand. For the 14th week in a row.

Trigger

Sunday afternoon. Walsh sits at his kitchen table. Yellow legal pad on the left, three spreadsheet tabs open on the laptop — one tab per active jobsite. He started at 1 PM. It is now 5:42 PM. He has 7 more hours ahead of him. His wife and his two kids are at her mother's because they know not to plan a Sunday dinner during construction season. The dog is asleep under the table. The cold cup of coffee from 3 PM is still next to the legal pad. This is week 14 of this exact Sunday. He has not eaten Sunday dinner with his family since March.

Mechanism · how a small event becomes a budget hit

Building next week's schedule by hand for 3 active jobsites and 110 staffers is not a 2-hour task. It is a 14-16 hour task. Every cell in the grid has to be checked against a stack of constraints that all sit in Walsh's head. The approved time off sitting in a separate Google Doc. The roles each staffer is qualified for — which crane operators carry the signal-person cert, which framers can run a chop saw versus who is still in training, which electricians did the long safety course, which laborers carry the confined-space cert. The conflicts — Aldana and the journeyman electrician cannot be on the same crew after the blow-up. The minimum rest between shifts — the crane operator who closed Friday at 4 PM cannot open Saturday at 6 AM. The running OT count against the 40-hour line. The max hours per week per staffer. The max shifts per week. The min shifts per week for the apprentices who need the hours for their training. The availability windows. The weekly labor budget per jobsite ($38K Midtown, $26.5K Park East, $14K Westside, $11K River Bend). The pairing requirements — Reyes the crane operator paired with a signal-person-certified rigger, every lift block. The reliability data — the MEP sub at 88.6%, the framing crew at 97.9%. The trade-sequence dependencies — plumbers before electricians on rough-in. Every one of these lives in Walsh's head. He cross-references them, cell by cell, for 7 days × 5-15 shifts per day × 3 jobsites = 105-315 individual assignments. Walsh misses 5-10 constraints every Sunday no matter how careful he is. Half the misses get caught Monday morning by a foreman calling him. The other half blow up Tuesday or Wednesday on the floor.

Operator math · where the dollars come from

14-16 hours per Sunday × 50 Sundays per year = 700-800 hours per year of superintendent time. At a fully-loaded superintendent rate of $52/hr (the $38-$55/hr range on a $90K-$130K salary, plus burden), Walsh is spending $36,400-$41,600 a year of his own most-valuable hours on a task the software should do. That is the time math. The hidden math is harder: every Sunday miss that blows up Wednesday on the floor costs $500-$3,000 in coverage scramble, schedule-violation OT, or short-staffed work that gets re-done. 5-10 misses per week × 50 weeks × $1,500 average = $375,000-$750,000 a year of avoidable Sunday-miss cost across 3 jobsites. Plus the personal cost — Walsh's marriage taking a hit because he has missed Sunday dinner with his family since March. That one is not in the P&L, but it is in the retention math (avg superintendent tenure at a GC with this Sunday pattern: 2-3 years; without: 6-8 years).

The XShift rule that catches it

On the schedule tab, Walsh asks the AI Copilot to build next week. The Copilot reads every staffer profile, every active custom rule, every staffing rule, every approved time-off request, every availability window, and every preference. It checks 13+ rules per staffer per shift across all 3 jobsites at the same time: (1) approved time off (auto-excluded); (2) role match (electricians stay on electrical shifts, the supers with the long safety course done fill the shifts that need them, the cert roles from Widget 3 all apply); (3) anti-pair (Aldana and the journeyman electrician stay on separate crews); (4) minimum rest (no Friday-close-to-Saturday-open back-to-back); (5) weekly hour cap; (6) weekly shift cap; (7) per-shift hour cap; (8) overtime risk (the scanner flags the 41st hour before the shift saves); (9) availability windows; (10) employee preferences; (11) weekly labor budget per jobsite (Midtown at $38K, Park East at $26.5K, Westside at $14K, River Bend at $11K — the rule blocks the save when the week would exceed); (12) daily labor budget on the days Park has set ceilings on; (13) the per-window staffing rules. The Copilot also looks at the reliability data (who actually shows up). Mode is "spread the hours fair" or "pack the best staffers full" — you pick. The Copilot builds the full week in seconds. By default, built schedules do not auto-publish — Walsh reviews, edits, and publishes when he is ready. The 5-rule cap on custom rules forces Walsh to pick the 5 most important rules per quarter. The staffing rules (per-location-role and per-window) are a separate type, not part of the 5-rule cap. Heads up on the honest limits: the AI Copilot chat builds the full org cycle, not just one jobsite — to build per-location, use the schedule-run API or filter the result in the schedule view. The Copilot also does not support building only specific days of the week ("Friday and Saturday only"), only date ranges. Walsh sets the range, picks the mode, and the full 3-jobsite week builds in seconds.

Payoff · time

700-800 hours per year of superintendent time back. That is $36,400-$41,600 of senior labor reclaimed every year on a single jobsite leader. Across the typical mid-size GC running 2-3 supers doing the same Sunday rebuild: 1,400-2,400 hours and $73K-$125K/year back. $375,000-$750,000 of preventable Sunday-miss coverage cost stops bleeding because the Copilot does not miss the constraints Walsh's tired brain misses at hour 11. Walsh eats Sunday dinner with his family for the first time since March. The retention math on the superintendent role itself shifts — burnout-driven super turnover at a GC running this Sunday pattern runs 30-50% over 5 years. Take the Sunday rebuild back and that drops toward industry baseline. Note: the AI Copilot is a generation tool — Walsh still reviews, still edits, still publishes. The Copilot validates the constraints he has configured. It does not invent constraints that are not in the rules. It does not enforce OSHA. It does not enforce contract clauses. It does what every senior superintendent in the country wishes the spreadsheet did — read all the constraints at once, in seconds, every week, without forgetting any of them.

AI Copilot · weekly schedule generation across multi-jobsite org
07
Week 4 · Thursday, 3:18 PM

End-of-month OT spike across 4 jobsites. Autopilot Overtime Scanner catches it Tuesday.

Trigger

End of month. Park's progress-billing target requires closing 4 milestones across 4 jobsites by Friday. The foremen are pushing crews to finish. By Tuesday afternoon, the Autopilot Overtime Scanner has flagged 17 staffers across the 4 jobsites who are projected to land in overtime by end-of-week. 9 are framers (base $22-$28/hr, OT premium $11-$14/hr). 4 are journeyman electricians (base $34-$42/hr, OT premium $17-$21/hr). 3 are plumbers (base $28-$38/hr, OT premium $14-$19/hr). 1 is a crane operator (base $32-$45/hr, OT premium $16-$22/hr).

Mechanism · how a small event becomes a budget hit

Without the scanner, the OT does not show up until next week's payroll preview. By then the premium is already booked and the conversation is "we will watch it next month." End-of-month milestone-push OT compounds across 12 months — typical GC running 4 jobsites absorbs $80,000-$240,000/year of preventable end-of-month OT premium that nobody catches until the year-end review.

Operator math · where the dollars come from

17 staffers × average 6 OT hours by end-of-week × average $15/hr OT premium = $1,530 of OT premium on a single week's milestone push. Multiply across 12 end-of-month pushes a year × 4 jobsites = $73,440/year on the conservative end. On the high end with the higher-rate trades concentrated: $200,000+/year.

The XShift rule that catches it

Two mechanisms work together. First, the Autopilot Overtime Scanner runs on a schedule you pick — every 15 minutes by default, but you can switch to hourly, daily, weekly, or on every shift change. It scans the current Sun-Sat week and flags staffers who are about to land in OT. It creates Recommendations with the dollar math: the 1.5x premium, plus the salary-to-hourly math for the few salaried staffers. The scanner does not swap shifts on its own. Park reviews the recommendations and one-taps approve on the ones that make sense — the swap happens in one step. Second, an overtime-block custom rule on the Autopilot page hardens the at-save behavior: "block any shift that would push a staffer over 40 weekly hours." The rule fires at assignment time. The OT does not even land — the foreman sees the block at save and picks a different staffer.

Payoff · money

$73,440-$200,000/year of end-of-month OT premium stays in the account. Park gets the recommendations Tuesday afternoon and has the conversation with foremen before the Wednesday-Thursday push instead of after. Heads up: the OT scanner skips staffers you have marked as OT-exempt on their profile. It also needs Workforce Insights turned on and the overtime scanner setting flipped on in the org settings.

Autopilot Overtime Scanner + overtime-block custom rule
08
Week 4 · Friday, 4:50 PM

Subcontractor coverage gap — too many drywallers on PTO the same week.

Trigger

It is the last Friday of the month. Park is closing the schedule for the first week of next month. The drywall sub has 6 of its 14 staffers requesting the same PTO week (the week after the Park East condo finish-out wraps — they all booked vacations). On a 14-person crew, losing 6 means the next-week ceiling drywall on Midtown only has 8 staffers to do work scoped for 12. The sequence depends on the drywall crew finishing by Wednesday so the painters can start Thursday. If the drywall crew runs short, the painter sub gets pushed and the GC eats the painter kill-fee plus the cascade.

Mechanism · how a small event becomes a budget hit

Manual scheduling means Park reads the PTO requests one at a time. The 5th request that creates the coverage gap arrives Friday afternoon, gets approved by reflex, and the gap does not show up until Monday morning when the next-week schedule lands. The painter kill-fee runs $1,200-$2,400/day for a re-bill. The cascade through the rest of the trade sequence: $5,000-$15,000 per gap event. 4-8 sub-coverage gap events a year on a 4-jobsite GC: $20,000-$120,000/year.

Operator math · where the dollars come from

4-8 sub-coverage gap events/year × $5,000-$15,000 cascade cost per event = $20,000-$120,000/year of avoidable sub-coverage cost. Plus the painter kill-fee: 4-8 events × $1,800 average kill-fee = $7,200-$14,400/year of pure re-bill cost.

The XShift rule that catches it

On the Autopilot page, write a time-off custom rule in plain English: "auto-deny if 4 drywallers at Midtown are already off on that day." The rule fires the moment a time-off request is submitted. The first 4 drywaller time-off requests for that week auto-approve (if other rules clear). Requests 5 and 6 get auto-denied with an email showing the exact rule that fired and the count. The 6 drywallers cannot all be off the same week because the rule will not let them. Park stops finding out about coverage gaps on Friday afternoon — the gap is prevented at submission.

Payoff · money

$20,000-$120,000/year of sub-coverage cascade cost stops bleeding. $7,200-$14,400/year of painter kill-fees avoided. PTO answers go from "Park finds the conflict on Friday" to "instant decision the moment the request is submitted, with the rule cited in the employee email." Heads up: the rule applies to your direct staffers configured in XShift. If the drywall sub manages its own roster on its own tools, the rule applies only to whichever portion of the workforce lives in your XShift org.

Custom rule · time-off overlap cap (per role + per location)
The stacked math

What the dashboard and the incident log add up to. One GC. One year. Conservative end of every number above.

The 6 widgets and the 8 incidents interlock. The weekly labor variance rule on Widget 2 stops the over-budget spend that the end-of-month OT scanner on Incident 7 also catches. The staffing-rule time-window minimums on Widget 4 prevent the MEP coordination misses on Incident 3 from recurring. The role-based cert gating on Widget 3 holds the OSHA-cert exposure on Incident 4 in check. The multi-site rollup on Widget 5 prevents the foreman double-booking on Incident 5 from landing on the floor. The reliability metric on Widget 6 gives Walsh the data to assign critical-path days to crews that actually show up.

Pull the conservative-end annual numbers across the incidents for ONE typical 4-jobsite GC: end-of-month OT spike ($73K-$200K/year, incident #7), labor variance vs budget ($80K-$300K/year, widget #2 across all jobsites), multi-site foreman double-booking ($20K-$120K/year, incident #5), MEP rough-in coordination misses ($33K-$67K/year per fitout, incident #3), critical-path operator no-shows ($10K-$150K/year, incident #2), subcontractor coverage gaps ($20K-$120K/year, incident #8), OSHA-cert lapse exposure ($20K-$100K/year, incident #4), weather-day show-up pay and rework ($9K-$11K/year, incident #1). The typical multi-jobsite GC is leaving $200,000-$600,000 a year on the table that manual scheduling and traditional GC scheduling tools do not catch.

Across a 5-project GC: $1,000,000-$3,000,000 of avoidable operating exposure every year, absorbed quietly across the P&L and booked under "scramble OT," "critical-path slip," "sub kill-fees," "rework," and "we ran a little hot this month."

And the time side: Walsh gets 700-800 hours of superintendent time back per year from the Sunday schedule rebuild alone (incident #6). At a fully-loaded superintendent rate of $52/hr, that is $36,400-$41,600 a year of senior labor reclaimed. Across a GC running 2-3 supers doing the same Sunday rebuild: 1,400-2,400 hours and $73K-$125K/year back. Plus 60-120 hours per year per super in call-off scramble time (incident #2), 8-15 hours back from weather-day texting (incident #1), and the hours that go back into actually walking the jobsite instead of staring at a spreadsheet.

XShift AI is $29/month base + $1 per active staff member. A 130-staffer 4-jobsite GC pays $159/month — $1,908/year — for a tool that protects $200,000-$600,000 of annual bleed. A 5-project GC with 200 staffers pays $229/month — $2,748/year — to protect $1M-$3M. The math is not subtle.

XShift is the only AI construction scheduling tool built for multi-jobsite GCs that catches the OT, the cert gap, the coordination miss, and the foreman double-book at save time — not at the Monday-morning blow-up. This is automated jobsite scheduling for residential construction, commercial construction, and multi-trade scheduling built for crew planning the way real construction labor management works.

Stop bleeding $200K-$600K a year on a problem with a $1,908 answer.

21-day free trial. Not charged in the trial window. Cancel any time. $29/month base + $1 per active staff member after the trial. Walsh gets his Sundays back. The multi-jobsite labor dashboard goes live the moment you publish your first schedule.

XShift AI makes no compliance guarantees — OSHA, contract-clause, or otherwise. The role-based assignment workaround for cert gating is an operational tool that holds the line on whoever you have configured as eligible. Cert tracking itself still lives in your HR system. Operator math figures (critical-path slip, contract-clause penalties, kill-fees) are presented as defensible operator concerns from typical commercial construction projects, not as verified XShift statistics. Every feature claim on this page is cross-checked against the XShift codebase and the audit docs.

AI Employee Construction Scheduling Software | XShift AI