🔒

OCC Command Center

Sign in to continue

OCC Connected Operations Grid · Private · Authorized users only

📊 2026 Business Dashboard
2026 Annual
2026 Target
from 2025 QB actuals
2026 Actual YTD
collected so far
Variance
ahead/behind target
Jan 1 Customers
starting point
Current Customers
today
Total Lost
all time (tracking starts now)
April 2026
Monthly Target
requires QB monthly sync
YTD Revenue
from QB P&L
Added This Month
new signups
Lost (2026 YTD)
all removed/dormant this year
💳 Payment Processing
CHARGED
$0
FEES
$0
0 transactions 2.6% + $0.10 avg
👥 Customer Ops
0
new this month
🔔 Pending Decisions
0
awaiting Howard
⚡ Live Activity Feed
Loading live data...
📈 Service Tier Breakdown
📈 Revenue Trend — Monthly
📈 Customer Growth
💰 Failed Payments & Past Due
🚫 Cancellations & Churn
📍 Top ZIP Codes by Revenue
🚚 Cans Not Out — Impact
💰 Revenue Collected — Deposits
🚚 Routes
Route Calendar
🚚 Full Year 2026
🎯 Customer Density by ZIP
📈 Service Type Mix
📊 Quick Reports
Stops Per Route
Completion rates by route and day
Crew Efficiency
Stops/hour, time per stop, idle time
Cost Per Stop
$31.66 baseline — track actual vs target
Route Completion Rates
% completed on-time vs rescheduled
Route Balance
Overloaded vs light — find where to add stops
Underserved ZIPs
Low customer count — growth opportunities
Seasonal Volume
Load changes by month — plan crew & trucks
Profitability by Run
Revenue vs cost per Week + Day combo
🔧 Custom Report Builder
💾 Saved Reports
👥 Customer Intelligence
Active Subscriptions
from D1
New This Year
from D1 date_added
One-Time Customers
from D1 plan_type
Problem Accounts
balance > $0
VIP (3+ Years)
date_added before 2023
Signup Sources
from D1 signup_source
★ Loyalty: from D1 date_added
📈 2026 Monthly New Customers
⚠ Problem Children — Accounts Needing Attention
📍 Top Service Areas
🎯 How They Found Us
💵 Financials ● LIVE (D1)
📈 2026 YTD — QuickBooks P&L
❄ January 2026 — Winter Shutdown (~3 weeks)
Operations suspended ~3 weeks. Jan reflects ~1 active week.
YTD Revenue
--
Net Income
--
Total Expenses
--
Margin
--
📈 YTD Expenses Breakdown — QuickBooks
📈 2025 Full Year — QuickBooks Actuals
Net Income
requires 2025 QB P&L query
Revenue
requires 2025 QB P&L query
Expenses
requires 2025 QB P&L query
Margin
requires 2025 QB P&L query
💰 AR Aging Summary
🔄
Year-over-Year — Coming Soon
Waiting on historical data. Will compare 2025 vs 2026 by month, route, and service tier.
💲 2026 Pricing Model
★ Annual Prepaid: Pay 12, get 13th FREE · New orders only · Existing grandfathered
⚠ EDITING MODE — Prices are editable. Click the lock to save changes.
Full Pricing Matrix — Per-Cleaning
🏷 NFC Gradual Price Increase Campaign QUEUE ONLY · NO EMAILS SENT
What this is: 103 customers acquired from "Neighborhood Fresh Cans" (NFC) over a year ago are on grandfathered discounted pricing. Retention guarantee has expired. This page tracks the gradual lift-to-standard, queues notice records, and converts the "- NFC" suffix to an nfc_origin tag once a customer reaches standard pricing.
Total NFC
on grandfathered pricing
Annual Uplift Potential
if all raised to standard
Phase 1 (Small <10%)
$0–2 bumps
Phase 2 (Medium 10–20%)
$2–3 bumps
Phase 3 (Large >20%)
3 small steps each
Customer Audit — 0 customers
NamePlanCansCurrent $Standard $Gap $Gap %PhaseVisits/yrAnnual UpliftStatusActions
Loading audit…
🛠 Service Operations
Active Customers
from D1
Recurring Plans
from D1
Quarterly
from D1
With Schedule
from D1
📊 Cans Not Out — Trend
No Cans-Not-Out data yet. Tracking begins when the crew app goes live.
★ Google Reviews Summary
No review data yet. Tracking begins when review monitoring is enabled.
🔄 Skip Trends
No skip/cancellation data yet. Tracked from the cancellations table.
⚡ Automation Control Panel
ALL OFF
💲 Payment Escalation Rules (Day 0-28 ladder)
Loading…
🌱 Seasonal Rules (30-day heads up per season)
Loading…
🎄 Holiday Schedule (notify 8 days before)
Loading…
📣 Marketing Hub & Campaigns
Emails Sent (30d)
requires Brevo analytics sync
Open Rate
requires Brevo analytics sync
Click Rate
requires Brevo analytics sync
Conversions
requires attribution worker
Attributed Revenue
requires attribution worker
🎯 Marketing at a Glance

