# NMC Operations Audit — March 12, 2026

## Executive Summary

1. **Missed calls are the #1 revenue leak.** 200+ missed calls logged in just 5 weeks (Dec 12 - Jan 17), averaging 5-6/day. In the last week alone (Mar 5-12), 34 of 85 tracked calls (40%) were missed. At an estimated $150-250 average booking value, even converting 20% of missed calls = $6,000-10,000/month in lost revenue.

2. **Scheduling errors and contractor communication breakdowns are causing service failures.** The Sashi double-booking (Mar 9), Michael Davis repeated complaints, Khatuna's tire/scheduling cascade, and multiple instances of Abigael not catching scheduling conflicts point to a systemic process gap, not one-off mistakes.

3. **Complaint handling is too slow and unstructured.** The George Mettry complaint took a week to escalate (Dec 29). Julie's arrival window was missed twice with no communication. There's no formal complaint tracking system, just scattered Slack messages across channels.

4. **Lead response time is dangerously slow.** A Jan 26 message explicitly flagged that a lead was overdue, noting "Lead contact needs to be within 5 minutes of lead receipt." Only 6 messages in #leads over 90 days suggests leads aren't being systematically tracked in Slack at all.

5. **GHL pipeline is leaking.** 31% of opportunities are stuck in "Non-Responsive/Follow Up Manually" and another 23% are in lost stages. Only 4 out of 100 recent opportunities are marked "won." The pipeline needs aggressive follow-up automation or it's a graveyard.

---

## Data Sources & Coverage

| Source | Status | Date Range | Records |
|--------|--------|-----------|---------|
| Slack (14 channels) | ✅ Accessible (12/14) | Dec 12, 2025 - Mar 12, 2026 | 1,623 messages |
| GHL Contacts | ✅ Accessible | All time | 13,886 total (100 sampled) |
| GHL Opportunities | ✅ Accessible | Recent | 100 opportunities |
| GHL Pipelines | ✅ Accessible | Current | 1 pipeline, 10+ stages |
| Gmail (IMAP) | ✅ Accessible | Dec 12, 2025 - Mar 12, 2026 | 727 emails |
| Launch27 | ❌ Decommissioned | N/A | API returns "Decommissioned" |

**Slack channels not accessible:** #weekendreport (CDU83E9ND), #team-vadim-alt (C01TR9KNS8K) — bot not in channel. #cancellations, #technical-errors, #website-forms had essentially no content (1 msg each = just the bot joining).

---

## Issue Analysis

### By Frequency

1. **Missed calls** — 200+ in 5 weeks (Dec-Jan channel), 34 in last week (Mar calls channel). This is the single highest-volume operational issue.
2. **Scheduling conflicts / errors** — At least 5 documented incidents in 90 days (Sashi double-booking, Michael Davis, Sneha Paul one-cleaner issue, date confusion, card hold failures)
3. **Contractor communication gaps** — Khatuna tire issue cascade, Vadim's team holiday confusion ("informed office weeks ago but message missed"), late-night texts causing confusion
4. **Arrival window violations** — Julie complaint (missed 12-2pm window twice, called at 10:20am for 11am arrival on prior visit), multiple mentions in operations
5. **Credit card hold failures** — Louie Katsis and Ella Weeber cards declined because holds weren't placed day-before (Jan 6)
6. **Slow complaint escalation** — George Mettry complaint took 1 week to escalate (Dec 29)
7. **Google review tagging not happening** — Abigael admitted to forgetting to tag accounts with Google reviews in GHL (Dec 22)
8. **Lead response delays** — Explicit flag on Jan 26 about overdue lead

### By Revenue Impact

| Issue | Estimated Monthly Impact | Basis |
|-------|------------------------|-------|
| Missed calls → lost leads | **$6,000 - $10,000** | 150+ missed/month × 20% conversion × $200 avg booking |
| GHL pipeline leakage (non-responsive) | **$3,000 - $5,000** | 31 stuck opportunities × estimated $150 avg value × recovery rate |
| Scheduling errors → comps/refunds | **$500 - $1,500** | Sashi comp, Julie discount, Michael Davis drops, etc. |
| Late arrival → customer churn | **$1,000 - $3,000** | Recurring customers lost due to window violations |
| Card hold failures → unpaid services | **$300 - $800** | Services delivered without payment secured |
| **TOTAL ESTIMATED LEAKAGE** | **$10,800 - $20,300/month** | |

**To reach $70-80K/month from $49K, plugging these leaks could close 35-65% of the gap.**

### Slack Patterns

**#missed-calls (200 msgs, Dec 12 - Jan 17)**
- Peak days: Dec 30 (15 missed), Dec 12 (12 missed), Dec 17 (10), Dec 18 (11), Dec 24 (10)
- Holiday period was catastrophic for call coverage
- Pattern: calls cluster during business hours when Abigael may be on other tasks

