Skip to content
Work with Shashwat
Menu

Guide 23 · Demand generation and ICP

Lead Scoring and MQL Rules That Sales Will Trust

For demand generation heads, RevOps and founders.

The short answer

Sales trusts a lead score when it can see why a lead scored, when the score was tested on deals the team won and lost, and when a lead with unknown data is held back instead of scored as zero. Build the fit model first, set the newest third of your closed deals aside, and tune on the rest, keeping a change only if it passes more wins or fewer losses under the MQL rule you will use. Test what a lead shows at first touch apart from what you learn on the first reply. Score the held-back deals once at the end. Then score this week's leads, add intent, and rank the accounts that pass. An MQL is a rule you agree with sales in writing: a fit tier plus an intent floor or a sales request, never a single blended number. A blended score may order the accounts that pass, but never decides who passes. Free tools draft each step, and you check each one.

Why sales stops trusting the MQL

At a GTM teardown with AI founders, one founder had a "leaky bucket of Inbound leads". The teardown suggested an overhaul of the inbound process, the lead qualification criteria and the ABM account list (LinkedIn, 30 Mar 2026, founder unnamed). That case was about an inbound process, not a scoring model. At FieldAssist, as CMO, mid-market and enterprise qualified leads grew 2.25x. This page is a worked example on public and illustrative inputs, not a client result.

The usual failure has three parts. Fit and engagement are added into one number, so a student who downloads five guides outscores a head of platform engineering who visited pricing once. The weights were never checked against a closed deal. And a blank field scores zero, so sales learns to ignore a low score.

The method, and where free tools help

The rules are yours: the criteria, the test, the intake, the MQL rule. Free tools give a first draft of each step, alongside, and you check each one. The lead scoring model skill refuses to tier any lead with a missing or unlisted value. It is in review and not yet installable, so step 2 is followed by a connector-only route.

Fit comes before intent because intent on a poor-fit account is noise. The back-test comes before routing because sales uses a model it has seen tested on its own deals.

Worked example: TrueFoundry

Step 1. Draft the fit criteria, and grade them yourself

About this example. TrueFoundry is a real company. TrueFoundry has not reviewed this guide. Public facts are linked alongside with the date I checked them. Every number, deal, lead and customer type marked illustrative is an input I chose to show how the tools work; it is not TrueFoundry's data, and the tool outputs are exercise results, not TrueFoundry's real strategy.

What is public: TrueFoundry raised a $19 million Series A in February 2025 and describes itself as "The Enterprise AI Gateway for LLMs, MCPs & Agents". Its pricing page shows three doors: a free Developer plan, a Pro plan with a "Start free trial" button, and an Enterprise plan through "Contact sales", which adds VPC and on-prem options. Every door produces leads, and the score has to read all three the same way.

Input, all illustrative: five criteria for "AI gateway and agent infrastructure for engineering teams", with the values in the table alongside listed best first, plus a success pattern: deals where a platform engineering lead runs the evaluation and VPC deployment is required close at about twice the ACV of public-cloud-only deals.

What came back: a maximum of 90, tiers at 80%, 60% and 40% of it, weights "preset by importance level", and every point labelled an example.

How to read it: I kept the criteria, the maximum and the tier bands, and rewrote two rows. Two criteria I meant as a scale came back as lists of wanted values: "VPC or on-prem required", "Hybrid" and "Public cloud only" all scored 25, and "Pilot only" scored the same 15 as "Yes, in production". A scale needs points that fall, so I set deployment at 25, 13 and 0, and production at 15, 8 and 0. I also set aside its pattern check, which suggested top points for "Public cloud only", the weaker case in my pattern.

Two limits. A public cloud buyer can reach 65 at most, tier B, so this score favours the Enterprise door; if public cloud deals matter, give them their own model. And my top employee band stops at 10,000: add a band above if you sell to large banks.

Step 2. Back-test the model on closed deals

Input: the same five criteria, graded best first, and ten illustrative closed deals, six won and four lost, entered as leads, with values alongside as the deals closed. The tallies are mine.

Two warnings. Closed deals carry fields reps filled during the sale: deployment, production and platform team are 50 of these 90 points, and a new lead rarely shows them. So score each deal only on what was known the day it became a lead. If your CRM keeps only the latest value, use the first form fill and dated enrichment, and leave the rest blank. And closed deals never meet the junk the score exists to stop, so add a sample of leads sales rejected and hold them to the loss limit in your stop rule.

Run 1, example default weights: five of six wins in A or B, three of four losses in C or D. Two deals looked wrong: Lost 4, tier B with no LLM apps in production, and Won 5, tier C with apps live.

Run 2 swapped two weights: employees to 15, 8 and 0, production to 25, 13 and 0. Neither deal changed tier, and Won 3 fell from 56 in B to 51 in C.

