How to Measure Purchase Intent: A B2B Signals Playbook
Purchase intent is not a vibe — it is a measurable score built from first-party behavior, third-party signals, and fit data. Here is the exact scoring model, the tool comparison, and the math to run it in 2026.

TL;DR
- How to measure purchase intent, in one line: turn behavior into weighted scores that fade with time. Do not eyeball a dashboard and call a lead "hot."
- Three inputs matter: first-party behavior (your site, product, emails), third-party research signals (review sites, publisher networks), and fit data (firmographics, tech stack, hiring).
- Weight each signal by proven lift. Cut its value in half every 14 days. Re-check the model each quarter against closed-won deals.
- Third-party surge data is directional, not exact. It says which accounts to research, not who to email today.
- Intent without contact data is a report, not a pipeline. Score the account, find the person, verify the email, then reach out fast.
What is purchase intent, and what does it actually measure?#
How to measure purchase intent starts with a definition. Purchase intent is the chance that an account will start buying in your category inside a set window — 30, 60, or 90 days. That wording forces three choices most teams skip. You need a number, not a label. You need your category, not "software." And you need a window, because intent expires.
Think of it like a weather forecast. Nobody says "it will rain." They say "70% chance of rain in the next six hours." A good intent model talks the same way. This account has a 70% chance of opening an evaluation for revenue tooling in the next 60 days. If your model cannot say that, it is a lead label, not an intent measurement.
Four things get mixed up all the time:
- Fit — does this account look like our best customers? It is static and slow to change. A 400-person fintech in the EU either fits or it does not.
- Intent — is this account in-market right now? It is behavioral, and it goes stale in weeks.
- Engagement — is this account dealing with us in particular? It is a subset of intent, and the best subset you own.
- Timing — is there a trigger event? Funding, a new VP, a renewal, layoffs, or a tech migration can force a decision.
Score all four on their own, then combine them. Mash them into one "lead score" and sales stops trusting the number by month three.
How to measure purchase intent with first-party signals#
First-party data is the only intent you fully own, and it predicts best. It is also the cheapest, because you already collect most of it.
Sort every behavior you can see into three tiers:
- Tier 1 — Decision signals. Pricing page views (2+ in a week), demo requests, security or compliance doc downloads, ROI calculator use, or several people from one domain visiting in seven days. These track hardest with new opportunities.
- Tier 2 — Evaluation signals. Comparison pages ("X vs Y"), integration and API docs, case studies in your target vertical, and webinars watched to the end.
- Tier 3 — Awareness signals. Blog reads, newsletter opens, top-of-funnel guides, and single-page sessions.
- Negative signals. Careers page visits, support or login visits from customers, sessions outside your market, unsubscribes, and competitor IP ranges.
That last bullet is the one teams forget. Without negative weights, every score drifts to the top of the range. You lose the gap between good accounts and noise.
Two notes on setup. First, resolve traffic to accounts before you score it. If 60% of your traffic is anonymous, your model sees 40% of reality. Website visitor reveal closes part of that gap by matching anonymous sessions to companies.
Second, count distinct people per account, not sessions. Three people from one domain on your pricing page is a buying committee waking up. One person refreshing pricing nine times is a bookmark.
What third-party intent data is worth paying for?#
Third-party intent comes from three sources. They are not equally reliable.
Publisher co-ops (Bombora and its resellers) track content reads across thousands of B2B sites and map them to companies. They report a "surge" when an account reads far more about a topic than usual. The read is broad but coarse. You get an account and a topic, rarely a person, and the topic list may not match how your buyers describe the problem.
Review-site intent (G2, Capterra, TrustRadius) is narrower and much stronger. Someone comparing products on a review site is deep in evaluation. G2 Buyer Intent tells you an account viewed your profile or a competitor page. That is late-funnel behavior on someone else's property.
Bidstream data is the weakest tier. It is guessed from ad-exchange requests, often stale, and more restricted by privacy law every year. If a vendor will not say where its data comes from, treat it as unverified.
Here is how the sources stack up in practice:
| Signal source | Granularity | Typical latency | Predictive strength | Best use |
|---|---|---|---|---|
| First-party web + product | Person + account | Real time | Highest | Trigger outreach today |
| Review-site intent (G2, TrustRadius) | Account, sometimes person | 24–72 hours | High | Competitive displacement plays |
| Publisher co-op (Bombora-style) | Account + topic | 3–7 days | Medium | Territory prioritization |
| Hiring / job-post signals | Account + role | 1–14 days | Medium | Tech and team-growth triggers |
| Tech-stack change detection | Account | 7–30 days | Medium | Migration and replacement plays |
| Bidstream / IP-inferred | Account (fuzzy) | Variable | Low | Suppression lists only |
A simple rule. Use third-party intent to pick which accounts get research effort. Use first-party intent to pick who gets contacted this week. Flip that around and you can burn $40k on an intent subscription with no pipeline to show for it.
How do you build the scoring model?#
The model is a weighted sum with decay. You do not need machine learning to start. You need honest arithmetic and a feedback loop.
Step 1: Pull your closed-won history. Take the last 12 months of won deals. For each one, list every signal recorded in the 90 days before the opportunity was created.
Step 2: Measure lift per signal. Compare accounts that showed the signal against your baseline. Say 4% of all accounts become opportunities, but 22% of accounts that viewed pricing twice in a week do. That signal has 5.5x lift. Weight it in proportion.
Step 3: Assign points. Normalize to a 0–100 scale. Here is a starting spread that survives contact with reality:
| Signal | Points | Decay half-life |
|---|---|---|
| Demo or pricing request submitted | 40 | 30 days |
| 2+ pricing page views in 7 days | 25 | 14 days |
| 3+ distinct people from account on site | 20 | 14 days |
| Competitor comparison page view | 18 | 14 days |
| G2 category or profile view | 15 | 7 days |
| Publisher co-op surge on core topic | 10 | 21 days |
| Relevant job posting opened | 8 | 45 days |
| Blog read (single session) | 2 | 7 days |
| Careers page visit only | −10 | — |
Step 4: Apply decay. Intent rots. A pricing page view from six weeks ago is not worth what it was on day one. Use exponential decay: score_now = points × 0.5^(days_elapsed / half_life). Run it as a nightly job, not in real time. You save compute and lose nothing.
Step 5: Set thresholds against capacity, not aesthetics. If a rep can work 40 accounts a week, your "hot" line should surface about 40 accounts a week per rep. Pick 75 because it is a round number and you get either an empty queue or a flood.
Step 6: Re-check quarterly. Compare predicted-hot accounts against real opportunities. If your top decile is not converting at 3x your baseline, the weights are wrong. Fix the weights, not the reps.
Your whole revenue team should agree on definitions first. The marketing qualified lead entry and the wider B2B glossary are worth aligning on before you argue about thresholds.
Which purchase intent tools should you compare in 2026?#
Tool choice depends on which data layer you lack. Most teams already have first-party analytics. What they need is third-party signal coverage, or the contact data that turns a scored account into a person you can reach.
| Platform | Primary data layer | Entry pricing | Person-level contacts | Best for |
|---|---|---|---|---|
| Bombora | Publisher co-op intent | Custom (typically 5 figures/yr) | No | Enterprise ABM territory planning |
| G2 Buyer Intent | Review-site intent | Add-on to G2 listing | Limited | Competitive displacement |
| 6sense | Blended intent + predictive | Custom, enterprise-tier | Yes (add-on) | Large ABM teams with RevOps support |
| Demandbase | Blended intent + advertising | Custom, enterprise-tier | Yes (add-on) | Ad-led account programs |
| Clearbit / HubSpot Breeze | Enrichment + reveal | Bundled with HubSpot tiers | Yes | HubSpot-native teams |
| BookYourData | Verified B2B contact data | Pay-as-you-go credits | Yes | Fast list building with no subscription |
| Tomba | Contact resolution + enrichment | Free (25/mo), $49/mo Starter | Yes | Turning scored accounts into verified contacts |
Two honest caveats. The blended enterprise platforms (6sense, Demandbase) work well when a RevOps person owns the model full-time. Without that person, they turn into shelfware.
The second caveat: no intent platform solves the last mile. Knowing that Acme is surging on "email deliverability" does not give you the VP of Demand Gen's address.
That last mile is where most intent programs quietly fail. Pair account-level intent with domain search to map the buying committee. Then run every address through an email verifier before the sequence goes out. Speed beats volume here. A verified contact reached on day two of a surge beats a perfect list built on day twenty.
How do you validate that your intent score is real?#
Run three tests. All three are cheap. Skip them and you will end up defending a number nobody believes.
The holdout test. Hold back 10% of high-intent accounts from outreach for one quarter, chosen at random. If the worked accounts convert much better, your model and your motion are creating value. If not, you are harvesting deals that would have closed anyway. The score is describing, not predicting.
The decile test. Sort accounts into ten score bands and measure the opportunity rate in each. A working model climbs steadily: band 10 beats band 5, which beats band 1. A flat line means your signals carry no information. A jagged line means your weights are fitted to noise.
The rep-feedback loop. Give reps a one-click "not in-market" button on every routed account. Total the rejections each month. If one signal drives most of the false positives — usually a generic blog read or an over-weighted co-op topic — cut its weight. This catches problems the statistics miss for months.
Track time-to-first-touch as well. Intent value halves in about two weeks. If your median time from signal to first contact is 11 days, most of the score is gone before anyone dials. Perfect measurement plus slow follow-up gives you the same pipeline as no measurement at all.
What are the most common intent measurement mistakes?#
Scoring the person instead of the account. A B2B purchase involves 6–10 stakeholders. One person's clicks are a fragment. Score accounts first, then rank people inside them.
Treating all page views equally. A blog reader and a repeat pricing visitor are not on the same path. If both earn points at the same rate, your model rewards reading instead of buying.
Never expiring scores. Cumulative scores only go up. Give it long enough and every old account looks hot. Decay is not optional.
Ignoring negative signals. Job seekers, competitors, current customers, and students all create traffic. Without suppression, they clog the top of your queue.
Buying intent data before fixing contact data. Intent tells you where to knock. It does not tell you which door. If your CRM emails bounce, a new signal feed just adds failed sequences, not meetings. Clean the data enrichment layer first. HubSpot's research on data decay puts annual B2B contact rot near 22%, a bigger leak than any signal gap.
Leaning too hard on third-party surge. Co-op data is a guess at the account level. Treat a surge as a reason to research, never as proof that one person is shopping. Reps who open with "I saw you were researching X" on co-op data alone sound like they are guessing, because they are.
What does a working intent workflow look like end to end?#
- Collect — first-party events into your warehouse or CRM, third-party feeds onto the same account records, fit data refreshed monthly.
- Resolve — match traffic to accounts, and dedupe against CRM records so one company is not scored three times under three domains.
- Score — a nightly job applies weights and decay. It writes a 0–100 value plus the top three signals to the account record.
- Route — accounts over the line enter a work queue with the reason attached. A bare score gets ignored. "Three people viewed pricing, plus a comparison page" gets worked.
- Resolve contacts — pick the committee roles that matter for this signal, find and verify their addresses, and add role context.
- Act inside the half-life — first touch within 48 hours of the threshold crossing. Reference the behavior category, not the surveillance detail.
- Measure — log the outcome per account and feed it back into the weights each quarter.
Step 5 decides whether the first four steps make money. A scored account you cannot contact is an expensive spreadsheet row.
Start turning intent scores into conversations#
How to measure purchase intent comes down to arithmetic plus discipline. Weight what tracks with closed-won, decay it honestly, suppress the noise, and re-check every quarter. The model is the easy part. Acting before the signal expires is the hard part.
When an account crosses your threshold, you have days, not weeks. Tomba Email Finder turns a surging domain into verified, contactable addresses. The free tier covers 25 searches a month, and Starter plans begin at $49/mo — see Tomba pricing for the full breakdown. Score the account, find the people, reach them while the intent is still warm.
Related guides#
Ready to find emails that actually work?
Join 150,000+ professionals who stopped guessing and started sending. Free credits on signup — no credit card required.
Get the Tomba newsletter
Practical outbound tactics and product updates — once every two weeks.
About the author