Click a day to toggle. Then adjust start/end times per day.
⚡ Quick set:to
Mon
to
Tue
to
Wed
to
Thu
to
Fri
to
Sat
to
Sun
to
Used by the Weekly View income bar. Red below Need, yellow between, green at/above Want.
Need ($/week)
Want ($/week)
Add Quick Link
Rocky · Operations Tool
Live
System · …
🔗 Quick Links
🚨 Daily Alerts
💬 Dashboard
✨ Alpha
🧾 New Quote
📂 Prospects
📋 Hiring
👥 Customers▾
🧾 New Quote
🔐 Client Vault
👥 Customer Management
🧮 Custom Quotes
📅 Scheduling▾
🗓️ Weekly View
📅 Weekly Tech View
⚡ Quick Spot
📍 Master Schedule
💳 Billing▾
💳 Credit Card Processing
🏦 Settlements
💰 Outstanding Balances
🚗 Routing▾
🚗 Route Issues
🗺️ Route Management
🔄 Reassign Route
📋 Inspections
⏱️ Timing▾
👤 Staff Timing
🏠 Client Timing
📊 Staff▾
📊 Staff Performance
📈 Company▾
📈 Company Performance
🏆 Scorecards
💥 Breakages
📊 FB Weekly Ad Audit
📦 InventoryTOP SECRET
📉 Media
⚙️ App Settings
🛠️ Build Status
⚙ Settings 🔒
⏱️ Staff Timing
Room by room training times logged by techs in the field
Loading…
📋 Inspections
Quality Check Home Inspections across every client and every tech, newest first
🔍
Loading inspections…
💥 Breakages
Breakage reports from the phone app and office entries, newest first
🔍
➕ Log a breakage for the office
For breakages a technician reported by phone or in person. It shows in the list below and everywhere breakages appear, marked as an office entry.
Loading breakage reports…
💳 Credit Card Processing
Declined card payments (bounced cards) from CardPointe, grouped by client and day, newest first
Export the Authorizations report from CardPointe and import it here. Only DECLINED rows are kept, grouped one event per client per day. Re-importing the same file adds nothing.
🔍
Loading declined payments…
🏦 Settlements
Daily funding from CardPointe, pulled nightly by the robot. Read-only by design: settlement records are financial reconciliation data and cannot be deleted from this screen.
🔍
Loading settlements…
🚨 Daily Alerts
The morning command screen. Card failures landing on today's route, notes for the day, a calendar to leave a message on a future day, and a peek at what's coming. Read this before the day runs, not after.
Loading daily alerts…
🛠️ Build Status
Where every Rocky build stands, in plain English. Private to you. Grouped by what needs to happen next.
Loading build status…
💰 Outstanding Balances
Unpaid invoice balances from MaidCentral, pulled nightly by the robot. A ledger, not an alarm: rows leave this list by getting paid in MaidCentral. Work each invoice with the status, notes, and task tools inside.
Loading outstanding balances…
🗂️ Conversations
Loading…
✨ Alpha
Ask about balances, declines, deposits, transactions, preferred techs, the schedule, staff productivity — or ask for an open spot for a new client and Alpha will search the schedule with real road drives. Alpha suggests, it never changes anything.
⚙️ App Settings
Admin only. Manage quick links and other Rocky-wide settings. More sections will land here over time.
🔗 Quick Links
Bookmarks that open in a new tab. Anyone signed into Rocky can click them; only admins can add or edit them. Drag the ⠿ handle to reorder; the order carries to the phone app.
Add link
Who sees this
Leave both checked to show it everywhere. Techs see Technician items in the field app Resources screen.
Loading…
🎥 Office Resources Office only
Training videos for office staff, grouped into folders. Techs never see these. Add a folder, then add videos to it by pasting a Loom or YouTube share link. Drag the ⠿ handle to reorder folders or videos.
Add video
Loading…
💬 Dashboard
Live client and staff texts from GoHighLevel. Reply right here.
● LIVE, refreshes every 10s
—
—
🔁
Clients Service Needed
Type a client's name to pull their info from the Client Vault. Saves automatically. Click ✕ once they're back on the schedule in MaidCentral.
📋
Clients Waiting
Anyone can add a client here. Saves automatically. Same list as the Master Schedule tab.
📋 Assigned Tasks 0
No tasks yet. Hit “+ New Task” to add one.
🎫 Open Tickets 0
Loading tickets…
💬 Texts
Clients
Loading conversations…
Staff
Loading conversations…
Prospects
No prospects.
Applicants
No applicants.
Unassigned Texts
No unassigned texts.
💬 Slack — Direct Messages
Loading Slack…
💬 Slack — Channels
Loading Slack…
✉️ hello@ Inbox
Loading inbox…
Pick a channel or DM on the left.
Slack messages will show here.
Pick a channel or DM on the left.
Slack messages will show here.
Pick an email on the left.
Emails will show here.
Move Contact
Moving to
Incorrect PIN
🔐 Client Vault
Everything about one client in one place. Visits, techs, scorecards, allowed vs actual hours.
📋
Clients Waiting
Anyone can add a client here. Saves automatically. Click ✓ Scheduled when they're on the schedule.
⚙ Scheduling Rules
Thu
Fri
1
New Client
Productivity adjustment applied per tech automatically.
🧹 Initial Deep Clean
One-time. Stack up to 5 techs.
MonTueWedThuFriAny
Pick one or more days. "Any" lets Rocky place it on whichever day fits best.
DeepGeneralMove BasicMove Full
🔁 Recurring Service
After deep clean (±1 wk flex).
MonTueWedThuFriAny
WeeklyBi-WeeklyEvery 4 WeeksOne-Time
Week 1Week 2Week 3Week 4Any
2
Open Slot Results
📋
Ready to match
Enter a new client address, job hours, and frequency then hit Find Open Slots.
📅 Tech Availability
Open gap (≥1.2 hrs)
Fits your client
⚡
Fill Open Hours
Shows techs with open time and nearby routes on each weekday.
2
Best Open Slots
⚡
Find a one-off opening
Use this for cancellations, first cleans, or deep cleans. Checks weekly dispatch for open hours near your address.
Loading...
All
Has Openings
Fully Booked
🚗 Route Issues
Flags drive times over 15 minutes between consecutive jobs.
Loading...
FILTER:
🚗
Click Scan for Issues to start
This will check every tech's daily route for gaps over 15 minutes between jobs. Uses Google Maps API. Results are cached to minimize cost.
📊 FB Weekly Ad Audit
— Meta Ads Performance
📁 CSV Mode
Campaign Performance
Campaign
Status
Results
Cost/Result
Spent
Budget
Reach
Impressions
Upload a Facebook Ads CSV or connect Meta API to see campaigns
🔗 GHL Lead Cross-Reference
—
Cleaning Leads
tagged "facebook cleaning lead"
—
Hiring Leads
tagged "fb hiring lead"
Connect GHL integration to pull live lead counts
🤖 AI Audit Summary
Upload ad data then click Run Audit for AI-powered recommendations
📁 Upload Facebook Ads CSV in Settings → Facebook Ad Performance CSV | Live Meta API connection coming soon via FB Connector MCP
🗺️ Route Management · Daily Commute Monitor
Rule: gap between clock out and clock in minus 10 min (5 load + 5 unload) = expected drive window. PASS within 7.5 min margin. TIGHT (yellow) 7.5 to 10 over. FAIL (red) more than 10 over. Targets to run automatically each weekday at 6 PM.
Loading...
🔄 Reassign Route
⚠️ This is a planning guide only. Actual reassignments happen in Maid Central. Use this to evaluate the best fit before making the moves there.
MODE:
Jobs scheduled on/after this date will need reassignment.
Select a departing technician to see the reassignment plan.
🧾 New Quote
Run the live Ricochet quoter for a new client. The quote saves automatically and the contact lands in Ricochet with the tag, fields, and a dated note.
Could not load the quoter. Check your connection and try again.
📂 Prospects
Everyone who got a quote, grouped by the tool that quoted them. Repeat submissions from the same person are merged into one contact — open the caret to see each quote. Click a prospect to see or re quote them.
Loading prospects...
📉 Media
Where leads fall off, per ad tool. Own your attribution: spot out-of-area waste you are paying for, and where good leads quietly die.
Loading media data...
📋 Hiring
Live recruiting pipelines from the Hiring Ricochet account. Drag a card to move it, the move writes back to Ricochet.
Enter the count next to each room. Leave blank or 0 to skip.
Click a section to expand. Set quantity (or check) to apply. % adjustments apply to that column's total.
📋 Pricing Reference
People mult: 1.00 if ≤4, +5% per person over 4
Pet mult: 1 + 0.04 × shedding pets
Condition (Deep/Move only): Excellent 1.00 · Good 1.05 · Average 1.10 · Dusty 1.40
SqFt mult (Custom/Subtract only): 1.00 ≤3000, +5% per 1k over
Custom factor: 1.35 × room minutes
Subtract deduction: 60% of room minutes
No $200 minimum.
2
Quote Results
🧮
Ready to quote
Fill in the inputs and hit Calculate Quote.
📊 Staff Performance
No data yet — upload CSVs in Settings
📥
Upload your 3 staff CSVs to see reports
Productivity · Attendance · Scorecards — all in Settings
Team Roster
Sort:
🚩 Flags & Watchlist
🏆 Scorecards
Every customer scorecard, newest first.
📥
No scorecards loaded yet
Run rccupdate in Terminal then click ☁️ Pull latest above, or upload Scorecard Results CSV in Settings.
Sort:
Filter:
All scorecards
👥 Customer Management
Rolling lists that need attention. Excluded items live in the cloud so Nina and Derek see the same list.
📥
Loading customer data...
📈 Company Performance
All revenue numbers come from the Dispatch Board (Bill Rate per completed visit), loaded live from the Rocky API. To force a refresh, click the green LIVE pill at the top right.
📊
Loading revenue data...
If you see this for more than 5 seconds, click 🔄 Refresh.
📦 Inventory
Pulling from cloud...
Item
Current
Reorder At
Status
QR
📥
No inventory data yet
Run the rccupdate inventory push or click ☁️ Pull latest above.
⚙ Admin Settings
🗺 Service Area & Pricing Editor
Draw your service zones, sync from Google My Maps, and edit add on names and prices. Changes go live on the quote tool within about two minutes. Enter your admin password once to open it.
Date range picker top right: choose Last 7 days for weekly, or Last 30 days for monthly
Confirm you are on the Campaigns tab (top of table)
Click Reports or the ⋯ menu, choose Export table data
Format: CSV. Breakdown: By campaign
Columns to include: Campaign name, Delivery, Results, Cost per result, Amount spent, Budget, Reach, Impressions
Click Export. File saves to your Downloads folder
Back here, click the upload box above and pick that file
📊 Staff Performance Reports
Configure a GHL workflow with an Inbound Webhook trigger and an SMS step to Derek, Nina, Erich. Paste the webhook URL here. Payload includes client name, score, tier, team, inspector.
Shows a bar on Weekly View — red=below need, yellow=between, green=at/above want
▸
🗑 Deleted Items (0)
Everything deleted from the inbox, tasks, or tickets lands here, stamped with who deleted it and when. Restore brings it back. Only an admin can permanently dump.
Loading…
📞 Call Script
GreetingStep 1 of 12
Step 1 of 12
Greeting (Outbound Call)
Opening
Hi, this is [Rep Name] with . You reached out about getting your home cleaned. Is now a good time to walk through it? It takes about fifteen minutes and you'll have real pricing by the end.
COACHCalm and certain. You are not asking for a favor. You are offering to solve their problem. Slow down.
If Yes
Good. Let's get into it.
If No
No problem. The reason people call us is usually that they're short on time, so I won't add to that. When's a better window, later today or tomorrow?
If they still hesitate, offer to send the quote by email or text instead of forcing the call.
First Question
First, who am I speaking with? First and last name.
(or just last name if already provided)
Step 2 of 12
Rapport
COACHWhat prompted the call today? Ask, then stop talking and listen for what actually matters to them. One line back, not three.
Match What They Tell You
Got it, so you want the place right before people come through. We do a lot of those. It takes the pressure off the whole week leading up to it.
Congratulations. That's a full season of life. Handing the cleaning to someone reliable is one less thing on you. That's exactly what we're for.
That's the most common reason people call us. You shouldn't have to spend your one free evening cleaning. That's our job, not yours.
How many, and what kind? Our teams clean pet homes every day, the fur, the dander, all of it. It's handled.
I appreciate you telling me. Getting support while you focus on yourself is the smart move, and our crews are trained to be thorough and careful in homes that need it.
First time bringing someone in? Then let me make sure you know exactly what you're getting before you decide anything. No surprises.
Who sent you our way? Most of our clients come from people they trust. That says more than any ad we could run.
Step 3 of 12
Details
Service Details
What's the address you'd like us to take care of?
And are you thinking recurring service, or a one-time clean?
If they already said it, just confirm rather than re-ask.
Trust, Stated Plainly
Before we go further, we're a fully licensed and insured company, and our cleaners are W-2 employees, not contractors. That matters more than people realize, and I'll explain why in a minute.
COACHDon't oversell here. State it as fact and move on. The weight comes from how calmly you say it.
Step 4 of 12
Trust (Why We're Different)
Consistency
Most cleaning companies rotate whoever's available through your house. We don't work that way. You get a consistent team that learns your home, so the quality holds visit after visit.
Quality People
Our cleaners are W-2 employees, background checked, trained, insured, and paid well enough that good people stay. When a company uses contractors, that's a choice about cost. We made a different choice on purpose.
Why We're Different (READ SLOWLY)
COACHSlow down. Deliver this with quiet conviction, not enthusiasm. This is the spine of the whole call.
I'll be straight with you, we're not the cheapest option in the area, and we're not trying to be.
Our pricing reflects the kind of company we built: fully licensed, fully insured, and staffed with W-2 employees we screen, train, and stand behind.
When you hire us, you're not just buying a clean house. You're buying the fact that the same trained, insured people show up, that you're covered if anything ever goes wrong, and that the job gets done right without you managing it.
We're not the right fit for someone shopping purely on price, and that's okay. But if you want a company you don't have to think about, that's exactly what we are.
Trust tool: if liability or why does it cost more comes up, reference the Hazelwood Insurance article. It explains why proper coverage protects the homeowner, not just us.
Step 5 of 12
Home
Setup
Now I'll ask a few quick things about the home so the pricing I give you is accurate, not a guess.
Questions to Ask
How many square feet, roughly?
Tip: look it up if they're unsure and it's not already in your CRM.
How many bedrooms and full baths? Any half baths?
How many levels?
How many people live there?
Any pets? How many, and what kind?
Is the flooring mostly hard surface, carpet, or a mix?
Are your cabinets and trim painted white, or stained wood?
And do you live in the home now?
Skip the last one if they've already made it clear. Mostly relevant for move-in/out or someone booking for a relative.
COACHOne question at a time. Let them answer fully before the next. Don't rattle the list off like a form.
Step 6 of 12
Quote Entry
Build the Quote
Enter everything in your quoting tool. Use the condition questions below to set the right condition level.
Exclusions
Any rooms they don't want cleaned? Note how many.
A whole floor excluded? Don't double exclude if it's already out of the square footage.
Any bathrooms excluded? Note how many.
Condition Questions
Has the home been professionally cleaned before? How recently?
Would you say it's pretty well maintained, a little behind, or quite a bit behind right now? No judgment, it just helps me price it right.
Any significant clutter I should plan for, counters, floors, that kind of thing?
COACHAsk these flatly and without apology. You're gathering facts to be accurate, which is in their interest.
Appreciate you walking through all that with me.
Step 7 of 12
The First Deep Clean
Why It Comes First
Before recurring service starts, every new client begins with a first deep clean. That's not an upsell, it's how we get the home to a baseline we can actually maintain.
It covers the things routine visits don't hit every time: baseboards, cabinet fronts, doors and frames, windowsills, ledges, the detail work.
Once that reset is done, your recurring cleans keep it there. Without it, we'd be charging you to chase buildup that was there before we ever walked in. This way you actually get what you pay for.
RULEDo NOT introduce a discount or promo to make this land. wins on value, not price. If they push, explain the value again. Don't cut the number.
Do you have any questions before I put your pricing together?
I understand. Here's the honest version: we can start with a standard first clean instead, but it's billed by the hour because we don't know what we're walking into yet, and the result won't be the full reset. Most people do the deep clean once and never think about it again. Your call.
RULEIf they choose the standard first clean, it is hourly. Do not apply any promotional pricing.
Totally fair. Let me send your full quote to your email so you have everything in writing, pricing, what's included, our coverage details. If anything changes, you've got my number. No pressure from me.
Community Program (Always Mention)
One thing that matters to us regardless of whether you book: we provide free cleanings to local families going through a hardship situation. If you ever know someone who could use that, tell them to reach out. No cost, no strings.
What did the client decide?
Step 8 of 12
Pricing
Presenting the Quote
Thanks for holding, [Name]. Here's where it lands.
Your first deep clean comes to about $[deep clean rate], plus tax. That's the full reset we talked about.
After that, here's your recurring service. Every two weeks runs about $[biweekly rate] plus tax. Monthly would be about $[monthly rate] plus tax.
Read these numbers off the quote panel on the right. Do not read the brackets out loud.
COACHPresent at least two frequency options unless they specifically ask for weekly. Say the number, then stop talking. Do not fill the silence or start justifying the price.
Always State
A few things included no matter what: we bring all our own supplies and equipment, and we use professional grade products that are safe for your family, your pets, and our team.
Step 9 of 12
Commit
Confidence Check
COACHThe next line matters. Ask it, then go quiet and let them answer.
Based on everything we've covered, [Name], does this sound like the kind of company you've been looking for?
Pause. Let them respond. Address anything real before moving on.
Scheduling Opener
I've got a couple of openings coming up. Want me to grab one for you?
Good. I just need a few more details to lock it in.
No problem. Can I ask what's giving you pause? I'd rather know than guess.
Listen, address it, then if it's still no, use the close below.
Closing Without Booking
Understood, now might not be the moment, and I respect that.
I'll send your quote over so you have it in writing whenever you're ready. Nothing expires, and there's no pressure from my end.
If a question comes up later, reach out directly. We're easy to get ahold of.
Either way, I appreciate your time today.
Common Objections (Jordan Voice)
I hear you, and I won't pretend we're the cheapest. What you're paying for is insured W-2 employees, consistent teams, and the fact that you're covered if anything ever goes wrong. A lot of our clients tried a cheaper option first and came back. The price is the company.
Of course. I'll get the quote to your email so you've got everything in front of you. Take the time you need. What's the real question I can answer before you go, is it price, or is it something else?
Then you already know the value of having help. Most people who switch to us did it for consistency, same trained team every time, fully covered. If yours is working, keep it. If it's hit or miss, you know where we are.
Smart, it should be a joint call. I'll send everything so you can look at it together. When's a good time for me to follow up so this doesn't just sit in an inbox?
Good question, let me confirm exactly what's included so I'm not guessing. I want you to know precisely what you're getting.
I get asked that, and I'll be honest with you, we don't discount, and here's why that's actually good for you. The price is what funds the insured, trained, consistent people who show up at your house. Cutting it would mean cutting that. The value is the answer, not a lower number.
RULENever offer a discount to close. If price is the wall, restate value or let them walk. does not buy business on price.
Step 10 of 12
Billing, Payment and Deposit
Hourly Billing Transparency (First Clean)
Your first deep clean is billed on actual labor hours. The estimate I gave you is based on what we discussed, you're charged for the time the team actually spends, nothing padded.
If it goes faster, you pay less. If the home turns out to be in significantly different shape than expected and it'll need more time, we stop and call you before doing any extra work. You're never surprised by a bill.
Everything is backed by our satisfaction guarantee.
Your recurring clean is different, that's a fixed price. Same agreed scope each visit, same price every time, so you can plan around it.
Payment and Deposit
To hold your spot we take a deposit of the estimate. It's applied straight to your final bill, it's not an extra charge, it just reserves the time.
All we ask is a few days notice if you ever need to reschedule.
Card payments carry a small processing fee, or you can use bank transfer with no fee, your choice.
COACHIf they can't pay right now: offer to hold the booking and send a secure portal link to enter payment. Don't lose the booking over timing.
It reserves your spot, we book up, and it lets us plan the schedule and cut down last minute cancellations. It goes right toward your bill, so you're not out anything.
The deposit protects both sides, it locks in your time and our team's schedule. And you can reschedule with a few days notice. It's not money gone, it's money applied.
Step 11 of 12
Booking Details
Thanks for working through all that with me. Just a few last details and we're set.
Scheduling Preferences
For your recurring service, are there any days or times that flat out don't work for you?
Prefer vs exclude: if both, enter the exclusion and note the preference.
Special Instructions
Anything you want us to focus on, or anything the team should know going in?
These notes apply to ALL cleanings, not one off job details. If something is recurring only, say so explicitly.
Pet Info
Our teams are all animal friendly, what's your pet's name so we can say hi? Anything else we should know about them?
Parking and Directions
Anything tricky about getting to or parking at the home?
COACHMatters most for rural homes, new construction, and apartments or condos.
Waste Disposal
Where's your kitchen trash can, and where do you keep the bags?
Where are the bathroom trash bags?
And where do the outside bins live?
Home Access
How will the team get in?
If they'll be home, note it and still ask about a code for future recurring visits.
We'd actually prefer you're home at the end of the first clean for a quick walkthrough, that's how we make sure it's right.
What We Bring
We bring everything, equipment, products, cloths, vacuums. The one thing we don't bring is toilet brushes, for sanitary reasons. Do you have one in each bathroom?
Closed Door Policy
If any room needs to stay closed for pets, kids, or privacy, the team respects that automatically. If you want a closed room cleaned, just flag it ahead of time.
Internal Memo is office only. Not visible to cleaners. Property notes, alternate contacts, scheduling preferences.
Step 12 of 12
Wrap-Up
No Step 12 screen was provided from the original. This is the suggested Jordan voice close. Swap in your real wrap content anytime.
Suggested Close
You're all set, [Name]. You'll get a confirmation and your full quote in writing. Your first deep clean is [date], and your team will arrive in your window.
If anything comes up before then, reach out directly. We're glad to have you with us, and we'll make sure that first clean earns it.
COACHEnd calm and certain. No over thanking, no gushing. You delivered value, act like it.