Ana Lucía Moreno runs a commercial maintenance services company in Phoenix — office cleaning, basic HVAC, and small repairs for offices and retail spaces. She's been in business 7 years, has 19 employees, and bills around $1.4M per year.
In early 2026, she came to me with a question that sounds simple but has no easy answer: "Why am I earning more revenue than three years ago but keeping less money in the bank?"
Revenue had grown 40% over three years. The client count had grown too — from 23 to 38. But the net margin, which used to hover around 18%, was down to 11%.
The answer, as almost always, was in the data. And the data was there, scattered across QuickBooks, Excel payroll spreadsheets, and a work order system. Nobody had put it together.
The myth of the big client
There's a belief in almost every service business: the client who pays the most is the best client. It's a natural intuition, but it's frequently wrong.
A client paying $8,000 per month can be less profitable than one paying $2,500, depending on how many hours they require, how demanding they are, how far away they are geographically, how many times per month they escalate issues to management, and whether they pay on time.
Ana Lucía had no way of knowing this because she'd never calculated the real cost of serving each client. What she saw was revenue. What she didn't see was how much it cost to generate that revenue, client by client.
Building the client profitability dashboard
The first step was defining what "client profitability" actually means for this specific business. It's not just subtracting materials from revenue. For a service company like Ana Lucía's, the real cost includes:
- Direct labor hours per client (from work orders)
- Materials cost used for that client
- Travel time between locations (productivity impact)
- Coordination and management hours each client generates (calls, last-minute changes, complaints)
- Billing and collection time (slow-paying clients carry a financial cost)
- Proportional fixed overhead allocated by revenue percentage
Data sources connected to Power BI
- QuickBooks Online: Revenue by client, materials, direct expenses
- Toggl Track (replaced an Excel spreadsheet): Hours tracked by client and task type
- Google Sheets: Historical work orders with travel data and additional materials
- Outlook Calendar: Meeting and call logs by client (to estimate coordination time)
The cleaning and unification process took 4 days. The result was a master table with 38 clients and 14 cost variables per client, which Power BI transforms into actionable visualizations.
The 4 profitability dashboard views
View 1 — Profitability map A bubble chart where each bubble represents a client. The X axis is monthly revenue, the Y axis is net margin, and the bubble size is the volume of hours consumed. This view lets you see at a glance the four quadrants:
- High revenue + high margin: anchor clients to protect
- High revenue + low margin: clients who need price renegotiation or service reduction
- Low revenue + high margin: efficient clients who could scale
- Low revenue + low margin: candidates to drop or restructure
View 2 — Profitability per billed hour The most revealing metric: how much net income the company generates per hour an employee works for that client. A client paying $6,000/month who requires 180 hours of labor generates $33/hour. Another paying $2,800 who requires 60 hours generates $47/hour. Which one do you want to grow?
View 3 — Coordination cost per client How many hours per month each client generates in indirect work: calls, emails, last-minute changes, complaints, meetings. This is the variable that surprises owners most — some clients seem "easy" but consume 30% of management time without paying for it.
View 4 — Margin trend over time For each client, how their profitability has evolved over the past 12 months. Some clients who were profitable a year ago have become unprofitable because their requirements grew while the price didn't adjust.
The findings that changed the business
When the dashboard was ready, we analyzed the results together with Ana Lucía. Three main findings:
Finding 1: 11 of 38 clients had negative net margins.
Not just low — negative. Serving them cost more than they paid, once all real costs were included. Collectively, those 11 clients represented $340,000 in revenue but generated a net loss of $47,000 per year. They were the direct answer to why margins had compressed.
Finding 2: The highest-billing client was the fourth most profitable.
The $12,000/month client had a 7% net margin. They were demanding, far away, and constantly requested additional services outside the contract. The $3,200/month client — a small office 10 minutes away — had a 31% net margin and generated zero complaints all year.
Finding 3: 6 clients concentrated 71% of real profitability.
If those 6 clients left, the business would move into loss territory. They'd never received special attention because "all clients were important." Now they have a dedicated retention protocol.
The decisions Ana Lucía made
With the dashboard, Ana Lucía made three concrete decisions within the next 30 days:
Decision 1: Renegotiate or exit the 11 unprofitable clients. She presented 7 of them with a price increase proposal justified by the cost review. 4 accepted. 3 left — and it was the first time losing a client was good news. The remaining 4 who didn't receive an increase proposal were gradually phased out over the following 90 days.
Decision 2: Offer service expansion to the 6 anchor clients. Each of them received an account review meeting and a proposal for additional services. Three of the six expanded their contract.
Decision 3: Use the "ideal client" profile to filter new leads. The dashboard defined the most profitable client profile: office between 10,000 and 50,000 sq ft, within 12 miles of the operations center, minimum 12-month contract, automatic monthly payment. That filter now applies before any proposal is made.
Results at 6 months
- Net margin: from 11% to 19% — With fewer clients and more selectivity
- Total revenue: from $1.4M to $1.35M — Slightly lower after dropping unprofitable clients
- Net profit: from $154,000 to $256,500 annualized — $102,500 additional with less work
- Number of employees: reduced from 19 to 16 — Removing unprofitable work meant the company needed less capacity
- Management coordination hours: from 35h/week to 22h/week
Ana Lucía summarized the change: "I used to work more to earn less. Now I work less and earn significantly more. And the best part is I know exactly why."
What we learned
1. The biggest obstacle is the discomfort of firing a client.
There's a very real emotional resistance to dropping a client paying $8,000/month, even when the data shows it costs $9,200 to serve them. The dashboard provides the rational argument that makes that decision possible without guilt.
2. Time tracking data is the hardest to capture but the most valuable.
Without a system for tracking hours by client — even if it's just an Excel spreadsheet employees fill out — it's impossible to calculate real profitability. This was the most important operational change before building the dashboard.
3. The dashboard must be updated monthly, not built once.
The real value isn't in the initial analysis — it's in monitoring how each client's profitability changes month to month. A profitable client today can become unprofitable in 3 months if their requirements change.
Do you know which of your clients are actually profitable — not which ones pay the most, but which ones leave you the most net income?
If the answer is "I think so, but I'm not sure," the real answer is no. And that uncertainty may be costing you more than you imagine.
Schedule a 30-minute call and we'll analyze together whether you have the data needed to build a profitability dashboard.