So Lost 4 gets a gate instead: my suggested rule, not the tool's, is that a lead whose production value is "No" is not an MQL at any score. "Pilot only" passes the gate, because Won 3 and Won 4 were pilots.

Judged on the rule sales will use, fit tier A or B with the gate on, run 1 passes five wins, run 2 four, and neither passes a loss. I keep run 1 and the gate, and log the rejected swap with its reason and date.

A stop rule has to be able to reject a change. Mine, illustrative: at least 80% of wins pass and at most 25% of losses and rejected leads pass under the MQL rule, on tuning deals and on held-back deals. Run 1 reaches 83% and 0%; run 2 reaches 67% and fails. I wrote that after seeing both runs, which is thin: write yours before the first run. After three changes that miss, stop and tell sales the fields do not separate wins from losses.

My ten deals break the first warning, and here is the cost. Blank production and platform team, as a new lead would, and the skill holds all ten. The best case at first touch is three fields: deployment from a form, employees and industry from enrichment. On those alone, maximum 65 with tier B from 39, the skill passes Won 1, 2, 4 and 6, and also Lost 2 and Lost 4, which fails my stop rule. The gate cannot help, because nobody yet has the field it reads. So the 0 of 4 shows only that production, once known, separates these ten deals. It does not show a score stopping a loss on arrival. Hence two stages, in step 3.

Do not trust those numbers yet. Ten deals tuned by hand fit themselves: one win moves the rate 17 points, I wrote the gate after seeing Lost 4, and these deals carry no intent data, so the intent floor in step 4 is untested. Export as many deals as you can, set the newest third aside before you look, and score them once at the end. This exercise has no held-back deals or rejected leads to show. If yours fail, do not retune on them: run the score as guidance for a quarter and retest on new deals. At 30 deals and an illustrative 25% win rate, the newest third holds about two or three wins, so 80% means every one: a sanity check, not a measurement. My floor, illustrative: under 30 closed deals, skip the score and use three yes or no questions from your top criteria, plus a rep's read. Count value too: a rule that misses your largest win is worse than its rate suggests.

This is the point where I would want a second pair of eyes: the held-back run fails before sales adopts the MQL rule. Bring me your first-touch export, held-back outcomes, sample size, intent window and sales acceptance decision, and we will work it through in 45 minutes.

No plugin yet? The connector-only route

The ICP Intelligence template is no substitute: on the deployment row it prints "Anything not listed above (0 pts)", the score-as-zero habit this guide warns against.

  1. Write your own graded points for each scale, and ignore the list points.
  2. Keep one named two-column range per criterion (value, points), such as Deployment. Delete any "not listed" row.
  3. Keep lead values in K2:O2. Score C2 with =IFNA(VLOOKUP(TRIM(K2),Deployment,2,FALSE),"HOLD"), and D2 to G2 the same way on their ranges. It returns HOLD on a blank or unlisted value. A typed *, ? or ~ can still match a row, so make these columns dropdowns.
  4. Total in H2 with =IF(COUNTIF(C2:G2,"HOLD")>0,"No tier",SUM(C2:G2)).
  5. Tier in I2 with =IF(ISNUMBER(H2),IF(H2>=72,"A",IF(H2>=54,"B",IF(H2>=36,"C","D"))),"No tier"). Keep the ISNUMBER: without it, Excel gave both held leads tier A. The 72, 54 and 36 are hard-coded: use 80%, 60% and 40% of your maximum, rounded up.
  6. Tally wins and losses under your MQL rule, as in step 2, on first-touch fields and on all fields, and apply the same stop rule.

These formulas matched the script in Excel on all ten deals and six leads. I did not run them in Google Sheets.

Step 3. Score this week's leads, and hold back the unknowns

Most holds are an intake problem, so build intake in two stages. At first touch, ask deployment in one dropdown at all three doors, and fill employees and industry by enrichment. That three-field score orders the work and rejects nobody: Won 3 and Won 5 sit in tiers C and D on it. On the first reply, a rep asks production and platform team; trials and signups get the same two questions in onboarding. No lead is an MQL until production is known, because the gate reads it. Keep a mapping table for the words people write, so "On-prem" becomes "VPC or on-prem required" before the script sees it.

Input, before any mapping: the run 1 model and the six illustrative leads alongside, two from each door, as they stand after the first reply. A contact sales lead wrote "On-prem", which is not exactly on the list, so the skill returned "pending your confirmation, no tier". A Pro trial lead had "N/A" for employees, so it came back "incomplete, no tier".

My suggested rule: pending and incomplete leads go to a research task with each open item named, then back through the script. At signup volume, research only leads that can still reach tier B; send the rest to nurture.

