How to Build a Lead Scoring Model in MadKudu Without Overfitting to Sales Gut Feel
September 17, 2026 · EASI7 Team · 8 min read
Most lead scoring projects fail in a way that never shows up until months after launch: the model looks reasonable, sales nods along with the scores, and conversion rates on scored leads don't meaningfully improve. The usual cause isn't a MadKudu configuration problem. It's that the model was built to match what sales already believed about the ideal customer rather than to predict who actually converts, so it confidently reinforces a bias instead of correcting for one. For background on what MadKudu covers and how its predictive scoring engine works, see our full MadKudu profile. This is the workflow for building a model that earns the trust sales puts in it, rather than one that just repeats sales back to itself with a number attached.
The Failure Mode: A Model That Learns Sales's Opinions Instead of Real Outcomes
Ask a sales team to describe their ideal customer and they'll produce a confident answer almost immediately: mid-market SaaS companies, a VP of Marketing as the buyer, a certain company size range. That description isn't wrong exactly, it's usually grounded in real pattern recognition from deals reps have closed. But it's also incomplete in a specific way: it only reflects the accounts sales has spent time on, which is itself shaped by who marketing generated as leads, who past scoring rules routed to sales, and who a given rep happened to prioritize on a given week. A model trained directly on that stated profile, rather than on what the full universe of leads actually did, doesn't discover anything new about who converts. It just encodes the existing funnel's blind spots as if they were a discovered truth, and then presents that encoded bias back with the authority of a data-driven score.
This matters more with a tool like MadKudu specifically because its scoring is positioned as predictive rather than rule-based, so it carries an implicit claim of objectivity that a simple point-based scorecard doesn't. A rules-based score that weights company size and job title is transparently just a set of assumptions someone wrote down. A predictive model that spits out a single number between 0 and 100 reads as though it discovered that number from the data, and that framing makes it easy to stop questioning where the number actually came from. If the underlying training data was really just sales's opinions in structured form, the model has simply made an old bias harder to see, not replaced it with something more accurate.
Step 1: Train on Actual Closed-Won and Closed-Lost History, Not a Stated ICP
Before building anything in MadKudu, pull the real historical record from the CRM: every account that closed won, every account that closed lost, and enough of the leads that never converted at all to represent what a normal inbound or outbound funnel actually looks like. This is the data the model should learn from, not a document describing who sales believes should be a good fit. The distinction is concrete. A stated ICP says "our best customers are mid-market SaaS companies." The closed-deal history might show that a meaningful share of actual revenue came from a company size band nobody would have described as ideal, simply because those deals never got surfaced as a pattern worth naming. A model trained on the real outcome data can surface that pattern. A model trained on the stated ICP never gets the chance to find it, because it was never shown the disconfirming evidence in the first place.
Step 2: Include Genuine Losses and Non-Converters, Not Only Wins
A common shortcut is training a model mostly on won deals and treating everything else as background noise, which quietly reproduces the same bias problem in a different form. A model needs to see what didn't convert just as clearly as what did, including accounts that matched the stated profile on paper but never closed, in order to learn what actually distinguishes a real buyer from a superficially similar non-buyer. Leaving losses out of the training set means the model can only ever confirm that won deals look like won deals, which is a circular result rather than a predictive one. MadKudu's Customer Fit and Predictive Scoring models are built specifically to compare converters against non-converters across the full account base, and that comparison only works if the losses in the dataset are real and complete rather than thinned out to whatever sales chose to log carefully.
Step 3: Combine Firmographic Fit With Genuine Behavioral Signals
Firmographic data, industry, company size, tech stack, revenue band, is a legitimate input, but fit alone tends to just re-describe the ICP in numeric form rather than adding anything predictive on top of it. The more valuable half of the model is behavioral and product usage data: which pages someone visited before signing up, how quickly a trial account activated a core feature, whether a free user invited teammates, how a prospect engaged with specific content or a pricing page. Those signals reflect what someone is actually doing right now, not what segment they happen to fall into on paper, and they're frequently what separates two firmographically identical leads where one converts and the other doesn't. Building the model around firmographic fit plus behavioral intent, rather than fit alone, is what gives MadKudu's score room to disagree with a lead's superficial profile when the behavior says something different, which is exactly the case a purely fit-based rule can never catch.
Step 4: Watch for a Model That Backtests Well but Breaks on a Changing ICP
A model that scores well against its own training history can still fail in production, because the market it was trained on isn't necessarily the market it's scoring leads against six months later. A company that expands upmarket, launches a new product line, or starts generating demand from a genuinely new industry segment is asking the model to score accounts that look different from anything in its original training data, and a model tuned tightly to the old pattern will often score those new-fit accounts low simply because they're unfamiliar, not because they're actually poor prospects. This is the same underlying bias problem showing up again in a new form: a model that was corrected for sales's historical opinion can still calcify around whatever fit pattern happened to be true when it was trained, and start actively working against a business that's supposed to be growing into new territory. Treating the model as a fixed asset built once at rollout, rather than something to recalibrate as the funnel's composition genuinely shifts, is how a scoring system quietly becomes outdated while still looking authoritative on the dashboard.
Step 5: Recalibrate on a Set Cadence, Not Only When Something Breaks
The fix is a scheduled review, at minimum quarterly, where new closed-won and closed-lost data since the last training run gets fed back into the model and its scoring behavior gets checked against what actually happened. MadKudu's models can be retrained as more outcome data accumulates, and that retraining is the mechanism that lets the score track a genuinely evolving ICP instead of freezing around a snapshot from launch day. This doesn't need to be a heavy process. What matters is that it happens on a schedule tied to the business's actual sales cycle length, rather than being triggered only after someone notices scoring has quietly stopped matching reality, by which point a meaningful stretch of leads has likely already been misrouted.
Step 6: Validate Against a Holdout Set Before Routing a Single Lead on the Score
Before the score gets wired into lead routing, alerting, or any workflow that changes what a rep actually does, hold back a set of accounts with known, real outcomes that the model didn't see during training, and check whether its scores actually rank those accounts correctly. A model that separates real converters from real non-converters on data it has never seen is doing genuine predictive work. A model that only performs well on the data it was trained on is very possibly just memorizing that specific history rather than learning something that generalizes, and deploying it on faith at that point risks routing real leads on a score that looks credible but isn't actually predictive of anything new. This validation step is what separates trusting the model because the methodology was sound from trusting it because the number felt right, and it's worth treating as a hard gate before the score touches how leads get worked, not an optional check to run after rollout if there's time.
What This Produces
Built this way, a MadKudu scoring model stops being a data-driven restatement of what sales already believed and becomes something closer to an actual check on that belief: trained on real closed-won and closed-lost history rather than a stated ICP, built on genuine losses as well as wins, weighted toward behavioral signals alongside firmographic fit rather than fit alone, recalibrated on a real cadence as the ICP shifts, and validated against outcomes it never saw before it's trusted to route a single lead. That's a meaningfully different outcome than a score that mirrors sales's existing instincts back to them with a number attached, and it's the difference between a scoring model that genuinely improves conversion rates and one that just makes an old bias harder to question.
If you're still deciding whether MadKudu's predictive approach is the right fit against a simpler rules-based scorecard, our MadKudu tool profile covers the model types, data requirements, and pricing in more detail.
Rolling out predictive lead scoring and not sure it's actually predicting anything?
We'll check whether your model is learning from real outcomes or just automating sales's existing assumptions before you route a single lead on it.
Ready to get started?
We usually reply within 24 hours.
We only use this to reply to you - no spam, unsubscribe any time.