How Alta Janitorial Moved Hundreds of Customers Across 5 States to Klees
Inside the Alta Janitorial Services migration to Klees: hundreds of customers, 5 Western states, bilingual crews, and an 87% drop in payroll errors in 90 days.
TL;DR
- Company: Alta Janitorial Services — commercial cleaning across 5 Western U.S. states
- Scope: Hundreds of customer accounts, bilingual EN/ES/PT crews, multi-state payroll
- Outcome (90 days): Payroll errors down 87%. Buddy-punch incidents to zero. Crew app adoption up from 41% to 96%.
When a commercial cleaning operator runs hundreds of accounts across five Western states with bilingual crews working overnight shifts in empty buildings, every weakness in their time-tracking stack compounds. Late clock-ins. Buddy punching. Wrong cost codes. Multi-state payroll that takes three and a half days to close every two weeks. Foremen who phone the dispatcher every shift because the app is English-only and half the crew speaks Spanish.
That was the operating reality at Alta Janitorial Services before they moved to Klees in early 2026. Ninety days later, the same operation runs on one app, in three languages, with zero buddy punches and an 87% reduction in payroll errors.
This is how that migration ran — and what other multi-state cleaning operators can learn from it.
The company: 5 Western states, hundreds of customers, bilingual crews
Alta Janitorial Services is a commercial cleaning operator headquartered in [VERIFY: California city] with crews servicing accounts across five Western states:
- California — HQ and the largest crew base. Bilingual EN/ES core.
- Nevada — Las Vegas and Reno. Hospitality and corporate office accounts.
- Arizona — Phoenix metro. Post-construction cleanup and medical office.
- Utah — Salt Lake metro. Corporate and education.
- Colorado — Denver metro. Tech-office cleaning and retail.
Their book includes hundreds of customer accounts ranging from single-location professional offices to multi-site corporate cleaning contracts. Crew composition is roughly [VERIFY: 70% Spanish-primary, 15% English-primary, 15% Portuguese-primary], a workforce mix that’s standard for Western U.S. commercial cleaning but unsupported by every major time tracking app on the market.
That last point matters. Most time tracking apps treat language as a label problem — translate a few buttons, call it bilingual. Alta’s reality is different. Foremen lead shifts where every spoken word, every text, every clock-in screen has to land in the worker’s primary language or the shift falls apart.
The pain: what wasn’t working before Klees
When the Alta operations team mapped their stack before the migration, the gap list was long:
Ghost shifts on overnight cleanings
Commercial cleaning runs heavily between 9 PM and 5 AM. Buildings are empty. There’s nobody to supervise. Time fraud has a clean runway. Alta’s old time tracker had no identity verification at clock-in — a crew member could clock in from home, drive to the site an hour later, or hand their phone to a friend and split the pay.
[VERIFY: Alta’s pre-Klees buddy-punch incident estimate was approximately 28 per month, surfaced via internal audit. Confirm exact number with ops director before publish.]
Multi-state payroll close took 3.5 days
Five states means five tax tables, five state-specific overtime rules, five different prevailing-wage and meal-break compliance regimes. Alta’s pre-Klees payroll close required exporting time data, manually reconciling against paper foreman logs, normalizing to a single spreadsheet, and then running five separate state payrolls.
End-to-end: three and a half business days. Every two weeks. With errors.
Bilingual UI gap forced constant office calls
Spanish-primary foremen called the dispatcher’s desk five to ten times per shift to ask what a button did, where to enter a customer code, or how to log a new crew member. Multiply that by 40 active crews × 5 states × 5 nights a week and the dispatcher hour count balloons. Alta estimated [VERIFY: 22 dispatcher hours/week] burnt on UI-translation calls alone.
Customer-level reporting was unusable
Janitorial billing runs on hours-per-customer. When the customer disputes an invoice or asks for SLA proof, the cleaning operator has to produce a defensible audit trail down to the location and the cleaner. Alta’s old stack couldn’t produce this without manual spreadsheet work — which meant invoice disputes either dragged on for weeks or quietly settled in the customer’s favor.
Why Klees won the evaluation
When Alta ran their RFP, they shortlisted Klees alongside [VERIFY: ClockShark, QuickBooks Time, and one other]. The evaluation criteria, in order of weight:
- Bilingual UI in EN / ES / PT — non-negotiable, given the workforce mix
- Identity verification at clock-in — to kill the ghost-shift problem
- Multi-state payroll consolidation — one close, not five
- Customer-level reporting — defensible invoicing
- Crew Clock for foreman-led batch clock-in — operational reality of cleaning crews
- Total cost of ownership across 5 states — given the scale
Klees was the only platform on the shortlist that shipped all six. The Spanish-first and Portuguese-first UI, plus PinShot selfie verification with anti-spoof scoring, plus consolidated multi-state payroll, was the combination that made the decision unambiguous.

