‍

Lead Qualification: MQL vs SQL and What Makes a Sales Qualified Lead

MQL vs SQL, explained for B2B teams: what makes a sales qualified lead, where SALs and SQOs fit, why outbound skips the MQL stage, and a copy-paste SQL definition.

By
Thibault Garcia
8/4/26
Title card reading Master What is Lead Qualification for Better Sales. on a soft lilac background.

MQL vs SQL comes down to who qualified the lead and on what evidence. An MQL (marketing qualified lead) is a contact whose fit and engagement have passed marketing's lead score. A sales qualified lead (SQL) is a contact that sales has confirmed is the right company and the right person, with a real problem and a reason to talk now. Lead qualification is the process that moves a lead from one to the other, and it filters hard: Forrester finds fewer than 1% of leads make it from the top of the funnel to a closed deal.

Key Findings

  • An MQL is scored by marketing on fit and engagement. An SQL is confirmed by sales from a reply or a call: the right company, a real problem, the right person and a reason to talk now.
  • Four checks make a sales qualified lead: fit, problem, person and timing. A lead that misses any one of them stays in nurture.
  • A sales accepted lead (SAL) sits between MQL and SQL: sales agrees to work the lead, or rejects it with a reason. Teams that skip the SAL step lose the feedback that fixes their lead score.
  • Outbound has no MQL stage. Reachly checks each account against the ICP and a live buying signal before the first email, so a positive reply goes straight to the SQL test.
  • At The Great Room, about 30% of Reachly outbound leads dropped off after qualification, against about 50% of leads from Google Ads and SEO.
  • A written SQL definition gives sales a deadline to accept each lead, such as two working days, and a reason code for every rejection. The template below is ready to copy.

What is the difference between an MQL and an SQL?

The difference between an MQL and an SQL is who makes the call and what they base it on. Marketing marks a lead as an MQL when its score says the contact looks like a buyer and has engaged enough. Sales marks a lead as an SQL after a reply or a call shows a problem worth a discovery meeting.

What counts as an MQL

An MQL score usually adds up two kinds of points. Fit points come from firmographic data: industry, company size, region and job title. Engagement points come from behavior: a pricing page visit, a webinar, two downloads in one week. When the total crosses the threshold both teams agreed on, the lead becomes an MQL and gets routed to sales.

What counts as an SQL

An SQL is a lead a salesperson has checked: they read the reply or took the call, and can say in one sentence why the account deserves a discovery meeting. The evidence is something the buyer said or did, which is why sales teams trust SQLs more than MQLs.

MQL vs SQL at a glance
MQL (marketing qualified lead)SQL (sales qualified lead)
Who decidesMarketing, from a lead scoreSales, from a reply or a call
EvidenceFit data plus engagement: downloads, visits, webinarsA named problem, the right person and a reason to act now
Typical sourceInbound content, ads and eventsDemo requests, outbound replies and referrals
What happens nextNurture, or route to sales for acceptanceA discovery meeting gets booked
Number to watchMQL-to-SQL rateSQL-to-opportunity rate
How it goes wrongThe score rewards curiosityReps book anyone who says yes

MQL and SQL labels are only as good as the definitions behind them. If marketing scores a student who downloaded an ebook as an MQL, the SQL rate collapses and sales stops trusting the pipeline. If sales counts every polite reply as an SQL, the opportunity rate falls instead.

Reachly's pipeline generation guide counts pipeline the same way, as opportunities the sales team has accepted.

What makes a lead a sales qualified lead?

A lead becomes a sales qualified lead when it passes four checks: fit, problem, person and timing. BANT and MEDDIC test the same four things with more questions. For the questions that test each check in a live conversation, see the guide on how to qualify leads in sales.

Fit

Fit means the company matches your ICP on industry, size, region and business model. Fit is the only one of the four checks you can run from data alone, before anyone has replied.

Problem

The problem check asks whether the buyer has the problem you solve, either in their own words or through a visible buying signal. A funding round, a tool migration, falling search traffic or hiring for a role your product supports all make the problem more likely.

Person

The person check asks whether the contact owns the problem, or has pointed you to the colleague who does. A referral to the right person passes. A friendly reply from someone with no say in the decision stays in nurture.

Timing

The timing check asks whether there is a reason to talk this quarter. A reply like "interested, but next year" fails timing, and the lead goes back to nurture with a follow-up date.

How Reachly decides a meeting is qualified

Reachly sets the bar with each client during TAM mapping: a meeting counts as qualified when the person matches the ICP criteria agreed at the start. When that mapping is done well, 80 to 90% of booked meetings clear it. The rest are contacts who fit on paper and turn out otherwise in the conversation.

Where do SALs and SQOs fit between an MQL and a closed deal?

Larger teams add two more labels. A sales accepted lead (SAL) is an MQL that sales has reviewed and agreed to work. A sales qualified opportunity (SQO) is an SQL that has been through discovery and now sits in the forecast.

Lead stages from first touch to opportunity
StageOwnerExit test
LeadMarketingA contact record exists, from a form, an event or a list
MQLMarketingThe lead score passes the agreed threshold for fit and engagement
SALSDR or salesSales has reviewed the lead and agreed to work it, inside an agreed deadline
SQLSDR or account executiveFit, problem, person and timing confirmed in a reply or a call
SQOAccount executiveDiscovery done and a deal created in the CRM

The SAL step makes sales accept or reject every MQL within a set time, and give a reason for each rejection. Those reasons are the feedback marketing needs to fix its lead score.

Does outbound have MQLs at all?

Outbound mostly has no MQL stage, because an outbound prospect has not downloaded anything and there is no engagement to score. In outbound, qualification moves in front of the send: each account is checked against the ICP and a live buying signal before the first email goes out.

Inbound funnel
LeadForm fill or content download
MQLMarketing score passes the agreed bar
SALSales reviews it and agrees to work it
SQLFit, problem, person and timing confirmed
OpportunityDiscovery done, deal in the CRM
Signal-based outbound
Account in the TAMMapped from 10+ data sources
ICP and signal checkFit and a live buying signal, before the first email
Positive replyThe buyer raises a hand
SQLProblem, person and timing confirmed
OpportunityDiscovery done, deal in the CRM
A qualification checkA stage the lead passes through

Reachly runs signal-based outbound in that order. The TAM is mapped first, accounts are enriched with signals like hiring, funding and headcount growth, and only accounts that pass both checks get a sequence. Fit was settled before the email, so a positive reply only has to answer problem, person and timing to become an SQL.

What that looked like for two clients

For Primal, campaigns triggered by hiring, funding, falling traffic and ranking drops produced 85+ SQLs in six months, at an 8% positive reply rate. At The Great Room, leads from Google Ads and SEO dropped off about 50% after qualification, and Reachly outbound leads dropped off about 30%.

The gap between those drop-off rates comes from the order of the checks. The inbound leads were qualified after they arrived, and the outbound leads were qualified before anyone wrote to them.

How do you write an SQL definition sales will accept?

A good SQL definition fits on one page, is written with sales in the room, and is signed by both teams. Without one, the MQL-to-SQL rate turns into an argument, because marketing and sales are counting different things.

The template below turns the four SQL checks into that agreement, with a deadline for sales to accept or reject and a reason code for every rejection. The handoff note underneath travels with each SQL, so the account executive walks into the meeting with context.

SQL definition and handoff note
SQL DEFINITION: [company], agreed [date] by [marketing lead] and [sales lead]

A lead becomes an SQL when all four are true:
1. Fit: the company is in [industry], has [employee range] staff, sells in [region]
2. Problem: they named [problem], or showed [signal] in the last [90] days
3. Person: the contact is [role], or has routed us to [role]
4. Timing: there is a reason to act this quarter: [trigger]

Sales accepts or rejects every lead within [2] working days.
Every rejection gets one reason code and goes back to nurture:
NO FIT / NO PROBLEM / WRONG PERSON / NOT NOW (with a follow-up date)

HANDOFF NOTE (paste into the CRM with every SQL)
Account:
Who replied, and their role:
Signal or trigger:
The problem, in their words:
Others likely involved:
Objections raised so far:
Next step booked:

Review the rejections every month

Pull last month's rejected leads and count the reason codes. A pile of NO FIT means the score or the list is too loose. A pile of NOT NOW means the timing signal is weak. Change one rule at a time, so you can see which change moved the number.

