Pipeline dies in the gap between “signal” and “next action”. Dual scoring kills that gap. Fit says “should we sell to them”. Intent says “should we sell to them right now”.
TL;DR
- Use a dual score: Fit (0-100) + Intent (0-100).
- Only keep signals that change the next action. Everything else is trivia.
- Route with simple buckets: A1 fast lane, A2 nurture, B buckets.
- SLAs: A1 gets a human touch in 5 minutes. Speed-to-lead still wins. InsideSales found conversion rates are 8x higher when attempted in the first 5 minutes vs waiting 5 minutes to 24 hours. Source: https://www.insidesales.com/response-time-matters/
- Copy-paste tables below. Mid-market team implements this in one day.
The fit intent scoring model template (copy-paste version)
This is the minimum viable model that still works:
- Fit Score (0-100) = can we win + is the account worth it
- Intent Score (0-100) = are they showing buying motion
Then you convert those two numbers into one of these actions:
- A1: Fast lane - call, email, book
- A2: Nurture - sequence, light personalization, wait for the next spike
- B: Disqualify or park - stop wasting touches
If a signal cannot change one of those three actions, it does not belong.
Definitions (so nobody bikesheds this to death)
Fit (what it is)
Fit = the account matches your ICP and you can realistically close.
Fit signals fall into four buckets:
- Firmographics: size, industry, revenue, growth
- Technographics: stack compatibility, competitive installs
- Org structure: buying committee shape, role coverage, headquarters vs distributed
- Geo: supported countries, time zones, compliance constraints
Intent (what it is)
Intent = evidence of active evaluation or problem urgency.
Intent signals fall into:
- Website behavior: pricing page, integrations, security pages, high-intent content
- Job changes: new VP Sales, RevOps hire, SDR manager hired
- Tech installs: new CRM, new outreach tool, new data provider
- Funding and expansion: new round, hiring spike, new locations
- Category searches and third-party intent: “sales engagement”, “AI SDR”, “lead enrichment”
- Email engagement: replies and positive clicks (not vanity opens)
Buyers delay talking to sellers. 6sense reports buyers initiate contact themselves over 80% of the time and contact sellers around two-thirds of the way through the journey. Source: https://6sense.com/science-of-b2b/the-2025-b2b-buyer-experience-report/
So your intent score has one job: detect “they are already shopping” before your competitor gets the meeting.
The rules of a scoring model that doesn’t embarrass you
-
No more than 12 signals total.
If you need 40 signals, your ICP is unclear. -
Every signal needs a default action.
Example: “Visited pricing twice in 7 days” means “route to A1”. -
Use weights, not vibes.
You can argue weights later. You cannot argue with no weights. -
Decay intent fast.
Intent is perishable. If it’s older than 14 days, it’s basically a memory. -
Separate account intent from person intent.
Account intent routes. Person intent personalizes.
Fit score table (0-100): minimum signals that actually work
Pick the rows you can reliably source today. Do not invent data fields you cannot populate.
Fit scoring table (copy-paste)
| Fit category | Signal | Points | Notes (keep it strict) |
|---|---|---|---|
| Firmographics | Employee size in ICP band | +25 | Example bands: 50-200, 200-1000, 1000-5000. Pick one. |
| Firmographics | Industry in ICP list | +15 | Limit to 5-8 industries max. |
| Geo | In supported country/region | +10 | If you cannot sell there, it is not a lead. |
| Technographics | Uses a compatible CRM (SFDC/HubSpot/etc) | +10 | Needed for integrations, reporting, adoption. |
| Technographics | Uses competitor tool you displace well | +10 | Only if you have a clean wedge and proof. |
| Org structure | Has your buying roles (RevOps + Sales leader) | +15 | If you only see “Founder” at 700 employees, good luck. |
| Penalty | Disqualifying vertical or compliance constraint | -100 | Hard stop. No debate. |
| Penalty | Too small to succeed (below minimum) | -25 | Do not spend SDR cycles. |
| Penalty | “Student/research” org types (schools, hobbyists) | -25 | Unless you explicitly sell there. |
Fit score math
- Sum points
- Cap at 100
- If any hard stop triggers, Fit = 0
Fit buckets
- Fit A (80-100): prime ICP
- Fit B (60-79): workable, needs stronger intent
- Fit C (<60): park, unless inbound is screaming
Intent score table (0-100): minimum signals that move pipeline
Intent signals must be:
- observable
- recent
- tied to a specific next step
Intent scoring table (copy-paste)
| Intent category | Signal (time-bound) | Points | Decay rule |
|---|---|---|---|
| Website | Pricing page visit (1+ in last 7 days) | +25 | 7-day half-life |
| Website | Integrations or API docs visit (last 7 days) | +20 | 7-day half-life |
| Website | Security, SOC2, DPA, compliance pages (last 14 days) | +15 | 14-day half-life |
| Reply (positive or neutral) | +35 | No decay for 30 days | |
| Click on a “proof” link (case study, ROI calc) | +10 | 7-day half-life | |
| Third-party | Category intent surge (topic threshold hit) | +20 | 14-day half-life |
| Org change | New RevOps hire or VP Sales hire (last 30 days) | +15 | 30-day half-life |
| Company | Funding event or major expansion (last 90 days) | +10 | 90-day half-life |
| Negative | Unsubscribe or “not interested” | -50 | No decay |
| Negative | Job seeker behavior (careers page only, no product pages) | -15 | 14-day half-life |
About third-party intent
Bombora’s Company Surge describes surge intensity using a topic surge score. Source: https://bombora.com/wp-content/uploads/2017/07/Bombora-Company-Surge-June-2017.pdf
If you do not have Bombora, use your own proxy: “3+ category keyword visits across 7 days” or “2+ competitors visited” from web analytics.
Intent buckets
- Intent A (70-100): buying motion
- Intent B (40-69): warming up
- Intent C (<40): cold
The routing grid: A1 fast lane, A2 nurture, B buckets
This is the whole system. Everything else is decoration.
Routing matrix (copy-paste)
| Fit \ Intent | Intent A (70-100) | Intent B (40-69) | Intent C (<40) |
|---|---|---|---|
| Fit A (80-100) | A1 Fast lane | A2 Nurture | A2 Nurture |
| Fit B (60-79) | A1 Fast lane | A2 Nurture | B2 Park |
| Fit C (<60) | A2 Nurture (only if inbound) | B2 Park | B3 Disqualify |
Routing definitions
- A1 Fast lane: immediate outreach, multi-channel, meeting goal
- A2 Nurture: slower sequence, intent monitoring, add signal hooks
- B2 Park: no SDR touches, add to intent watchlist
- B3 Disqualify: close lost or mark unqualified, stop spending
SLA expectations (because speed still prints money)
A1 fast lane SLA (inbound + high intent outbound)
- First touch: within 5 minutes
- Second touch: within 2 hours
- Same-day: 6 total attempts max across channels if contactable
- Next 5 business days: 12-15 attempts total
InsideSales’ lead response research shows conversion rates jump more than 8x when attempted in the first 5 minutes vs waiting 5 minutes to 24 hours. Source: https://www.insidesales.com/response-time-matters/
Also, buyers often reach out when they already picked a favorite. 6sense reports the pre-contact favorite wins roughly 80% of the time in their research. Source: https://6sense.com/science-of-b2b/the-2025-b2b-buyer-experience-report/
So if you respond in an hour, you might be replying to a decision, not creating one.
A2 nurture SLA
- Touch within 24 hours
- 6-10 touches over 14 days
- Trigger-based bumps when new intent arrives
B bucket SLA
- None
- Monitor for new intent. Then reroute.
Three operating modes (choose one, do not mash them together)
Same dual model. Different weights. Different routing.
Mode 1: Lean outbound (small team, no patience, no fluff)
Goal: book meetings with minimum labor.
Bias: Fit matters more, since you cannot chase everyone.
Recommended weights
- Fit: 60%
- Intent: 40%
When to run A1
- Fit A + Intent B or higher
- Fit B + Intent A only
Lean outbound scoring tweak
- Add +10 Fit for “clear wedge competitor install”
- Reduce generic intent like “blog visit” to 0 points
- Overweight replies and pricing visits
What this looks like in Chronic
- Use ICP Builder to lock the fit bands.
- Use Lead Enrichment to fill missing size, industry, geo, roles.
- Use AI Lead Scoring to run the dual score without spreadsheet cosplay.
- Use AI Email Writer for fast personalization tied to the exact signal.
Mode 2: Agency outbound (multiple clients, high volume, strict guardrails)
Goal: predictable output, clean reporting, no client drama.
Bias: Intent matters more because you need fast wins and clear “why now”.
Recommended weights
- Fit: 45%
- Intent: 55%
Routing tweak
- A1 requires Intent A for most accounts unless the fit is perfect.
- A2 nurtures everything else with signal-driven first lines.
Agency-specific routing rules
- If Intent A but Fit C, route to A2 and ask client for an exception list.
- If Fit A but Intent C, park as B2 unless you have a proven outbound wedge.
What to log for client reporting
- The top 1-2 intent signals that caused routing, every time.
- “Pricing visit” beats “engaged” because it is real.
If you need a reality check on what “agentic GTM” is versus marketing buzz, read Agentic GTM is now a box on the pricing page. Here’s the reality check.
Mode 3: Inbound-heavy (demand exists, you just drop the ball)
Goal: convert existing demand before it cools off.
Bias: intent dominates, but only if fit is not trash.
Recommended weights
- Fit: 35%
- Intent: 65%
Routing tweak
- Any inbound demo request from Fit A or Fit B is A1.
- Fit C inbound goes A2 with a qualification gate.
Inbound fast lane rules
- If they hit security + pricing within 14 days, treat as A1 even without a form fill.
- If they request demo, do not “nurture” them. Book the meeting. That is the whole point.
Speed-to-lead content that goes deeper: What is speed-to-lead in B2B sales? (And how to hit a 5-minute SLA with AI without sounding automated)
The minimum signals list (print this and delete the rest)
If you want the bare minimum that still works for mid-market:
Fit (keep 5)
- Employee band match
- Industry match
- Geo match
- Compatible CRM present
- Buying roles present (RevOps + Sales leader)
Intent (keep 5)
- Pricing page in last 7 days
- Integrations or API docs in last 7 days
- Email reply
- Third-party category intent threshold hit (or your proxy)
- RevOps or Sales leadership hire in last 30 days
That is 10 signals total. You can run this in a day.
Scoring weights and thresholds you can ship today
Here are defaults that work across most mid-market B2B motions.
Default thresholds
- A1 Fast lane
- Fit >= 80 and Intent >= 40, or
- Fit >= 60 and Intent >= 70
- A2 Nurture
- Fit >= 60 and Intent 20-69, or
- Fit >= 80 and Intent < 40
- B2 Park
- Fit 40-59 and Intent < 70
- B3 Disqualify
- Fit < 40, or hard stop
One-day implementation checklist (no excuses)
- Define ICP bands (size, industry, geo)
- Pick your 5 fit signals and map to fields
- Pick your 5 intent signals and map to events
- Set the routing rules in your CRM
- Create three views: A1, A2, B
- Set alerting for A1 (Slack, email, whatever)
- Writeback rules: what gets logged, what gets summarized, what gets ignored
If you care about getting cited by AI search and LLM answers, not just ranking, this is worth reading: AI Search Is Eating B2B Clicks. Write Sales Ops Content That Gets Cited Anyway.
Routing rules in plain English (what reps actually do)
A1 fast lane playbook (meeting booked is the KPI)
Trigger: Fit A + Intent B, or Fit B + Intent A
Actions:
- Call within 5 minutes (if phone exists)
- Email within 5 minutes with a direct ask
- Second call within 2 hours
- Same-day LinkedIn touch only if it supports the call and email, not as a coping mechanism
A1 message template (copy-paste) Subject: quick question on {{signal}}
Body:
- Saw {{specific signal}}.
- Usually that means {{problem}} is getting expensive.
- Worth a 12-minute call this week to see if it fits?
Times:
- Tue 11:00am ET
- Wed 2:30pm ET
Stop writing novels. Book the meeting.
A2 nurture playbook (stay visible until intent spikes)
Trigger: Fit A with low intent, or Fit B with mid intent
Actions:
- 10-14 day sequence
- 2 personalization points max:
- one fit-based (industry, role)
- one intent-based (page visited, hire, tech change)
For personalization signal ideas that do not read like AI slop: Personalization that scales in 2026: 12 signals your CRM should turn into a first line
B2 park playbook (stop touching, start watching)
Trigger: not enough fit, not enough intent
Actions:
- No SDR touches
- Add to an intent watchlist
- Reroute if any of these happen:
- pricing + integrations within 7 days
- reply
- category intent threshold
B3 disqualify (mercy killing)
Trigger: hard stop
Actions:
- Mark unqualified with reason
- Exclude from outbound
- Keep for reporting only
What to log back into the CRM (writeback rules that keep pipeline clean)
Most CRMs become a landfill because teams log everything. Log only what you can use later.
Log these fields every time
- Fit Score (0-100)
- Intent Score (0-100)
- Routing bucket: A1, A2, B2, B3
- Top Fit Reasons (max 2): “200-1000 employees”, “SaaS”
- Top Intent Reasons (max 2): “Pricing page 2x”, “VP Sales hired”
- Next action: call, email, sequence, park
- SLA due time: timestamp
Log these events as activities
- Calls
- Replies
- Meetings booked
- “Not now” with a follow-up date
Do not log these unless you are doing real analysis
- “Opened email”
- “Visited blog”
- Random enrichment changes that do not change routing
If you want guardrails for autonomous systems writing back into CRM records, read: AI writeback CRM: what it is, what can go wrong, and the guardrails that keep pipeline clean
Common scoring mistakes (and the fix)
Mistake 1: too many “soft” intent signals
Symptom: everyone looks warm, nobody books.
Fix: set all low-signal behaviors to 0 points. Blogs do not buy software. People do.
Mistake 2: fit signals that never disqualify
Symptom: reps chase tiny accounts forever.
Fix: add hard stops. If you cannot sell there or they are too small, stop.
Mistake 3: no decay
Symptom: a pricing visit from 3 months ago still routes A1.
Fix: decay intent aggressively. Intent without recency is nostalgia.
Mistake 4: scoring that does not route
Symptom: nice dashboards, same behavior.
Fix: tie every bucket to a view, an alert, and an SLA.
Competitor note (one line, then back to work)
HubSpot, Salesforce, Apollo, Pipedrive, Attio, Close, Zoho, Clay, Instantly can all store fields and fire automations. Chronic runs the end-to-end loop till the meeting is booked. If you are comparing stacks:
- Chronic vs HubSpot
- Chronic vs Salesforce
- Chronic vs Apollo
- Chronic vs Pipedrive
- Chronic vs Attio
- Chronic vs Close
- Chronic vs Zoho CRM
Clay is powerful. It is also a science fair. Chronic is the finished machine.
FAQ
What is a fit intent scoring model template?
A fit intent scoring model template is a two-part lead scoring framework where Fit measures ICP match and Intent measures buying motion. The output routes accounts into actions like A1 fast lane, A2 nurture, or B buckets.
How many signals should we start with?
Start with 10 total signals: 5 fit and 5 intent. If a signal does not change the next action, delete it. Add complexity only after you prove lift.
What is a good “A1” threshold for mid-market B2B?
Use a simple rule:
- A1 if Fit >= 80 and Intent >= 40, or Fit >= 60 and Intent >= 70.
Then enforce SLAs. InsideSales reports conversion rates are over 8x higher when attempted in the first 5 minutes vs waiting 5 minutes to 24 hours. Source: https://www.insidesales.com/response-time-matters/
Should we use third-party intent data like Bombora?
If you have it, yes. It gives company-level category consumption patterns. Bombora’s Company Surge describes surge intensity using a topic surge score. Source: https://bombora.com/wp-content/uploads/2017/07/Bombora-Company-Surge-June-2017.pdf
If you do not have it, use your own proxy like repeated category keyword visits, competitor page comparisons, or high-intent page clusters.
How do we prevent “lead score theater” in the CRM?
Tie scores to routing, views, alerts, and SLAs. Log only:
- Fit score, intent score
- top 2 reasons for each
- routing bucket
- next action and SLA due time
If the score does not drive a task, it is just decoration.
How often should we recalibrate weights?
Monthly for the first 90 days. Then quarterly. Recalibrate based on one metric: meeting booked rate per bucket. If A1 does not outperform A2, your intent signals are weak or your SLAs are fantasy.
Ship the model, then enforce the rules
Copy the tables. Pick one operating mode. Set the routing grid. Enforce the A1 SLA like revenue depends on it, because it does. Then iterate with data, not opinions.