Ohio Clean Cans is the flagship account on the PlusAutomation platform. Every customer-facing touch point is wired through COG — welcome emails, payment recovery, review asks, referral invites, holiday notices, and day-of service texts.

The positioning, pricing, and feature copy for the Positioning & Copy tab comes directly from the live sites plusautomation.ai and bincleanersautomation.com. That is the canonical source — do not drift.

Campaign KPIs above require the Brevo analytics sync and attribution worker to be deployed. Real numbers will populate automatically once those are running.

📝 Template Library
Click any template to edit. Saves persist live to D1 and stay in sync with the CRM. Locked items show a yellow banner before save.
📧 Email (0)
💬 SMS (0)
📡 Broadcast (0)
📄 Invoice (0)
📋 Notes (0)
📝 Job Notes (0)
📊 Reports & B2B Data Delivery
📚 Report Library
👤 Recipients
📅 Scheduled Sends
📋 Delivery Log
All available reports — pre-built templates plus any you've saved. Click Run Now to generate immediately, or use the Schedules tab to deliver on a recurring basis.
Loading reports…
🔧 Settings
🏢 Company
📍 Service Area
🚶 Waste Haulers
💳 Payment Processors
🔌 Integrations
👤 Users & Roles
🚀 Onboarding
Company Information
Company Details
Company Name
Owner
Phone
Email
Address
Website
Logo
📷
Upload Logo
Business Hours
Tax ID
Founded
Service Area — ZIP Codes
Active ZIP Codes
ZIPCityCountyHaulerActive
45039MainevilleWarrenRumpke
45040MasonWarrenRumpke
45140LovelandClermontRumpke
45150MilfordClermontRumpke
45174Terrace ParkHamiltonRepublic Services
45227Cincinnati - MariemontHamiltonRepublic Services
45230Cincinnati - AndersonHamiltonRepublic Services
45236Cincinnati - MadeiraHamiltonRepublic Services
45241Cincinnati - EvendaleHamiltonRumpke
45242Cincinnati - Blue AshHamiltonRumpke
45243Cincinnati - Indian HillHamiltonRumpke
45244Cincinnati - Mt WashingtonHamiltonCincinnati Public Services
45245Cincinnati - Miami TwpClermontRumpke
45249Cincinnati - MontgomeryHamiltonRumpke
45255Cincinnati - Anderson TwpHamiltonRumpke
Waste Haulers
Configured Waste Haulers
Hauler NameService Area (ZIPs)Pickup ScheduleContact
Rumpke 45039, 45040, 45140, 45150, 45241, 45242, 45243, 45245, 45249, 45255 Mon/Tue/Wed/Thu/Fri — varies by area (800) 828-8171
Republic Services 45174, 45227, 45230, 45236 Varies (513) 771-4200
Cincinnati Public Services 45227, 45244 City schedule 311
Payment Processors

Square (Current)

Type: Flat rate
Rate: 2.6% + $0.10
Connected: March 2026
✅ Connected

Helcim (Pending)

Type: Cost-plus (interchange + markup)
Rate: Interchange + 0.3% + $0.08
Meeting scheduled — Howard to sign up
⏳ Pending Setup

Stripe (Available)

Type: Flat rate
Rate: 2.9% + $0.30
Not Connected
Integrations
🛒

WooCommerce

Site: ohiocleancans.com
Syncs: Orders, customers, coupons
Last Sync: Apr 7, 2026 2:00 AM
✅ Connected
📚

QuickBooks Online

Syncs: Invoices, payments, customers
QB sync queue ready — waiting on Julie for account mapping
✅ Connected
📧

Brevo (Email)

Sender: howard@ohiocleancans.com
Sends: Transactional emails, campaigns
✅ Connected
💬

Brevo (SMS) NEW

Phone: OCC number
SMS approved and live as of April 7, 2026
✅ Connected
📞

Twilio (Future)

Blocked on regulatory approval — using Brevo SMS instead
Not Connected
🦍

GorillaDeSK (Legacy)

