How to Build a Lead Scoring Setup in HubSpot

October 17, 2026

Lead scoring in HubSpot usually starts badly: somebody assigns 20 points for “visited pricing page” and 5 points for a job title, then wonders why sales ignores the score. The scores are not wrong so much as arbitrary — nobody validated the weights against anything.

Direct answer: score on two separate axes, fit and intent, and keep them visible separately. Fit is firmographic and static; intent is behavioural and decays. Combine them at the point of routing, not into a single number nobody can interpret.

Why Two Axes Instead of One Number?

Because a perfect-fit contact who has never engaged is a cold call, and a high-intent contact at the wrong company is a support burden. One combined score hides that distinction and produces the classic complaint: “the score says hot, but this is a student.”

HubSpot supports this natively with two score properties — create Fit score and Intent score as number properties, then build a third qualified flag in a workflow. Even on the free tier you can populate them manually or via import.

How Do You Define Fit Score?

Fit is the four criteria your best 20 closed-won customers share. Not what you wish they shared.

Criterion Points Source field
Company size in target band 30 Number of employees
Industry match 25 Industry
Role has buying authority 25 Job title
Region served 20 Country

Cap the total at 100. Compute it with a workflow’s calculation action if you have a paid tier, or set it during import on free. Either way, recalculate only when company properties change.

How Do You Define Intent?

Intent is behaviour with a decay rule. Three visits to the pricing page in a week means something. The same visits spread across six months means nothing.

  • Form submission on a high-intent form: +25
  • Pricing page visit: +10
  • Email click: +5
  • Documentation page visits: +3 (they are evaluating)
  • No activity for 30 days: −20

The decay rule is the part most setups skip, and it is why scores go stale and get distrusted within two quarters.

How Do You Route on the Two Scores?

Use a workflow condition, not a single threshold. A clean starting rule:

  1. Fit ≥ 70 and Intent ≥ 40 → assign to a rep, create a task within 24 hours.
  2. Fit ≥ 70 and Intent 15-39 → add to a nurture list, no rep assignment.
  3. Fit < 70 and Intent ≥ 50 → route to self-serve or support content.
  4. Everything else → marketing nurture.

Write the thresholds down and put them somewhere visible. When sales asks why a lead was not assigned, the answer should be a rule, not a person.

How Do You Know If the Score Works?

Track one number: conversion rate to closed-won by score band over 90 days. If band A and band B convert at similar rates, the weighting is not doing anything.

A simple validation: take your last 50 closed-won deals and 50 closed-lost, run both through your formula by hand, and check whether the score separates them. If it does not, no amount of dashboard polish will fix it.

What Plan Do You Need?

The score properties themselves are free. Automated population and decay need workflows: Starter has simple automation with limits, Pro adds the calculation and multi-branch logic most scoring setups assume. Budget roughly $20/seat for Starter, around $90/seat for Pro.

Honest take: if you have fewer than 200 inbound leads a month, a rep sorting the list by hand every morning is faster than maintaining a scoring model.

Key Takeaways

  • Score fit and intent separately; a single number obscures the difference between hot and well-matched.
  • Build fit from the traits of your best 20 closed-won customers, capped at 100.
  • Add a decay rule for inactivity, or scores go stale and get ignored.
  • Route with two-condition rules, not one threshold.
  • Validate by checking conversion rate per score band over 90 days.
Tags: