‹ all projects
Confidential client · 2019–2020

ML lead-scoring & sales-strategy recommender

An ML tool that scored sales opportunities and suggested the margin to quote for the odds a rep wanted, tuned to the rep and the client. I validated it live against the sellers' own predictions, and it won executive backing for AI.

mlsvmcrmsales
ML lead-scoring & sales-strategy recommender

The new “AI person”

I joined as the company’s new “AI person” with no track record to point to. In my first week I pitched five AI project ideas to the sales division; three were accepted, and two of those folded into the one project I ended up driving. Reps were selling very different machines to very different clients with no consistent way to decide which opportunities to chase, or what to quote when they did, and leadership wanted proof that AI was worth backing at all.

The backing itself had a route. My sponsor was the Head of Market Region Europe and South America (a mouthful; he became Head of Customer Services that same year), and through him I got in front of the CSO and won his buy-in, just before COVID rearranged everyone’s plans. The harder audience was the salespeople. A lot of them read “AI” as “the thing that replaces me”, so the whole project had to be framed around helping them win, not scoring them.

Build, or buy

The first honest question was whether to build anything at all: the CRM vendor already sold an AI plugin. I scored it against a custom build on added value, time, external work and integration effort, and put that comparison in front of leadership instead of a pitch for my own job. The plugin’s generic lead scoring was made for telemarketing-style pipelines, sentiment analysis and LinkedIn “warm contacts”, while our deals turned on installed machines, site visits and margin. It stayed on the roadmap for its quick wins; the custom model took the questions it could not answer.

The model

The raw material was CRM history: opportunities, accounts, activities, quotes, exported without direct database access and in rough shape. In some tables I dropped around 180 of 200 columns, empty or redundant or leaking the outcome, before feature selection even started. That cleanup turned into a data-quality report that ended up steering the CRM partner’s fixes, useful long after the model itself.

With roughly a thousand usable opportunities, a neural network was the wrong tool. I chose an SVM classifier and, on historical Italian data from January 2020, it scored about 92% accuracy; on the messier international region it held around 83%.

01 · prepare

CRM export, no DB access opportunities · accounts · activities · quotes drop ~180 of 200 columns one clean dataset

02 · train on closed deals

normalise select features tune + compare models SVM classifier

03 · predict every open opportunity

same transforms predict win probability

04 · act: sweep the one lever a rep controls

clone the deal at many margins re-predict each clone largest margin that still wins suggested action

The real pipeline, the same steps as my original project diagram, which I can't publish as-is.

Five kinds of deal

The model gave a win probability, but the move that mattered was that fourth step. The project goal was written out in plain words: “which margin should I apply to have a 90% chance of victory?” The sweep answers it directly. Clone the same deal at many margins, re-predict each clone, and read off the largest margin that still wins at the odds you want. Plot that suggested margin against what we quoted and the pipeline sorts itself into five kinds of deal, and these are the names we used:

margin the model suggested ↑

quick dealswon, but we could have asked for more
golden eggswell placed at a high margin
candieswell placed at a low margin
rockslist-price quotes thrown at customers
lost causesno margin the model believed could win

margin we quoted →

Where money was being left on the table showed at a glance: quick deals underpriced, rocks thrown out at list price.

The original scored a real CRM I can’t show, so here it is rebuilt as an instrument you can drive. It runs live below on an invented machine-tool pipeline: score the deals, turn the win-target dial, read off the suggested margins.

Open the demo full screen

A machine-console stand-in for the original: a gauge, a win-probability read-out in LEDs, and a register of open deals. Turn the win-target dial to the odds you want, from a coin-flip up to the literal 90% of the goal, and every margin recommendation on the register moves with it. Open a deal to sweep its margin curve and see which features push its odds. Every account and number is invented; nothing talks to a server.

Where the model lied to me

The margin story was almost too good, and twice the data was the reason. The first time was structural. Different countries ran their opportunities through completely different sales channels while, for some reason, forcing themselves to log everything in the same format. I noticed it late, after too long shadowing Italian reps and trusting a market I was close to, and it was overfitting the models and dragging the international numbers down. The fix was to narrow onto direct sales and rebuild from there. I could have caught it earlier by clustering the data first, and that is the lesson I took from the project.

The second time was subtler. Quoted prices move constantly while a deal is negotiated, so the monetary fields were partly leaking late-stage information; the margin model was reading the future. I flagged it myself, cut the monetary features, and refocused on what survived scrutiny: prioritisation. Each opportunity landed on a matrix crossing importance (management criteria like deal size, market and account class) with difficulty (learned from history: visits, calls, timing).

To ground that, I toured sales managers across eight regions, mapping how each one defined priority, what data they trusted, and what they would use, then condensed it into an approach matrix that typed each region as builder, fan, spectator or fighter. “I have a nail, now I need a hammer,” one manager told me, which was the moment I knew the tool was answering a real question.

Proving it against the sellers

Accuracy is meaningless without a baseline, so I ran the only fair test I could: the model against the sellers themselves. We took about seventy-five open opportunities, direct sales only, at most ten per rep, closest closing dates first, and asked each seller to log their own win-probability before the model called the same deals independently. Their reactions ran from skeptical to fascinated; “I would have said that too” was the common line when the numbers matched their gut. The first live predictions all landed. Then COVID froze the market mid-pilot, and only a handful of those deals ever closed. “The cake was big; now it is not,” as one international manager put it. On the ones that did close, live accuracy and AUC matched the historical test, so the model held up outside the lab.

A tool they could run without me

Leadership saw the results in a deck I titled “Artificial Intelligence is totally useless”; slide two admitted the title was a lie. It closed on the case for a data culture, not on the model. Delivery stayed pragmatic: Excel briefings went straight to sales managers first, integration later, adoption first. And the research notebook became a tool the sales team could run without me, shipped as a command-line program: point it at a dataset, let it join and augment the data, search for the best algorithm and parameters, save the model, and get predictions from a plain interface. A home-grown AutoML for people who did not code, in place of a notebook only I could operate.

What shipped

It deployed in three countries with executive sponsorship secured for more AI work. The rollout had barely begun when COVID disrupted the whole industry, so the fuller real-world impact was never cleanly measured. The pilot and the multi-country rollout were a strong signal on their own, and the data-quality work kept paying off after the project closed.

The hackathon

The same year, I took third place at the company’s first AI hackathon: 41 people over two days, ours the smallest team at two, with an NLP demo for anticipating customer needs. Undermanned, and I still think we punched above our weight.

next project: Making sense of customer feedback with NLP →