Lead scores in Quill CRM are automatically recalculated whenever key engagement events occur. This ensures that every contact’s score always reflects their most up-to-date behavior — no manual action required.
Events That Trigger Recalculation
The following events automatically trigger a lead score recalculation for the affected contact:
| Event | Description | Example |
|---|---|---|
| Email Opened | A contact opens a tracked email sent via Quill CRM | Contact opens your weekly newsletter |
| Email Link Clicked | A contact clicks a link inside a tracked email | Contact clicks a “View Pricing” link in your campaign |
| Form Submitted | A contact submits a Quill CRM form | Contact fills out a “Request a Demo” form |
| Page Visited | A contact visits a tracked page on your website | Contact views your pricing page or product page |
| Contact Updated | A contact’s profile information is updated | Contact’s status changes, new tags are added, or custom fields are modified |
How Recalculation Works
When one of the events above occurs, the system performs the following steps:
- Load all active rules — Only rules with “Active” status are considered. Inactive rules are completely ignored.
- Evaluate each rule’s conditions — For every active rule, the system checks whether the contact matches all the conditions defined in the rule.
- Calculate points — For each matching rule, points are added (for “Add Points” rules) or subtracted (for “Subtract Points” rules).
- Clamp the score — The total score is never allowed to go below 0. Even if subtraction rules exceed the total, the score stays at 0.
- Determine the level — The system finds the highest level where the contact’s score meets or exceeds the minimum points threshold.
- Save the result — The contact’s updated score and level are saved to their profile.
What Gets Stored on the Contact
After each recalculation, three pieces of data are stored on the contact’s profile:
| Data | Description |
|---|---|
| Lead Score Points | The contact’s total numerical score |
| Lead Score Level | The name of the level the contact belongs to (e.g., “Hot Lead”) |
| Lead Score Level ID | The internal identifier of the assigned level |
This data is visible on the contact’s profile page in the Lead Score card and can be used for filtering contacts and setting up automation conditions.
Scores Are Always Calculated Fresh
An important detail: lead scores are always recalculated from scratch. The system does not incrementally add or subtract points from a stored total. Instead, every time a recalculation happens, it re-evaluates all active rules against the contact and computes a completely fresh total.
This means:
- If you change a rule’s conditions or points, the new values will be used on the next recalculation.
- If you deactivate a rule, it will stop contributing points immediately on the next recalculation.
- If you delete a rule, the same applies — the points from that rule will no longer be included.
Caching and Performance
Lead score calculations include built-in caching to optimize performance:
- If a contact’s score is recalculated multiple times within the same request (e.g., multiple events fire at once), the result is cached in memory and reused.
- If the recalculated score hasn’t changed since the last calculation and the level is still valid, the system skips updating the stored data, reducing unnecessary database writes.
Troubleshooting
Score not updating?
If a contact’s score doesn’t seem to update, check the following:
- Is the rule active? — Only rules with “Active” status are used in calculations. Check the status column in the Rules list.
- Are the conditions correct? — Verify that the contact actually meets the conditions defined in the rule. Open the rule and review each condition.
- Has a trigger event occurred? — Scores only recalculate when one of the five trigger events happens (email opened, link clicked, form submitted, page visited, or contact updated).
- Are there competing rules? — A “Subtract Points” rule might be offsetting an “Add Points” rule, resulting in a net zero change.
Level not assigned?
If a contact has points but no level is assigned:
- Check your levels — Make sure you have at least one level with a minimum points value of 0 (or lower than the contact’s score).
- Verify level thresholds — The contact’s score must be greater than or equal to the level’s minimum points to qualify.
Score showing as 0?
If a contact’s score is unexpectedly 0:
- Check if there are any active rules at all — if no rules are active, every contact gets 0 points.
- Verify the contact matches at least one rule’s conditions.
- Check if subtraction rules are canceling out all the added points.






















