SaaS · Machine learning
Predictive sales analytics
Forecasts the team believed

The context
A funded SaaS company scaling its sales team, with years of CRM history nobody fully trusted. Leads arrived faster than reps could qualify them, forecasts were assembled from rep sentiment in pipeline reviews, and leadership needed predictable revenue to plan hiring and spend. The operating environment was the CRM itself: reps lived in it all day, data hygiene was uneven, and any insight that asked them to open another tool was going to be ignored.
Why normal software was not enough
Dashboards and CRM reports could show what had happened; they could not say which lead to call first or which deal was quietly dying. Rule-based lead scoring just encodes the team's assumptions, and those assumptions were part of the problem. The useful signal lived in patterns across the whole closed-won and closed-lost history: stage velocity, engagement gaps, what real customers had in common. Getting at it took models trained on that history, not another report.
The problem
The CRM was full and the forecast was folklore. Reps chased leads by gut feel, pipeline reviews argued about opinions, and deals died quietly weeks before anyone noticed they were at risk.
What we built
We modeled the funnel end to end: lead scoring against closed-won history, ideal customer profiles discovered from data instead of assumed, forecasting from stage-velocity patterns, and risk detection that flagged deals going quiet. Everything surfaced inside the CRM the team already used, not in another dashboard nobody opens.
What changed
- Lead prioritization lifted qualified-lead conversion by roughly a quarter
- Forecasts derived from pipeline behavior rather than sentiment
- At-risk deals flagged weeks earlier from engagement signals
- Ideal customer profile rebuilt from evidence, reshaping outbound targeting
What production made hard
- CRM data is entered by busy salespeople: stages skipped, fields left blank, close dates pushed forward again and again. The models had to be built for that reality, not for a clean warehouse.
- Label leakage had to be hunted deliberately: some CRM fields only get filled in after a deal closes, so a naive model looks brilliant in training and useless on live pipeline.
- Closed-won history is finite and lumpy. A handful of large deals can dominate the patterns, so the work included keeping models from memorizing outliers and calling it insight.
- A score reps do not believe changes nothing. Every score needed a plain-language reason attached, surfaced inside the CRM views the team already worked in.
- Acting on scores changes the data that trains them: once reps chase high-scoring leads, conversion patterns shift, so recalibration had to be designed in rather than bolted on.
What a similar project needs
- CRM history with both outcomes recorded: closed-lost as honestly as closed-won. Models cannot learn what risk looks like from a pipeline where losses were quietly deleted.
- A timeline shaped audit-first: data quality and leakage checks before any modeling, one score live on real leads early, forecasting added once the scores have earned trust.
- People on your side: a revenue leader who sponsors adoption, a RevOps owner who knows where the data lies, and reps giving feedback from the start.
- Delivery inside the tools reps already use. Budget real engineering time for CRM integration and score explanations; a separate dashboard is where adoption quietly dies.
- A plan for drift: once the team acts on scores, the underlying patterns move. Monitoring and recalibration belong in the original scope, not in a phase two that never comes.
Have a problem in this shape?
Tell us what you are trying to win. We will map your version of this build in one call.