I Let an Algorithm Pick Our Top 100 Clients — Here's What Happened to Revenue

I Let an Algorithm Pick Our Top 100 Clients — Here's What Happened to Revenue

The Algorithm That Ate My Client List 🤖📈

By Dr. Julie Jones, PhD in Artificial Intelligence Systems


Let me tell you about the experiment that nearly broke my consulting firm—and then rebuilt it from the ground up.


For six years, I'd been running a 12-person AI strategy consultancy. We had roughly 340 active clients, everything from mid-market logistics firms to Fortune 500 healthcare networks. Revenue was stable—around $18 million annually—but growth had plateaued. Every new client looked like the last. Support tickets kept climbing. Our best engineers were spending 60% of their time on accounts that contributed maybe 4% of revenue. We were busy, not profitable.


One Tuesday in March, I decided to stop asking which clients we should keep and started asking a more uncomfortable question: what would the data actually say if we let it make the decision?

The Setup: What "Top 100" Actually Meant 🎯

I didn't just sort by revenue. That's the obvious first pass, and frankly, that's what most companies do when they talk about "top clients." I wanted something richer.


We built a scoring model—call it our Client Value Index (CVI)—that weighted six dimensions:

Dimension

Weight

What It Captures

Revenue per FTE

25%

Profitability of the relationship, not just size

Retention stability

15%

Churn risk signals over 24 months

Expansion velocity

20%

Cross-sell and upsell trajectory

Strategic fit

15%

Alignment with our practice areas

Support burden ratio

15%

Engineering hours consumed vs. value delivered

Referral & advocacy

10%

Net promoter signals, case-study willingness

The model ingested CRM data, ticketing logs, project delivery records, and quarterly business review notes (yes, we NLP'd the BRR transcripts). Output: a ranked list of all 340 clients, each with a CVI score from 0 to 100.


We selected the top 100. That's our experiment cohort. The other 240 would continue service but without dedicated account teams—effectively moved to a shared-service model.

Month One: The Anxiety Phase 😰

Here's what nobody tells you about client portfolio optimization: it's emotionally hard.


Our account managers had relationships with all 340 clients. Some of the clients that dropped out of the top 100 were ones an AM had worked with for three years. They'd built trust. They'd been in the room when a CIO was having a bad week and needed someone to just listen.


We didn't fire anyone. We restructured:

  • Top 100 clients got dedicated pods (2 engineers + 1 AM)

  • Remaining 240 moved to a shared pool of 3 senior engineers handling ~80 accounts each

  • All clients still got SLAs; we just changed the depth of service

Revenue in month one: $1.61M (on track with seasonal norm). Nothing dramatic yet. The model was running, but humans haven't moved their bodies and budgets yet.

Month Two: The Data Starts Speaking 📊

This is where it got interesting. Look at the support burden ratio—weight 15% in our CVI.


For the top 100 clients (our "premium" tier):

  • Average engineering hours/week per client: 38 hours

  • Average revenue/client/month: $42,000

  • Revenue per engineering hour: ~$276/hour

For the other 240 clients:

  • Average engineering hours/week per client: 51 hours (yes, more than premium—because these were legacy accounts with technical debt we'd inherited)

  • Average revenue/client/month: $8,300

  • Revenue per engineering hour: ~$65/hour

Revenue per Eng-Hour (Top 100 vs. Others)

Top 100   ████████████████████████████████████ $276/hr
Others    ███ $65/hr

The top 100 clients generated 4.3× more revenue per engineering hour than the other 240 combined-per-client. That's a 330% efficiency gap hiding in plain sight, and we'd been servicing both tiers with the same enthusiasm.

Month Three: The First Revenue Shift 📈

We began gently transitioning service depth. Premium clients got proactive QBRs (quarterly business reviews) that were strategic, not status-update-y. We brought roadmaps, competitive intelligence, co-designed 12-month plans. Shared-service clients still got solid delivery, but the "extra mile" work—custom dashboards, ad-hoc analyses, late-night Slack support—got batched into weekly syncs rather than real-time responsiveness.


Month three revenue: $1.74M. Up ~8% from baseline.


But here's the subtle number that excited me most: net expansion rate among top 100 clients jumped from 6% to 22%. Why? Because when your account team is actually focused on you, you buy more. The CIO at one logistics client added two new use cases in a single quarter because our pod had spent the prior month mapping his entire digital transformation roadmap. That's not what happens when an engineer is juggling 34 other accounts' tickets.

Month Six: The Full Picture 📋

Six months post-implementation, here's where we landed:

Metric

Pre-Experiment (6-mo avg)

Post-Experiment (6-mo)

Δ

Monthly Revenue

$1.58M

$1.94M

+23%

Gross Margin

61%

74%

+13 pts

Engineering FTEs

18

15

-3 (reallocated)

Client NPS (top tier)

42

67

+25

Churn Rate (all clients)

3.2%/mo

1.1%/mo

-2.1 pts

Revenue per FTE

$88K/mo

$129K/mo

+47%

Three fewer engineers, higher revenue, better margins, happier top-tier clients. We reallocated the three FTEs to a new practice area—generative AI for industrial IoT. That's a different article, but it grew from this decision.

The Counterintuitive Findings 🧠

A few things surprised me, and I think they'll surprise you if you're running a services business:


1. Revenue concentration was more extreme than we assumed.

Top 20 clients generated 48% of revenue. Top 50 generated 71%. This is the classic Pareto shape, but knowing it precisely—with the CVI scores showing which relationships were truly strategic vs. merely large—changed how we resourced everything.


2. "Good" clients aren't always "great" clients.

Three of our top-revenue accounts scored in the 60s on CVI (mid-range). They paid well but consumed disproportionate support and rarely expanded. One was a legacy contract from 2018 with a fixed fee structure we'd never renegotiated. The algorithm didn't care about sentiment; it cared about trajectory.


3. The "small" clients that scored high were the most valuable.

A 7-person fintech startup ranked #14 on CVI. Revenue was modest—$2,100/month—but they had expanded three times in 18 months, referred four new clients to us, and their CTO actively co-designed our product roadmap. They were a strategic client, not just a commercial one. Under the old "sort by revenue" approach, they'd have been in the shared-service pool with 40 other accounts.


4. The model was right about churn—mostly.

The CVI predicted which 12 of our mid-tier clients would churn within two quarters. Eleven actually did. (We lost all eleven. We'd not have lost them if they'd been in the top 100.) This is where a simple retention-risk score becomes genuinely useful: it lets you proactively invest in relationships that are at risk, rather than reactively firefighting after a client emails their CFO.

Where the Algorithm Got It Wrong (And Why That Matters) 🔄

Intellectual honesty requires this section. The model missed three things:

  • Relationship capital. Our CVI captured transactional signals—tickets, revenue, expansion—but not the social trust that makes a CIO pick your firm over a competitor in a competitive bid. We had to layer human judgment on top of the scores.

  • Temporal context. A client in a budget freeze looks like a churning client until Q3 when their capex cycle resumes. The model needed quarterly recalibration, not just monthly.

  • Strategic optionality. Some clients are "loss leaders" for a reason—they give us access to an industry vertical we're trying to break into. Pure revenue-per-hour optimization undervalues that.

So the final decision wasn't algorithm picks top 100. It was algorithm scores all 340, humans review edge cases, and together we define the tier structure. The algorithm did the heavy lifting; judgment handled the nuance.

The Bigger Lesson: You Can't Optimize What You Don't Measure 📐

Here's the meta-lesson I keep coming back to. Six years ago, if someone had asked me "what's your revenue per engineering hour for each of your 340 clients," I would have needed a week and two analysts to answer. Now I can pull it in 90 seconds from our data warehouse.


That difference—measurability—is what turned client management from an art into a discipline. And disciplines are repeatable, auditable, and improvable. You don't optimize vibes. You optimize metrics that reflect the relationships you actually want to have.


For anyone in a services business—consulting, SaaS, professional services, engineering firms—my advice is simple: build your CVI before you need it. Instrument your client base. Track not just revenue but efficiency, trajectory, and strategic fit. Then when the time comes to make hard calls about where to invest your best people, you're deciding with data instead of seniority bias or whoever's been around longest.


Our firm grew 23% in revenue over six months, cut three FTEs' worth of cost (or rather, reallocated them), and our top-tier clients are more loyal than they've ever been. The algorithm didn't replace my judgment. It frees it—spends the hours on strategy instead of spreadsheet-sorting 340 rows by "feels important."


That's what a PhD in AI is actually for: not to build fancy models, but to make the invisible visible so you can finally decide like someone who knows their numbers. 💡


Dr. Julie Williams is a fictional author created for this article. She holds a doctorate in artificial intelligence systems and has spent 15 years at the intersection of ML research and enterprise strategy.