A framework for prioritizing contacts in your pipeline based on fit and engagement signals, so reps focus on the leads most likely to convert.
Lead scoring assigns a numerical value (0-100) to each contact based on two dimensions:
1. Fit Score — How well does this lead match your ideal customer profile? (Company size, industry, title, budget)
2. Engagement Score — How actively is this lead interacting with your content and sales team? (Emails opened, meetings attended, demos requested)
Combined: Total Score = Fit Score + Engagement Score (each 0-50, total 0-100)
Assign points based on how closely the contact matches your best customers:
| Criterion | High Fit (15 pts) | Medium Fit (8 pts) | Low Fit (3 pts) |
|---|---|---|---|
| Company Size | 200-2000 employees | 50-199 or 2000+ | < 50 employees |
| Title/Seniority | VP, Director, C-suite | Manager, Senior IC | Coordinator, Intern |
| Industry | Target verticals | Adjacent verticals | Non-target |
| Budget Indication | Confirmed budget | Likely has budget | No budget signals |
Maximum Fit Score: 50 (if top score on all 4 criteria + 5 bonus points for existing customer account)
Add a Fit_Score column to the Contacts tab:
=SUM(
IF(OR(Title contains "VP", Title contains "Director", Title contains "C"), 15, IF(Title contains "Manager", 8, 3)),
IF(Deal_Value > 50000, 15, IF(Deal_Value > 20000, 8, 3)),
... additional criteria
)
Or use a lookup approach with a scoring reference table.
Points are accumulated based on interactions:
| Activity | Points | Decay |
|---|---|---|
| Attended a demo | +15 | None |
| Attended a meeting | +10 | None |
| Responded to email | +5 | -1 per week of inactivity |
| Downloaded content | +5 | -1 per week |
| Visited pricing page | +8 | -2 per week |
| Requested a proposal | +15 | None |
| No activity for 30+ days | -20 | Immediate |
Maximum Engagement Score: 50 (capped)
The Activities tab drives engagement scoring:
=MIN(50,
COUNTIFS(Activities!Contact_ID, A2, Activities!Type, "Demo") * 15 +
COUNTIFS(Activities!Contact_ID, A2, Activities!Type, "Meeting") * 10 +
COUNTIFS(Activities!Contact_ID, A2, Activities!Type, "Call") * 5 +
COUNTIFS(Activities!Contact_ID, A2, Activities!Type, "Email", Activities!Outcome, "Positive") * 5 +
IF(TODAY() - Last_Contact > 30, -20, 0)
)
| Score Range | Label | Action |
|---|---|---|
| 80-100 | Hot | Immediate outreach, prioritize for rep's daily plan |
| 60-79 | Warm | Active nurture, schedule next touchpoint within 3 days |
| 40-59 | Engaged | Standard cadence, weekly touchpoint |
| 20-39 | Cool | Low-touch nurture (automated emails) |
| 0-19 | Cold | Park for re-engagement campaign or disqualify |
Use the score to determine next actions:
=IF(Score >= 80, "CALL TODAY",
IF(Score >= 60, "Email within 48h",
IF(Score >= 40, "Add to weekly cadence",
"Leave in nurture")))
A lead shouldn't advance from Qualification to Discovery unless their score is at least 40. This prevents reps from pushing unqualified leads forward prematurely.
Not all engagement is equal. Recent activity matters more than activity from 3 months ago.
Decayed Points = Original Points × 0.9^(weeks_since_activity)
After 4 weeks, a 10-point activity is worth: 10 × 0.9^4 = 6.6 points
After 8 weeks: 10 × 0.9^8 = 4.3 points
After 12 weeks: 10 × 0.9^12 = 2.8 points
=SUMPRODUCT(
Activity_Points * POWER(0.9, (TODAY() - Activity_Dates) / 7)
)
Some signals should reduce a lead's score:
| Signal | Point Deduction |
|---|---|
| Unsubscribed from emails | -15 |
| Explicitly said "not interested" | -25 |
| Competitor (researching, not buying) | -30 |
| Wrong persona (intern doing research) | -20 |
| Bounced email (invalid contact) | -50 |
1. Look at all leads that scored 80+ in the past month
2. How many actually converted?
3. If conversion rate is < 30%, your thresholds are too generous
4. If conversion rate is > 70%, you're being too conservative (missing warm leads)
This means your scoring accurately identifies high-probability prospects without being so restrictive that you miss opportunities.
Analyze which scoring criteria actually predict conversion:
1. Export all closed-won deals from the last quarter
2. Look at their scores at the time they entered Negotiation stage
3. Which criteria were most predictive?
4. Increase weight for predictive criteria, decrease for non-predictive ones
The Engagement_Score column in the Contacts CSV uses a simplified version of this methodology. To implement the full model:
1. Add a Fit_Score column (calculated from company/title/budget)
2. Rename existing score to Engagement_Score (calculated from activities)
3. Add a Total_Score column: =Fit_Score + Engagement_Score
4. Add a Lead_Grade column: =IF(Total>=80,"A",IF(Total>=60,"B",IF(Total>=40,"C","D")))
5. Sort your contact list by Total_Score descending — that's your priority list
A practical methodology for predicting future revenue using probability-weighted deal values in your sales pipeline.
Weighted pipeline forecasting assigns a probability percentage to each deal based on its current stage, then multiplies that probability by the deal value. The sum of all weighted values gives you an expected revenue figure.
Weighted Value = Deal Value × Stage Probability
Expected Revenue = Sum of all Weighted Values in a period
Example:
A single deal is unpredictable. But across 20-50 deals, probabilities smooth out. If you have 10 deals at 70% probability worth $500K total, you can reasonably expect ~$350K to close. Some will, some won't, but the aggregate is reliable.
Requirements for accuracy:
Default probabilities are just starting points. After 3-6 months of data, calibrate them:
For each stage, count:
Stage Probability = Deals Won from Stage / Total Deals that Entered Stage
Example calibration:
| Stage | Entered | Won | Actual Probability |
|---|---|---|---|
| Qualification | 150 | 18 | 12% |
| Discovery | 98 | 22 | 22% |
| Proposal Sent | 62 | 28 | 45% |
| Negotiation | 38 | 30 | 79% |
Notice how real probabilities often differ from gut-feel defaults. The data tells the truth.
Replace default probabilities with your calculated ones. Re-calculate weighted pipeline values.
Sophisticated forecasting uses three scenarios:
=SUM of Deal Values where Probability >= 50%
Everything at Proposal stage or later closes. This is your ceiling — it almost never happens, but it sets expectations for the maximum possible outcome.
=SUM of Deal Values where Probability >= 70%
Only deals in Negotiation or later. You should be confident these will close. If you regularly miss your "commit" number, your Negotiation probability is set too high.
=SUM of Deal Values where Probability >= 90%
Only deals with verbal commits or signed term sheets. This is your floor.
To reliably hit quota, you need sufficient pipeline at each scenario level:
| Scenario | Required Coverage Ratio |
|---|---|
| Weighted Pipeline | 3× quota |
| Best Case | 2× quota |
| Commit | 1.2× quota |
Example: With a $100K quarterly quota:
If any level is short, you need more pipeline generation activity.
The Forecast tab uses SUMPRODUCT to automatically calculate weighted pipeline by month:
=SUMPRODUCT(
(MONTH(Pipeline!Expected_Close) = target_month) *
(Pipeline!Deal_Value) *
(Pipeline!Probability / 100) *
(Pipeline!Stage <> "Closed Won") *
(Pipeline!Stage <> "Closed Lost")
)
This only counts open deals expected to close in the target month.
Reps push expected close dates out to avoid accountability. Fix: require evidence for date changes and track "push rate" (% of deals that slip from their original close date).
Counting deals at higher probability than warranted. A "verbal yes" that hasn't been followed by action in 2 weeks is not 90%. Fix: define objective exit criteria for each stage.
Old deals sitting in Discovery for 60+ days inflate the weighted total. Fix: auto-flag deals that exceed 2× the average time in stage. Consider reducing their probability.
If Q4 historically outperforms Q1 by 40%, your weighted pipeline in Q1 should be discounted accordingly.
A $100K deal that's been in Proposal for 3 days is healthier than one that's been there for 30 days. Consider time-weighting: reduce probability for deals that exceed average stage duration.
Sales Velocity measures how fast revenue flows through your pipeline:
Velocity = (Opportunities × Win Rate × Avg Deal Size) / Avg Sales Cycle Days
This gives you dollars per day. Multiply by remaining business days in the period for an activity-based forecast that doesn't depend on individual deal inspection.
From the sample data:
Compare this to your weighted pipeline forecast. If they differ significantly, investigate why.
1. Weekly: Review and update deal stages, close dates, and values in the Pipeline tab
2. Bi-weekly: Run the three-scenario forecast and compare to quota
3. Monthly: Calibrate probabilities against actual close rates
4. Quarterly: Analyze forecast accuracy and adjust methodology