**#calls (170 msgs, Mar 5 - Mar 12)**
- Current week: 40% miss rate (34 missed out of 85 total)
- Call statuses include: short_abandoned, abandoned_in_ivr, agents_did_not_answer
- "agents_did_not_answer" = phone rang, nobody picked up
- "abandoned_in_ivr" = caller gave up during the phone tree
- Some callers called back 2-3 times before connecting (647-693-6465, 647-366-3423)

**#operations (200 msgs, Dec 15 - Feb 2)**
- Mix of day-to-day ops coordination and issue flagging
- Key incidents: card decline failures (Jan 6), Michael Davis complaint (Jan 4), Isabel James billing dispute (Dec 27), Eli Hood complaint follow-up (Dec 27), time-off tracking failure (Dec 29)
- Mike (U03AXH1NQ7P) is personally flagging issues that should be caught by process

**#customer-service (77 msgs, Jan 13 - Mar 5)**
- Harvey (AI) introduced Mar 3-5, already handling customer feedback analysis
- Julie complaint (Mar 5): arrival window missed twice, no communication from cleaners
- Sashi issue (Mar 5): booked 8am, team arrived at 12pm, Abigael offered 40% discount (Mike/Harvey recommended full comp)
- Pattern: issues get discussed but resolution isn't tracked systematically

**#bookings (157 msgs, Dec 12 - Mar 12)**
- Abigael created 34 bookings (22%), Mike created 27 (17%)
- 62 bookings were self-serve by customers (39%)
- Active booking flow, roughly 1.7 bookings/day in channel

**#emilys-team (200 msgs, Dec 13 - Jan 14)**
- Sneha Paul: feedback about unlocked front door, uncleaned areas (Jan 12)
- Client rescheduled because only one cleaner was sent (Jan 13)
- Michael Davis dropped as client due to repeated complaints (Jan 4)
- Basement cleaning coordination issues

**#vadims-team (200 msgs, Dec 12 - Dec 30)**
- Holiday scheduling confusion (Vadim's team thought they had Dec 31/Jan 1 off, office didn't have it noted)
- Khatuna tire blowout caused scheduling cascade (Dec 28)
- Unsafe working conditions reported at one job (Dec 20)
- Late arrival/scheduling coordination issues with Beverly

**#scheduling (8 msgs, Feb 2 - Mar 9)**
- Sashi double-booking incident (Mar 9): Abigael didn't notice the scheduling conflict when checking weekend schedule, admitted she "doesn't necessarily check individual clients"
- John Nielsen message went unactioned for over an hour (Feb 2)

**#issues-complaints (3 msgs)**
- George Mettry complaint (Dec 29): took a full week to escalate
- Mike's note: "We need to go over our complaint handling process"
- Channel is severely underused — complaints are scattered across other channels instead

**#leads (6 msgs, Jan 26)**
- Channel was unarchived Jan 26, then a lead was immediately flagged as overdue
- Near-zero activity suggests leads aren't being routed here

### Email Patterns

- 727 emails in 90 days (~8/day)
- No customer complaint emails found via keyword search (complaints come through phone/Slack, not email)
- Launch27 emails: only 2, both about call masking setup (Mar 10) — confirms L27 is being decommissioned
- No Yelp emails detected — confirms the known issue of Yelp leads not being responded to
- Email is not a primary complaint vector; phone and Slack are

### GHL/Pipeline Patterns

**Contact Sources (recent 100 contacts):**
- 65% have no source tagged (data hygiene issue)
- 23% from Aircall (phone leads)
- 7% from Google Search
- Only 2% from Referral (likely undercounted)
- Steady daily new contacts (every day in last 10 days)

**Contact Tags:**
- phone-lead (25), lead (21), prospect (16), launch27 (16), quoted (16)
- homepage form (12), one time (8)
- Only 2 tagged "active" and 2 tagged "recurring" — poor lifecycle tagging

**Opportunity Pipeline:**
- 100 recent opportunities sampled
- **71 open, 23 lost, 4 won, 2 abandoned** — 4% win rate is critically low
- 31 stuck in "Non-Responsive/Follow Up Manually" — these are dead unless someone acts
- 21 in "Quote Sent/Auto Follow Up" — automation running but not converting
- 14 in "New Leads" — fresh, need immediate action
- Total monetary value: $27,553 across 100 opportunities

**Lead Sources (opportunities):**
- Google Search: 37% (strongest channel)
- Unknown/None: 30% (attribution gap)
- Returning Customer: 10%
- AI Search (ChatGPT etc.): 4% (emerging channel!)
- BlogTO: 3%, Referral: 3%
- Craigslist/Kijiji: 2%

---

## Root Causes

### 1. Single Point of Failure: Abigael
Abigael is handling scheduling, booking, customer service, phone calls, and follow-ups. When she's occupied with one task, everything else drops — calls go to voicemail, leads go stale, scheduling conflicts get missed. This isn't a performance problem; it's a capacity problem. One person cannot be the phone answerer, scheduler, booker, complaint handler, and follow-up agent simultaneously.

### 2. No Systematic Process for Anything
- Complaints are tracked in Slack threads, not a system
- Scheduling checks are manual eyeball scans, not automated validation
- Lead follow-up relies on remembering, not triggers
- Card holds are manual, not automated pre-service
- Google review tagging is manual, not automated
- Time-off requests get lost because there's no formal system

### 3. Contractor Communication is Ad-Hoc
- Team channels (#emilys-team, #vadims-team) are used for real-time coordination but there's no structured pre-service briefing or post-service reporting
- Holiday/time-off coordination fails because there's no shared calendar or system
- Arrival windows aren't enforced because there's no tracking

### 4. GHL is Underutilized
- 65% of contacts have no source — making marketing ROI impossible to measure
- Pipeline has 31% of opportunities stuck with no action
- Tags are inconsistent — only 2 contacts marked "active" out of 13,886
- The system exists but isn't being used as a CRM, it's being used as a contact dump

### 5. Phone System Can't Handle Volume
- 40% missed call rate is a business emergency
- Callers abandon in IVR = phone tree is too long or confusing
- "agents_did_not_answer" = nobody available to pick up
- No callback system or missed-call-to-text automation working effectively

---

## Priority Recommendations

### P0 — Do This Week (Revenue Emergency)

1. **Fix missed call handling immediately**
   - Implement missed-call-to-SMS auto-response ("Thanks for calling NMC! We missed your call. Reply with your name and address for a quick quote, or we'll call you back within 30 min")
   - Route to Leah (AI SMS agent) for immediate engagement
   - Set up a Slack alert if any call goes unanswered for >3 rings during business hours
   - *Impact: Could recover $3,000-5,000/month in lost leads*

2. **Activate GHL pipeline follow-up for 31 "Non-Responsive" opportunities**
   - Create a re-engagement sequence (email + SMS)
   - Even 10% conversion = ~$4,500 recovered
   - *Impact: One-time $2,000-4,500 recovery + ongoing pipeline hygiene*

### P1 — This Month (Operational Foundation)

3. **Build automated scheduling validation**
   - Pre-service check: flag double-bookings, missing card holds, scheduling conflicts
   - Daily digest to Abigael and Mike: "Tomorrow's schedule — 3 issues need attention"
   - *Prevents: Sashi-type double bookings, card hold failures*

4. **Create a complaint tracking system in GHL**
   - Custom pipeline: "Complaint Received → Investigating → Resolution Proposed → Resolved → Follow-up"
   - Auto-tag contacts with complaint history
   - Escalation trigger: if no update in 48 hours, alert Mike
   - *Prevents: Week-long complaint delays*

5. **Standardize contractor pre-service briefing**
   - Automated message to team leads night before: client name, address, arrival window, special instructions, lockbox code
   - Require confirmation reply
   - *Prevents: Arrival window violations, missed instructions*

### P2 — Next 30-60 Days (Growth Infrastructure)

6. **Fix GHL contact source attribution**
   - Audit and tag existing contacts
   - Set up automatic source tagging from all intake points (web form, phone, referral, etc.)
   - *Enables: Marketing ROI measurement — critical for scaling to $70-80K*

7. **Implement post-service quality feedback loop**
   - Automated text to customer after service: "How was your cleaning? Reply 1-5"
   - Route <3 ratings to complaint pipeline
   - Route 5-star ratings to Google review request
   - *Enables: Proactive quality control, review generation*

8. **Build Yelp lead response automation**
   - Known gap: Yelp leads aren't being responded to
   - Set up Yelp lead monitoring and auto-response
   - *Impact: Yelp leads tend to be high-intent, high-value*

### P3 — Ongoing (Optimization)

9. **Reduce Abigael's task surface**
   - Automate card holds (pre-service batch job)
   - Automate Google review tagging
   - Automate scheduling conflict detection
   - Goal: Free Abigael to focus on customer relationships and complex scheduling

10. **Build operational dashboards**
    - Daily: calls answered/missed, bookings created, complaints open
    - Weekly: revenue, cancellations, lead conversion, customer satisfaction
    - *Enables: Mike to manage by exception instead of reading every Slack message*

---

## Revised Night Shift Build Order

Based on this audit, here's what Harvey should build first (ordered by revenue impact / effort ratio):

1. **Missed Call → SMS Auto-Response + Leah Handoff** (highest ROI, fastest to build)
   - Twilio webhook on missed call → send SMS → route to Leah
   - Est. build: 2-3 hours | Impact: $3-5K/month

2. **GHL Pipeline Re-engagement Blast** (one-time recovery)
   - Pull 31 non-responsive contacts, create SMS/email sequence
   - Est. build: 1-2 hours | Impact: $2-4.5K one-time

3. **Daily Pre-Service Digest** (prevents failures)
   - Script: pull tomorrow's bookings, check for conflicts/missing cards, post to Slack
   - Est. build: 3-4 hours | Impact: Prevents $500-1,500/month in errors

4. **Complaint Pipeline in GHL** (process fix)
   - Create custom pipeline + Slack integration
   - Est. build: 2-3 hours | Impact: Faster resolution, better retention

5. **Post-Service Feedback Automation** (growth)
   - SMS survey → route feedback → generate reviews
   - Est. build: 4-6 hours | Impact: More 5-star reviews, proactive complaint catching

6. **GHL Source Attribution Cleanup** (data foundation)
   - Tag existing contacts, set up auto-tagging
   - Est. build: 3-4 hours | Impact: Enables marketing ROI measurement

---

## Appendix — Key Incidents

### Incident 1: Sashi Double-Booking (Mar 9, 2026)
- Sashi had a one-time deep clean booked close to her regular recurring clean
- Abigael didn't notice the conflict during weekend schedule review
- Team arrived at 12pm instead of 8am
- Abigael offered 40% discount; Mike/Harvey recommended full comp
- **Root cause:** Manual schedule review, no automated conflict detection
- **Channel:** #scheduling, #customer-service

### Incident 2: George M. Complaint (Dec 29, 2025)
- Complaint filed, took 1 full week to reach escalation
- Mike flagged: "It should not have taken a week to get this escalated"
- **Root cause:** No complaint tracking system, no escalation triggers
- **Channel:** #issues-complaints

### Incident 3: Julie Arrival Window (Mar 5, 2026)
- Booked 12-2pm arrival window, no one showed or communicated
- Previous visit: called at 10:20am to come at 11am for a 12-2pm booking
- Two consecutive arrival window violations
- **Root cause:** No arrival window enforcement, no contractor check-in system
- **Channel:** #customer-service

### Incident 4: Card Hold Failures — Louie K. & Ella W. (Jan 6, 2026)
- Both clients' cards declined for day-of service
- Cards hadn't been put on hold the day before
- Clients unresponsive to same-day email/text
- **Root cause:** Manual card hold process, no automated pre-service hold
- **Channel:** #operations

### Incident 5: Michael D. Account Termination (Jan 4, 2026)
- Multiple complaints over time
- Decision to drop as client made in #emilys-team
- No apparent documentation of complaint history in GHL
- **Root cause:** No complaint tracking, issue history scattered across Slack
- **Channel:** #emilys-team, #operations

### Incident 6: Isabel J. Billing Dispute (Dec 27, 2025)
- Charged for Nov 25 cleaning after cancelling recurring on Nov 26
- Customer called to dispute
- Unclear if cleaning actually took place
- **Root cause:** Cancellation processing gap between L27 and billing
- **Channel:** #operations

### Incident 7: Holiday Scheduling Confusion — Vadim's Team (Dec 29, 2025)
- Vadim's team informed office weeks earlier they wouldn't work Dec 31/Jan 1
- Office didn't have it noted, causing last-minute scramble
- **Root cause:** No formal time-off request system
- **Channel:** #vadims-team

### Incident 8: Unsafe Working Conditions (Dec 20, 2025)
- Vadim's team reported "Situation is very bad here crew can't work in this condition it's not safe"
- No documented follow-up protocol visible
- **Root cause:** No safety incident reporting/tracking process
- **Channel:** #vadims-team

### Incident 9: Sneha P. Feedback (Jan 12, 2026)
- Front door left unlocked (security concern)
- Areas behind front door not cleaned
- Only one cleaner sent when job required two → client rescheduled (Jan 13)
- **Root cause:** Insufficient pre-service briefing, staffing allocation error
- **Channel:** #emilys-team

### Incident 10: Missed Calls Christmas Week (Dec 24-26, 2025)
- 12 missed calls in 3 days during holiday period
- Mike flagged in #operations: "there is a ton of missed calls. What's going on?"
- **Root cause:** No holiday phone coverage plan, single-person phone handling
- **Channel:** #missed-calls, #operations

---

*Report generated by Harvey (AI Chief of Staff) on March 12, 2026 at ~11:30 AM ET*
*Data pulled from: Slack (12 channels), GHL (contacts + pipeline), Gmail (727 emails), Launch27 (decommissioned)*