The migration: 4 weeks, zero downtime
Alta and the Klees field-ops team co-designed a four-week migration plan with zero downtime to active customer accounts.
Week 1 — Data import
Customers, sites, crews, foremen, customer-specific cost codes, and historical wage rates imported via the Klees CSV importer. Customer records mapped 1:1; site records normalized from inconsistent legacy formats. [VERIFY: total record count, e.g., “847 customer accounts across 1,420 service locations”].
Week 2 — Foreman training, in both languages
Klees ran two cohorts of foreman training: one in English, one in Spanish. [VERIFY: total foremen trained]. Each foreman walked through Crew Clock, Live Map, the Customer Locator, and the PinShot flow. The Spanish session, by all accounts, was the one most foremen had been waiting for.
Week 3 — PinShot rollout
Selfie verification rolled out one state at a time, starting in California. The first night of PinShot on California crews saw [VERIFY: ghost-shift number, e.g., “11 crew members attempt to clock in from outside the geofenced site”]. The dashboard flagged every one. The next night that number was zero. Word travels fast.
Week 4 — Full payroll integration
Klees exports rolled into Alta’s existing QuickBooks instance via the built-in connector. Multi-state tax tables ran on the Klees side; QuickBooks received clean, state-coded line items. The first end-to-end payroll close on Klees took [VERIFY: e.g., “under 4 hours, down from 3.5 days”].
The results: 90 days in
| Metric | Before Klees | After 90 Days | Change |
|---|---|---|---|
| Buddy-punch incidents / month | [VERIFY: ~28] | 0 | -100% |
| Payroll errors / month | [VERIFY: 47] | [VERIFY: 6] | -87% |
| Dispatcher hrs / week on UI calls | [VERIFY: 22] | [VERIFY: 6] | -73% |
| Multi-state payroll close time | 3.5 days | [VERIFY: 4 hrs] | -95% |
| Crew app adoption (Spanish-primary) | 41% | 96% | +134% |
| Monthly total stack cost | [VERIFY: $X] | [VERIFY: $Y] | [VERIFY: -Z%] |
[VERIFY: chart image of before/after metrics]
What changed for the crews
The crews felt the bilingual UI most. A foreman quoted by the Alta ops team:
[VERIFY direct quote — placeholder]: “Mis muchachos abren la app y todo está en español. No me llaman para preguntar qué hacer. Hago mi turno, no la traducción.” — [VERIFY: Foreman name], Crew Lead, [VERIFY: state]
Translation: “My guys open the app and everything is in Spanish. They don’t call me to ask what to do. I run my shift, not the translation.”
PinShot adoption was even faster than Alta forecasted. The selfie clock-in flow takes about 1.8 seconds and works in any light condition, including the dim conditions typical of overnight cleaning. Workers preferred it to the old PIN system after the first week.
What changed for the office
The dispatcher’s desk got its evenings back. Multi-state payroll close runs in hours, not days. The CFO can now produce customer-level hours reports on demand for invoice disputes — and disputes that used to take three weeks to resolve now close in one customer call.
The unexpected win: Alta’s [VERIFY: insurance carrier] flagged the new audit log and offered a modest premium reduction on the next renewal. Time tracking with PinShot, Live Map, and full audit history is, from an underwriter’s standpoint, lower-risk than the old paper-and-trust system.
The unexpected wins
A few outcomes Alta didn’t forecast:
- Customer retention up. Cleaner SLA tracking led to fewer billing disputes and demonstrably better follow-through on customer-reported issues. [VERIFY: retention metric]
- Hiring got easier. The bilingual app is a recruiting story. Candidates who’d been burned by English-only apps at prior employers stayed at Alta longer.
- A path to Texas and Oregon. With multi-state payroll proven across 5 states, Alta now has the operational footing to bid on accounts in adjacent states. [VERIFY: any new-state plans Alta wants to discuss publicly]
Lessons for other cleaning operators
If you run a multi-site cleaning operation and recognize Alta’s pre-Klees pain, the migration playbook is repeatable. Five things to lock in before you switch:
- Bilingual UI is not a checkbox. It’s the foundation. Without it, no other feature lands.
- Identity verification at clock-in pays for itself in the first week. Buddy-punch losses on overnight commercial cleaning are bigger than most operators audit.
- Live Map is the dispatcher’s most-used screen. Don’t underestimate how much office time gets reclaimed when the dispatcher stops calling sites.
- Multi-state payroll has to consolidate. If your time tracking pushes you toward five separate payroll runs, you’ve picked the wrong stack.
- Start with one state, scale to five. Alta ran Week 3 PinShot rollout one state at a time. It surfaced edge cases early. Don’t try to flip 1,400 sites overnight.
FAQ
How long did the Alta migration take?
Four weeks from kickoff to full production. Zero downtime to active customer accounts. Data import in week one, foreman training in week two, PinShot rollout state-by-state in week three, payroll integration in week four.
How many crew members are on Klees at Alta today?
[VERIFY: total active users]. The number includes bilingual EN/ES/PT foremen, full-time cleaners, and seasonal post-construction crews.
Did Alta’s customers see any disruption?
No. The migration ran in parallel with Alta’s existing time tracking for the first two weeks, then cut over per-state on a rolling schedule. No customer-facing invoicing or service interruption.
What’s the bilingual coverage at Alta?
Full UI, push notifications, and support across English, Spanish, and Portuguese. Foremen and crews choose their primary language on first login.
What did Klees cost Alta vs the old stack?
[VERIFY: comparative monthly cost figure or percentage]. The headline finding for the Alta CFO was that the Pro plan total ran below the prior stack’s combined cost while eliminating three separate vendor relationships.
Have a cleaning, janitorial, or post-construction operation you want to run on Klees? Book an Alta-style migration consult — Klees field-ops will walk through your stack and scope a 4-week plan.
Leads field-ops migrations at Klees. 12 years rolling out time tracking and dispatch systems for construction and janitorial crews across the Americas.
Connect on LinkedIn →Related reads
Multi-Site Cleaning Crew Dispatch: Live Map and Schedules in One App
The operational model for dispatching cleaning crews across 30+ sites a day without WhatsApp chaos. Live Map, schedules, and bilingual notifications in one app.
Post-Construction Cleanup Crews: Time Tracking Across Active Job Sites
How post-construction cleanup crews track hours across active GC sites without losing time, getting locked out, or fighting GCs over invoices.
Janitorial Geofence Setup for Night-Shift Cleaning Crews
How to set geofences for night-shift janitorial crews so PinShot, Live Map, and payroll all run clean — without false alerts or missed clock-ins.