Layer A tells you whether the lead is human and interested. Layers B and C tell you two more things: what they do next (the positive actions) and where they came from (the source, as a prior). Together they complete the rating before the CRM has the final word.
Layer B · Positive actions (~30 points)
Every action the lead takes after submitting is a signal of real interest, and it arrives within minutes or hours:
| Action | How you know | Indicative weight |
|---|---|---|
| Confirmed their email (double opt-in or a click in the email) | Email platform / webhook | Medium |
| Answered the call | CRM / phone system | High |
| Replied on WhatsApp / chat | Messaging platform | High |
| Booked an appointment / demo | Calendar / CRM | Very high |
| Downloaded the quote / opened the proposal | CRM / document tracking | High |
| Came back to the site after submitting | Snippet (returning visits) | Medium |
| Replied to an email | Inbox / CRM | Medium |
How they arrive: by webhook (the CRM, the email platform or the calendar tells the collector, with the lead's identifier) or by periodically reading the spreadsheet/CRM. The lead's rating is updated with every action, and since the raw conversion was already uploaded to Google with the initial rating, the significant updates are reflected in the qualified conversion (lesson 4) and, where appropriate, in an adjustment to the raw one's value.
Two rules: negative actions count too (a bounced email, a dead phone number, "not interested" in the CRM → the rating goes down), and a duplicate lead (the same person by normalised phone/email) is neither re-scored nor re-uploaded: it is marked as a duplicate.
Layer C · Source (~20 points): a prior, not a judge
Leads from certain sources close more often. You know that before the lead does anything, so it is a reasonable prior — but deliberately basic, so it never replaces the evidence:
The ranking of campaign types
An ordered list from best to worst that the client defines in the configuration, for
example Brand Search > Search > Demand Gen > Display, with points by position
(1st 20, 2nd 14, 3rd 8, 4th 4…). It is mapped by campaign type, with an
override by ID for a specific campaign (the IDs, not names rule): if one
specific generic campaign closes like brand does, it is given brand's position.
Placement (Display / Demand Gen)
For leads coming from a site or an app: the inverted Site Score of the source domain (a lead from a legitimate site scores higher), a bonus if the site is in Safe Sites, and a rating floor of ≈ 0 if the placement was blocked later by the shield ("Blocked later"): if the site turned out to be a farm, its leads are suspicious even when the form looked human.
Block D · Statistical (~10 points, growing with the data)
Once there is a big enough sample (a minimum of N leads with an outcome per campaign/placement), that source's historical qualification rate turns into points: it is layer C's prior corrected by reality. At the start it is worth little; with months of data it can weigh more than the manual ranking — and suggest reordering it (lesson 5).
The complete rating
Rating = A (behaviour, ~40)
+ B (positive actions, ~30)
+ C (source, ~20)
+ D (statistical, ~10)
with floors (honeypot, blocked later) and duplicates handled separately
From 0 to 100, with the breakdown in the note on every lead. A lead on 85 is "almost certainly a genuine prospect from a good source who has reacted"; one on 15 is "probably noise". In between sits the probability.
Design mistakes to avoid
- Giving source more weight than behaviour: it condemns new campaigns and perpetuates prejudices.
- Ignoring negative actions.
- Re-scoring and re-uploading duplicates (it inflates conversions).
- Webhooks with no reliable lead identifier (the actions get lost).
- Changing the weights by hand every week: recalibration (lesson 5) is the method.
💡 Ninja trick: in Lead Rating, the positive actions arrive by webhook into the Apps Script of the client's spreadsheet (with a token), the campaign ranking is set in the Configuration tab with an override by ID, and block D only switches on once there is a sample. Every lead carries the A/B/C/D breakdown in its cell note: when a salesperson asks "why does this lead score 72?", the answer is one click away.
What you should remember
- Layer B: later actions (confirmed, answered, booked, downloaded…) by webhook; the negative ones subtract; duplicates are not re-uploaded.
- Layer C: a ranking of campaign types (a basic prior, with an override by ID) + the placement's Site Score; a floor of zero if it was blocked later.
- Block D: the historical qualification rate by source once there is a sample.
- A 0-100 rating with a transparent breakdown per lead.