Syncs: Customers, jobs, invoices (nightly 2AM)
Legacy system — will be disconnected after COG cutover
✅ Connected
Users & Roles
Active Users
NameEmailRoleRoutesStatusAction
Howard Cooper howard@ohiocleancans.com Owner All Active
Jason jason@ohiocleancans.com Manager All Active
Coby coby@ohiocleancans.com Crew Route 2 Active
Brady brady@ohiocleancans.com Crew Route 3 Active
Whitney whitney@ohiocleancans.com Read Only Active
Claude (AI) ai@plusautomation.ai Read Only Active
Permissions Matrix
Feature Owner Manager Crew Read Only
CRM Dashboard
Customer Profiles✓ Full✓ Full✓ View
Routes / Schedule✓ Edit✓ View Own✓ View
Billing / Payments
Pricing
Automations✓ View
Templates✓ View
Settings
Crew App✓ All Routes✓ Own Route
COG Grid
Command Center✓ Limited✓ View
Financials / QB
Send Email/SMS✓ Templates Only
New Orders
Approve Actions
Note: Roles are assigned per user in the Users section above. Owner has full access to all features. Custom role configurations coming in COG v3.
COG Setup Wizard
Complete each step to get your company live on COG
78% Complete
1
Company Info ✓ Complete

Company name, address, phone, logo upload.

Already configured → Go to Settings
2
Service Area ✓ Complete

ZIP codes, counties, coverage area.

15 ZIP codes configured → Go to Settings
3
Service Plans ✓ Complete

Define your service types and pricing tiers.

134 service templates configured → Go to Pricing
4
Routes & Schedules ✓ Complete

Set up routes, assign areas, define schedules.

4 routes configured → Go to Settings
5
Crew & Users ✓ Complete

Add team members, assign roles and routes.

6 users configured → Go to Settings
6
Payment Processor ⏳ In Progress

Connect Square, Helcim, or Stripe.

Square connected. Helcim pending. → Go to Settings
7
Email & SMS ✓ Complete

Connect Brevo for transactional email and SMS.

Brevo connected. SMS live. → Go to Settings
8
Templates ✓ Complete

Customize email, SMS, and broadcast templates.

70+ templates configured → Go to Templates
9
Import Customers ⏳ In Progress

Upload customer CSV from old system.

1,842 customers imported. Invoice migration: 14,750 of 39,000
37.8%
10
Go Live ○ Not Started

Review everything, flip the switch.

Complete all steps above, then click GO LIVE to activate COG.
🧰 Tools & Config

HAULER MANAGER

WASTE HAULERS
Name Coverage ZIPs Contact Phone Status Actions
Loading…

USER PIN MANAGEMENT

USER & PIN MANAGEMENT
Username Role Last Login Status Actions
Loading…

TAG MANAGER

TAG MANAGER
Tag Category Customers Created Actions
Loading…

SERVICE TYPE MANAGER

SERVICE TYPES & PLAN PRICING
Code Label Weeks Can Pricing (1–8 cans) Status Actions
Loading…

CUSTOM FIELDS

CUSTOM FIELDS
Add arbitrary fields (garage code, dog name, gate combo, etc.) shown on customer, job, or invoice records.
Field Name Display Label Type Applies To Order Status Actions
Loading…

VENDOR LIST

VENDORS & SUPPLIERS
Name Category Contact Phone Email Notes Actions
Loading…

NOTIFICATION PREFERENCES

NOTIFICATION PREFERENCES
Event Email SMS In-App
Select a user to load preferences…

CUSTOMER LIFETIME VALUE

into any CC page that exposes window.OCC_CC_BASE and window.OCC_CC_TOKEN. Data: Live D1 invoices + customers via CC worker endpoints: ?action=clv_summary ?action=clv_list&limit=&offset=&plan_type=&min_clv=&sort= Heuristic notice: est_remaining_clv = monthly_recurring × predicted retention months (6 if tenure ≤ 12mo, 12 if > 12mo). Labeled on-screen. Tunable in D1 table clv_assumptions (id=1). ═══════════════════════════════════════════════════════════════════════ -->

Customer Lifetime Value

Median CLV
across active customers
Top-Decile CLV
90th percentile threshold
Avg Tenure
months since first paid invoice
Total Active LTV
sum of total_clv across list
#NamePlanTenure (mo) Spent YTDSpent Lifetime Est. RemainingTotal CLV SegmentProfile
Loading…
Heuristic: Estimated remaining CLV = monthly recurring × predicted retention months (6 mo if tenure ≤ 12 mo, 12 mo if tenure > 12 mo). Tunable in D1 table clv_assumptions. Lifetime totals are actuals from paid invoices only.