A hold stops the MQL label, never the reply. Mine, illustrative: anyone who asks for sales hears from a rep the same day, in any tier. Other holds get five working days, then go to nurture with open items logged. Lead 4 shows why: a regulated firm that asked for sales, held on one word. Mapped, it has 73 points and one blank, tier A whichever way the blank goes. My rule: if every answer lands in the same tier, clear it, unless the blank is production, which the gate needs.

Step 4. Apply the MQL rule and rank the accounts

The MQL rule, illustrative and my own: fit tier A or B on the back-tested five-field model, no gate triggered, and either intent of 50 or more or a contact sales request. A tier A or B buyer who asks for sales should not wait for a second signal. A request in tier C or D still gets its reply, but is not an MQL. Intent points, illustrative and mine, over the last 14 days: 40 for a Pro trial started or a contact sales request, 30 for gateway requests above half the plan's monthly allowance, and 10 for each other sign, up to 100.

Three illustrative accounts passed: Lead 1, Lead 6 and Lead 5, once a rep confirmed its size band as 250 to 999, which scored 78 of 90, tier A. Fit for the ranking tool is the model score out of 100: 68 of 90 is 76. Relationship and timing are the account owner's calls, and a sales request is always now. Lead 4 joins once its mapping is confirmed. Before ranking, merge people at one firm into one account, and drop customers and open deals.

Input to the ranking tool: company TrueFoundry, the category quoted in step 1, and the accounts alongside, in that order. What came back: the lending fintech ranked first with 73. All three landed in the ranking tool's tier B, a separate scale from the fit tiers. Two printed 66. Treat that as a tie: reversing my list reversed them.

How to read it: I keep the order and drop the action lines, which suggest a warm introduction even for a lead who already asked to talk. A blend is safe here only because these accounts already passed. So send each account's fit tier, intent points and signal with it.

Lead 2 is the price of run 1: intent 90 but fit tier C, so it failed the rule. On run 2 it scored 56 and passed. Ten deals cannot settle that, so I send it to a rep as a manual review, marked not an MQL.

There is a fourth door: product usage. A head of platform engineering on the free plan can show heavy use with fields nobody filled. So usage above half the plan's allowance from a work domain opens a rep's review. It scores only 30, so if the account passes on fit, the rep can hand it over as a sales request would.

One more rule, my own: sales accepts or rejects each MQL within an agreed window, with a reason. Record lead-to-opportunity rate before launch as your baseline, start the accept rate on day one, and read both by fit tier monthly. Save each lead's values as they arrive, so your next back-test is true first touch. Accept rate cannot see good leads the rule rejected, so each month a rep reads 20 of them. If manual reviews like Lead 2 keep getting accepted, reopen run 2.

What to do this week

  1. Export closed won and lost deals and a sample of rejected leads, keep only what was known at first touch, and set the newest third aside.
  2. Draft the criteria in ICP Intelligence, and grade any scale yourself.
  3. Back-test first-touch fields and all fields, in the skill or by the connector-only route. Write a stop rule that can reject a change, log each run, then score the held-back deals once.
  4. Fix intake in two stages, then write the MQL rule with your sales lead: fit tiers, intent floor, gates, the contact sales rule and who clears held leads by when.
  5. Rank this week's MQL accounts, send the list with reasons, and track the accept rate by tier.

Five mistakes that cost the score its credibility

  1. Letting a blend of fit and engagement decide who is an MQL.
  2. Shipping weights nobody back-tested, or calling ten deals proof.
  3. Scoring a blank as zero.
  4. Letting the entry route decide fit.
  5. Reading tie order as a ranking.

Questions and answers

What is the difference between a lead score and an MQL rule?

A lead score measures one thing, such as fit. An MQL rule is the agreement with sales on what gets handed over.

Should free signups and trials count as MQLs?

Only when they pass the same fit rule as every other lead. Heavy product usage can open a rep's review, but it does not replace the fit test.

How often should I re-test the scoring model?

Each quarter, and after any ICP change, against your stop rule.

What is the difference between an MQL and an SQL, and should scores fall?

An MQL is a lead marketing hands over under your rule; an SQL is one sales has qualified as a real opportunity. Use a gate, not negative points, for leads you should not hand over yet. Let intent decay with a time window, as in step 4.

Run these tools free with your team, or bring Shashwat in

Related guides

About the author. Shashwat Ghosh is Co-Founder and Fractional CMO of Helix GTM Consulting, founded in 2022 in Bengaluru. He has 24+ years of B2B marketing, 10+ years fractional and 37+ client engagements. He created the EPIC, IMPACT and CRAFT frameworks and the Hub-Spoke Brand Messaging Methodology. More about Shashwat. How these guides are made.

Last updated 2 November 2026