GLOSSARY

What is an SQL, a Sales Qualified Lead?

An SQL (Sales Qualified Lead) is a lead a salesperson has personally examined and accepted into the pipeline after confirming, against a written checklist, that there is a real problem, a plausible budget and a reason to talk now.

Free forever plan · No credit card required · Cancel anytime

Quick definition

An SQL (Sales Qualified Lead) is a lead a salesperson has personally examined and accepted into the pipeline after confirming, against a written checklist, that there is a real problem, a plausible budget and a reason to talk now.

Note the actor: an MQL is created by a rule, an SQL is created by a person.

What it means

An SQL is an acceptance, not a score. Somewhere in your CRM a rep looked at a contact, spent time on them, and decided the company should invest more time. That decision is the entire content of the term. If a rule can produce an SQL without a human in the loop, you have not built an SQL stage, you have built a second MQL threshold with a different label.

The distinction matters because the two stages fail in opposite directions. MQLs fail by being too generous: the model says yes to people who were never buyers. SQLs fail by being too convenient: reps accept everything so their acceptance rate looks cooperative, or reject everything so their pipeline coverage looks lean. Both failures are invisible without disposition codes.

The qualification frameworks people argue about, BANT, MEDDIC, CHAMP, SPICED, are all the same shape underneath: a fixed list of questions, an evidence standard for each, and a rule about how many can be unknown before you decline. Which acronym you pick matters far less than whether the answers are written down on the record. An SQL whose qualification lives only in the rep's head cannot be reviewed, coached, or forecast from.

The formulas, written out

Four ratios do all the work. Each one needs its denominator named.

SQL acceptance rate = (MQLs accepted as SQL / MQLs handed to sales) x 100

SQL-to-opportunity rate = (SQLs with at least one opportunity created / SQLs accepted) x 100

SQL win rate = (SQLs with a closed-won deal / SQLs accepted in the same cohort) x 100

Value per SQL = total closed-won revenue from the cohort / SQLs accepted in the cohort

Variables:

  • MQLs handed to sales: distinct leads that entered the sales queue in the period, counted once each.
  • SQLs accepted: leads with an acceptance event recorded by a named owner, with a timestamp.
  • Cohort: the period the SQL was accepted in, not the period the deal closed in. Mixing the two is the reason win rates look better in slow quarters.

A worked example, end to end

Continuing the same company as the MQL page: 612 MQLs were handed to sales in March.

Reps attempted contact on all 612 within one business day. 268 were accepted as SQLs. 344 were rejected with a coded reason: 141 "no budget in horizon", 92 "not a decision maker and cannot reach one", 68 "wrong company profile", 43 "no response after five attempts".

SQL acceptance rate = 268 / 612 = 43.8%

Of the 268 accepted, 191 produced at least one opportunity with an amount and a close date.

SQL-to-opportunity rate = 191 / 268 = 71.3%

By the time the cohort had aged out, 61 of those opportunities were closed won, at 298,900 total.

SQL win rate = 61 / 268 = 22.8%

Value per SQL = 298,900 / 268 = 1,115

The interesting figure is not any one of those, it is the pair. A 43.8% acceptance rate with a 22.8% win rate says the scoring model and the checklist are roughly calibrated to each other. If acceptance were 80% and the win rate 9%, reps would be accepting everything and discovering the truth later, which is expensive because rejection has moved from a two-minute decision to a three-week opportunity. If acceptance were 15% and the win rate 45%, the reps are cherry-picking and marketing is paying to generate leads nobody works.

Rejection codes carry their own arithmetic. 141 of 344 rejections, 41%, were "no budget in horizon". Those are not bad leads, they are early leads. Routed into a dated nurture instead of a dead status, a recycling rate as modest as 18% returns 25 more SQLs the following quarter at zero acquisition cost. That is the practical reason coded rejection reasons are worth the extra click.

Three ways the number goes wrong

