Account scoring is the foundation of ABM prioritization. A good model surfaces the accounts most likely to buy, lets you focus sales resources, and evolves as you learn which signals matter most.
Unlike lead scoring (individual-level), account scoring weighs both firmographic fit and behavioral intent. This guide covers model design, implementation, testing, and refinement.
How well does the account match your ideal customer profile?
Fit attributes:
| Attribute | Weights | Scoring |
|---|---|---|
| Industry | 20% | Your top 3 industries = 100pts. Secondary = 50pts. |
| Company Size | 15% | $10M-$100M ARR = 100pts. $5M-$10M = 80pts. |
| Location | 10% | US/UK = 100pts. EU = 50pts. Other = 0pts. |
| Technology Stack | 15% | Uses Salesforce + HubSpot = 100pts. Uses one = 50pts. |
| Growth Rate | 10% | YoY growth > 30% = 100pts. 10-30% = 50pts. |
| Funding Status | 10% | Raised Series B+ = 100pts. Bootstrapped = 50pts. |
| Job Openings | 10% | Revenue ops/marketing hiring = 100pts. General = 25pts. |
| Total | 100% | Out of 100 |
Fit score calculation (example): - Account: Mid-market SaaS, $30M ARR, US-based, uses Salesforce + HubSpot, 25% YoY growth, Series A, hiring marketing - Industry (software): 100 * 0.20 = 20 - Company Size ($30M): 100 * 0.15 = 15 - Location (US): 100 * 0.10 = 10 - Tech Stack (both): 100 * 0.15 = 15 - Growth Rate (25%): 50 * 0.10 = 5 - Funding (Series A): 50 * 0.10 = 5 - Job Openings (marketing): 100 * 0.10 = 10 - Total Fit Score: 80/100
Accounts scoring 70+ on fit get on your target list. Accounts 60-70 are exploratory. Below 60, pass.
How actively is the account engaging with your company right now?
Engagement activities and weights:
| Activity | Points | Reset After |
|---|---|---|
| Website visit | 2 | 7 days |
| Product page visit (5+ min) | 5 | 7 days |
| Pricing page visit | 8 | 7 days |
| Demo/Trial page visit | 8 | 7 days |
| Email open | 1 | 7 days |
| Email click-through | 3 | 7 days |
| Document download | 5 | 30 days |
| Webinar attendance | 10 | -one time- |
| Form submission (demo, trial) | 15 | -instant alert- |
| LinkedIn engagement (like, comment, share) | 2 | 14 days |
| Sales conversation scheduled | 20 | -one time- |
Engagement score decay: - Points decay by 10% per week of inactivity - After 60 days of no activity, score resets to 0 - This encourages focus on active, engaged accounts
Example account engagement trajectory:
| Date | Activity | Points | Running Total |
|---|---|---|---|
| May 1 | Website visit | +2 | 2 |
| May 3 | Pricing page visit | +8 | 10 |
| May 5 | Email open | +1 | 11 |
| May 7 | Form submission (demo) | +15 | 26 |
| May 10 | No activity | -2.6 (10% decay) | 23.4 |
| May 17 | Sales call scheduled | +20 | 43.4 |
Overall Account Score = (Fit Score * 0.4) + (Engagement Score * 0.6)
This weights recent behavior (60%) more heavily than firmographic fit (40%), reflecting that active accounts are better prospects than perfect-fit but dormant accounts.
Score interpretation:
| Score | Priority | Action |
|---|---|---|
| 80+ | Immediate | Sales outreach today. Fast-track to demo. |
| 60-79 | High | Sales outreach this week. Prioritize for calls. |
| 40-59 | Medium | Marketing nurture. Monitor for engagement spike. |
| 20-39 | Low | Passive nurture. Re-evaluate quarterly. |
| <20 | No action | Remove from target list or wait for reengagement. |
HubSpot implementation:
Create three custom properties: - Fit Score (number, 0-100) - Engagement Score (number, 0-100) - Overall Account Score (formula field)
Set up formula for Overall Score:
(Fit_Score * 0.4) + (Engagement_Score * 0.6)
Create properties for each fit attribute: - Industry (dropdown) - Company Size (dropdown) - Location (text) - Tech Stack (multi-select) - Growth Rate (percent) - Funding Status (dropdown) - Hiring activity (checkbox or multi-select)
Trigger events to update Engagement Score:
Decay automation: - Workflow runs weekly - Reduces Engagement Score by 10% for accounts with no recent activity - Resets to 0 if no activity for 60 days
For new accounts or bulk import:
Take 20 accounts that became customers in the past year and score them retroactively:
Example validation: - Closed customers: Average score 72 - Lost opportunities: Average score 43 - Gap of 30+ points = strong signal your model works
If no clear gap, adjust weights or add new attributes.
Launch with 50 accounts at 70+ score:
Success criteria: - Opportunity rate: 15%+ - Sales feedback: "These are qualified" - Cost-per-opp: Lower than other sources
Review after 30, 60, and 90 days:
Adjust Fit Score if: - Many accounts with high Industry score don't convert (reduce industry weight) - All wins are from accounts with specific attribute (increase that weight) - New attribute emerges as predictive (add it)
Adjust Engagement Score if: - Certain activities don't correlate with sales conversations (reduce points) - Some activities predict later purchases even if low recent engagement (increase persistence weight)
Example refinement: - Problem: "Webinar attendance" is assigned 10 points, but 80% of attendees don't advance. - Solution: Reduce to 3 points. Or require engagement + webinar attendance for credit.
1. Over-weighting single firmographic attributes Don't let company size alone drive 40% of fit score. Use multiple attributes.
2. Setting engagement point decay too high If you decay 30% per week, a great lead from month 2 is worthless by month 3. That's wrong. Use 10% weekly.
3. Treating all form submissions equally A "Try Free" form is weaker than a "Schedule a Demo" form. Weight differently.
4. Ignoring negative signals If an account is heavily engaging with your competitor, they're active but deprioritize. Add a "competitor mention" field to reduce fit score by 20.
5. Never reviewing the model Set a quarterly review. Every quarter, 10-20% of your assumptions probably shift. Update them.
Create a "Disqualification Score" to remove false positives.
Negative signals: - Company is direct competitor (disqualify) - Company is non-profit or education (if B2B SaaS focus) - Company is in consolidation/layoff mode (flag but don't disqualify) - Location is embargoed region (disqualify)
Implementation: - If disqualification signal exists, set Overall Score to 0 - If warning signal exists, reduce Overall Score by 30 points
1. Start simple, get complex Build a 5-attribute fit model first. Add more attributes only if they improve predictive power.
2. Engagement decay matters more than point values Getting the decay curve right (weekly 10% vs. no decay) matters more than whether a form is worth 15 vs. 20 points.
3. Validate against real conversions Your model is only as good as its correlation with closed deals. If you haven't validated, it's just a hypothesis.
4. Use negative scores for disqualification Don't include disqualifiers as negative points in overall score. Use them as veto gates: if disqualified, score = 0.
5. Keep the model transparent Sales and marketing should understand why an account got its score. If they don't, they won't trust it.