How do you measure MQL to SQL conversion?

Divide the SQLs created in a period by the MQLs created in the same period, then multiply by 100. Two hundred MQLs and 50 SQLs in a quarter is a 25% MQL-to-SQL rate. Track it by source, because a blended rate hides a weak channel behind a strong one.

Qualification numbers and where they come from
MeasureFigureSource
Leads that make it from top of funnel to closed dealFewer than 1%Forrester, Oct 2023
Average B2B MQL-to-SQL conversion40%, across 939 companies, Q2 2025 to Q1 2026Optifai Sales Ops Benchmark, Apr 2026
Drop-off after qualification, Google Ads and SEO leadsAbout 50%Reachly, The Great Room case study
Drop-off after qualification, Reachly outbound leadsAbout 30%Reachly, The Great Room case study
SQLs from signal-based outbound in six months85+Reachly, Primal case study

Published MQL-to-SQL averages vary widely because every company draws the MQL line in a different place. Compare your rate with your own last quarter before comparing it with anyone else's. For outbound, the better pair of numbers is positive reply rate and SQL-to-opportunity rate, since there is no MQL in between.

Reachly runs this qualification layer for clients through its lead qualification service and B2B appointment setting: reply handling, the SQL check and the handoff note.

Get meetings that pass your SQL definition

Reachly checks each account against your ICP and a buying signal before it sends the first email, then books the meetings that pass your four checks. Plans start at $3,500 a month and cover cold email, LinkedIn and cold calling.

Book a call with Reachly →

‍

FAQ

What comes first, MQL or SQL?

In an inbound funnel the MQL comes first: marketing scores the lead, sales accepts it, then qualifies it into an SQL. The order can also run backwards. An SQL that stalls, or says not now, goes back to marketing as a recycled lead with a date to try again, so one contact can be an MQL twice in the same year.

How is an MQL calculated?

Most teams use a points model. As an example, give up to 50 points for fit (20 for the right industry, 15 for company size, 15 for job title) and up to 50 for engagement (25 for a pricing page visit, 10 for each download). The lead becomes an MQL at an agreed total, such as 60. Let engagement points expire after 30 to 90 days so old activity stops counting.

What is a qualified opportunity in sales?

A qualified opportunity is an SQL that still holds up after the discovery meeting. The usual tests are a problem with a cost attached, a known buying process, a next step both sides agreed to, and an expected amount and close date on the deal record. Only qualified opportunities belong in the revenue forecast.

What are the 7 types of leads in sales?

Lists vary, but the seven most teams use are cold leads (no contact yet), warm leads (some engagement), hot leads (asking to buy), information qualified leads (they traded contact details for content), MQLs, SQLs, and product qualified leads, who used a free trial or free plan in a way that predicts a purchase.

How much does a qualified lead cost?

The cost of a qualified lead depends on the channel and on how strictly you define qualified. As one reference point, Reachly's managed outbound starts at a flat $3,500 a month and produces 10 to 40 highly interested leads a month depending on volume, which is roughly $88 to $350 per lead at the starting retainer. Whatever the channel, compare cost per SQL, because a cheap lead that never qualifies is the expensive one.

What does SQL mean in sales?

In sales and marketing, SQL stands for sales qualified lead. It has nothing to do with SQL the database language (Structured Query Language), which is why a search for the term often turns up coding tutorials. You will also see it written with a hyphen, sales-qualified lead, and both spellings mean the same stage.

Recommended service

B2B Appointment Setting Services

Reachly qualifies every reply for fit, authority, and intent, then books the meeting straight onto your calendar.

Thibault Garcia
Founder
I’ve spent the past 11 years working across sales and growth marketing, helping businesses build predictable pipeline. My focus is on lead automation, lead generation, LinkedIn optimisation, sales funnels, and practical growth systems. I’ve worked with 180+ businesses on improving their revenue operations, and I enjoy breaking down what consistently works in outbound, positioning, and building repeatable growth.
 
class SampleComponent extends React.Component { 
  // using the experimental public class field syntax below. We can also attach  
  // the contextType to the current class 
  static contextType = ColorContext; 
  render() { 
    return <Button color={this.color} /> 
  } 
}