Accepting on a booked meeting instead of a held one. This is the most expensive error in the set because it looks like good news. Suppose the same team accepts the SQL when the calendar invite is sent. 268 becomes 362, because 94 meetings were booked and never happened. Acceptance rate jumps from 43.8% to 59.2% and everyone is pleased, while the win rate drops from 22.8% to 61 / 362 = 16.9% and value per SQL falls from 1,115 to 826. Nothing about the business changed. A no-show is not a qualified lead, it is an unanswered question.

Double-counting recycled leads. A lead rejected in January, nurtured, and accepted in April is one lead and two acceptance events. If the April report counts it against April's handover volume without excluding it from the new-lead denominator, acceptance rate inflates for reasons that have nothing to do with lead quality. Tag recycled acceptances with their original source and report them as a separate line.

Silent rejection. When a rep can simply not touch a lead, the denominator becomes unknowable. In a queue of 612 where 71 were never opened, the honest acceptance rate is 268 / 612 = 43.8% but the reported one is often 268 / 541 = 49.5%, because the untouched records never entered anyone's report. Untouched leads are the most important number in the whole chain and the one most often missing: they are the only category where you are certain of losing a lead you already paid for.

How an SQL is actually derived from CRM data

The SQL is a state transition, so it lives in the transition log rather than on the contact:

  • Contact or lead record: identity, source, and the MQL timestamp it inherited.
  • Ownership event: assigned_at and owner_id. The clock for the acceptance service-level agreement starts here, not at lead creation.
  • Activity records: calls, emails, DMs with direction and outcome. "Contact attempted" and "contact made" are different states and a qualification framework needs the second.
  • Disposition event: accepted_at or rejected_at, plus a reason code from a closed list, plus a recycle date when the reason is timing.
  • Opportunity record: created from the SQL, with its own amount and close date, linked back to the accepting event.

Edge cases worth deciding before you build the report:

  • The lead that skips a stage. An inbound demo request from a target account is qualified during the first call and an opportunity is created in the same hour. If your report requires an MQL row to exist before an SQL row, this deal is invisible. Write the MQL event at the same instant, or count SQL-sourced deals separately.
  • Ownership changes. A lead accepted by rep A and transferred to rep B still belongs to rep A's acceptance cohort. Attribute acceptance to the owner at the time of the event, which means the report must read the event, not the current owner_id on the record.
  • Multiple contacts, one account. Three people at the same company each become SQLs. That is one buying process. For lead-quality reporting count all three, for pipeline coverage count the account once, and never mix them in the same chart.
  • Re-opened rejections. A rejected lead that later replies should re-enter the queue rather than being re-created, so its full history stays attached and its second acceptance can be identified as a recycle.

Why it matters

Everything downstream of the SQL is expensive. Discovery calls, demos, security reviews and pricing negotiations consume the most costly hours in the company. The SQL gate is the last cheap place to say no. A team that qualifies well spends its quarter on twenty serious evaluations, and a team that does not spends it on sixty conversations that were never going anywhere and then blames the forecast model.

It is also the join between two departments' numbers. Marketing reports leads, sales reports deals, and the SQL is where the two reconcile. When the numbers do not reconcile, the argument is almost always about definitions rather than performance, which is why the checklist and the reason codes matter more than the frameworks people name in meetings.

Common mistakes

  • Free-text rejection reasons. Two hundred distinct strings that all mean "too early" are the same as no data at all.
  • No time limit on the decision. Leads that sit in "assigned" for three weeks are neither accepted nor rejected, and they quietly remove themselves from every ratio.
  • Qualifying on enthusiasm. A friendly call is not evidence of budget. Write down which criterion each answer satisfied.
  • Letting the SQL count drive quota relief. If reps are measured on SQL volume, acceptance stops being a judgement.
  • One checklist across segments. The evidence standard that works for a 30-seat deal is theatre for a 3,000-seat one, and vice versa.

Related concepts

  • MQL: the stage before, and the thing SQL acceptance grades.
  • Sales pipeline: where an accepted SQL becomes a forecastable deal.
  • Pipeline velocity: the metric that turns accepted SQLs into revenue per day.
  • Lead scoring: the model whose accuracy the acceptance rate measures.
  • Lead routing: how the lead reached the rep who accepted it.
  • Conversion funnel: the end-to-end view all four ratios belong to.