CREW PERFORMANCE

into any CC page that exposes window.OCC_CC_BASE / window.OCC_CC_TOKEN. Data: Live D1 via CC worker endpoints: ?action=crew_perf_roster ?action=crew_perf_metrics&crew_user_id=&range=last_30|ytd ═══════════════════════════════════════════════════════════════════════ -->

Crew Performance

# Crew Stops (30d) Stops YTD Avg time / stop Upsell YES rate Cancellations handled Complaints (refunds)
Loading roster…
Stops per day — last 14 days (all crew)
Loading trend…
today
Metrics marked are not yet computable. Avg time/stop requires per-job start/end timestamps (not currently captured). Upsell YES rate reads from cog_events where event_type='crew_upsell'. Complaints proxy = refund count on paid invoices tagged to that crew's stops.

SYSTEM HEALTH

into any CC page exposing window.OCC_CC_BASE / OCC_CC_TOKEN. Data: CC worker: ?action=system_health_workers ?action=system_health_d1 ?action=system_health_integrations ?action=system_health_errors ═══════════════════════════════════════════════════════════════════════ -->

System Health

Workers OK:
D1 row counts:
Integrations OK:
Recent errors:

A. Workers

WorkerStatusResp (ms)Last cron
Probing 29 workers…

B. D1 Databases

Counting tables…

C. Integrations

ServiceStatusDetail
Pinging integrations…

D. Recent Errors

WhenWorkerActionMessage
Loading error log…

SQUARE REFUND

Square Refund PIN locked

Re-enter your PIN to unlock refund tools. Token expires in 15 minutes.

SQUARE RECONCILIATION

Square Reconciliation

CREDIT ADJUSTMENT

Credit / Adjustment

ROUTE SETUP

ROUTES & ZIP COVERAGE
4 routes, garbage-day driven, ZIP → route. No truck column — Jason assigns game day.
Route Label Garbage Day Recycling ZIPs Stops Actions
Loading…

Edit Route

CREW SCHEDULER

CREW SCHEDULER
Weekly crew-to-route assignments. Mon-Fri, R1-R4. Stop counts pulled from jobs for that day.
Loading…

PREPAID RENEWAL MANAGER

PREPAID RENEWAL MANAGER
View, notify, and renew prepaid customers. Sends route through occ-api /proxy/brevo-send using the locked renewal template.
Total Prepaid
URGENT (≤1 left)
WATCH (≤4 left)
Due This Month
Due This Quarter
Urgency:
Customer Plan Left Last Clean Next Clean Renewal Status Actions
Loading…

Mark Renewed

Confirms the new prepaid order was booked and paid. This updates the renewal tracker — it does NOT charge the card.

DATA IMPORT EXPORT

DATA IMPORT / EXPORT

Single-table export (CSV or JSON) and import with preview. For full-database backup, use the Bulk Import/Export widget.

Export

Import

BULK IMPORT EXPORT

BULK IMPORT / EXPORT

Export Entire Database

Streams every table as a single JSON archive. A history row is written to db_backups.

Restore From Backup

⚠ Restore is destructive. It replaces current table contents for every table in the archive. Dry-run preview is run automatically before any commit.

Backup History

WhenFilenameFormatTablesRowsSizeBy
Loading…

QUERY BUILDER

QUERY BUILDER

Saved Queries

Loading…

                  
                
SELECT only. Max 10,000 rows. 30s timeout.

DATABASE SCHEMA

DATABASE SCHEMA

Tables

Loading…
← Pick a table on the left to see its schema.

INBOX SORTER

INBOX SORTER

Live view of occ-inbox-sorter categorizations from the last 7 days. Override a message to retrain future sorts.

Total 7d
Customer
Expense
Personal
Purchase
Delete/Spam

Recent (last 50)

Received From Subject Auto Override
Loading…

Training Rules (inbox_overrides)

Sender- or domain-level overrides. Takes precedence over the worker's default rules on future emails.

TypeMatch→ CategoryByAction
Loading…

GIFT CERTIFICATE ENGINE

GIFT CERTIFICATE ENGINE
⚠ Email policy: The GC code email is sent to the real purchaser (and optional recipient). Kill-switch + TEST_MODE in the worker will redirect to howard@ohiocleancans.com if sends are disabled. Confirm before clicking Create.

+ Create Gift Certificate

Redeem

All Certificates

CodeAmountBalanceIssuedExpiresStatusPurchaserActions
Loading…