How Pinlyx handles it

Pinlyx records acceptance and rejection as events with an actor, a timestamp and a reason drawn from a closed list you configure per pipeline. Untouched leads surface as their own queue rather than disappearing, ownership history is preserved so cohort reports read the accepting owner rather than the current one, and recycled leads keep their original source so a second acceptance never gets counted as a fresh one.

Cheat sheet · acceptance checklist

Five criteria, each with an evidence standard.

A common working rule: accept with at most one unknown, decline with two or more, and always store which one was missing.

CriterionEvidence that countsHard decline
Problem is namedThe buyer described the pain in their own words on a call or in writingOnly inferred from page views
Budget is plausibleCompany size and existing spend make your price range unremarkablePrice named and refused outright
Access to a decisionContact is the decision maker or can name and reach oneContact cannot name who signs
Timing is inside the horizonA trigger event or a stated date inside two quartersExplicit "revisit next year"
You are technically viableNo hard blocker on integration, region, compliance or languageA required integration you do not have

March cohort: 268 / 612 = 43.8% accepted, of which 191 produced an opportunity and 61 closed won.

In the database

Read the acceptance event, not the record.

Cohort reports built from the contact table give the wrong answer as soon as a lead changes hands, because owner_id on the record is the current owner, not the accepting one. Build the report from the transition log: one row per acceptance, carrying the actor, the timestamp and the reason code. The record tells you where a lead is now, the log tells you how it got there, and every conversion rate is a question about the second one.

Watch out for

A booked meeting is not a qualified lead.

Accepting the SQL when the invite goes out rather than when the call happens turned 268 acceptances into 362 in the example above, raised the acceptance rate by fifteen points and cut value per SQL from 1,115 to 826. It is the single easiest way to make a lead-generation programme look healthy while it gets worse. Move the acceptance event to the moment a conversation actually took place.

Sales Qualified Lead: FAQ

What sales and marketing argue about when they try to agree on one number.

No, and collapsing them is how forecasts drift. An SQL is a person a rep has agreed to work. An opportunity is a specific deal with an amount, a close date and a buying process attached. One SQL can produce zero opportunities, one, or several across different business units. Keeping them separate lets you measure two different things: whether marketing sends good leads (SQL acceptance) and whether reps can create deals from them (SQL to opportunity).
A SAL, or Sales Accepted Lead, is the intermediate step some teams add: sales acknowledges receipt and agrees the lead is worth a first call, but has not yet qualified it. The SQL comes after the call. Adding the SAL step is worth it when the sales team is large enough that the handover itself fails sometimes, because it separates "nobody called them" from "we called and they were not a fit". With a small team it is a stage that only creates admin.
Yes, and this is exactly why rejection reasons must be coded rather than free text. A lead rejected for "no budget this quarter" is a recycling candidate with a date attached. A lead rejected for "wrong country" never comes back. If both go into the same bucket, marketing cannot build a nurture segment and the same unqualifiable leads keep reappearing in the queue.
The rep who will own it, and only after contact. If a system rule can create an SQL automatically, then the S in SQL no longer stands for anything: you have built a second MQL threshold with a different name. Automation can propose, route, and remind, but the acceptance itself should be a human action with a timestamp and an owner.
It depends almost entirely on how strict the checklist is, so treat any published figure with suspicion. In practice, teams that require a held discovery call before accepting an SQL usually report win rates somewhere in the 20% to 35% band, while teams that accept on a booked meeting sit well below that because no-shows are counted as qualified leads. Your own trend over four quarters is worth more than any benchmark.
The useful control is not the SQL decision speed but the first-touch speed that precedes it. Research on inbound lead follow-up has consistently found a sharp decay in contact and qualification rates once the first attempt slips past the first hour. Practically: a service-level agreement of one business hour to first attempt and one business day to a coded accept or reject decision keeps the queue honest.
Ready to ship

Accept, reject, or recycle. Never lose the reason.

Pinlyx records every acceptance and rejection with an actor, a timestamp and a coded reason, so the handover between marketing and sales is measurable instead of anecdotal.

Free forever plan · GDPR-ready · No credit card required

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.