Near-real-time score updates
Why it matters
A nightly batch score recalculation means a contact who crosses the SQL threshold at 9am on a Tuesday does not trigger the sales notification until 2am Wednesday — a 17-hour delay on the highest-intent moment in the lead lifecycle. iso-25010:2011 performance-efficiency.time-behaviour captures the failure: the system's response time for a threshold-crossing event is measured in hours, not minutes. In B2B SaaS where intent signals decay rapidly, delayed scoring translates directly to missed pipeline: the contact who booked a competitor demo at 10am was already gone before the batch ran.
Severity rationale
Low because batch-only scoring delays threshold actions by hours — a significant conversion impact but not a data integrity failure or compliance risk.
Remediation
Update lead scores in the engagement event handler (webhook callback or queue job), not in a scheduled batch. Call threshold evaluation immediately after the score write.
// In the engagement event handler
async function handleEngagementEvent(event: EngagementEvent) {
const scoreChange = SCORE_EVENTS[event.type]?.points ?? 0
if (scoreChange === 0) return
const updated = await db.contact.update({
where: { id: event.contactId },
data: { leadScore: { increment: scoreChange } },
select: { id: true, leadScore: true }
})
// Evaluate thresholds in the same request context
await evaluateScoreThresholds(updated.id, updated.leadScore)
}
A background job queue (BullMQ, Inngest, etc.) is acceptable if it processes events within 1–5 minutes. A nightly cron is not. Enumerate all score-update triggers in the codebase and verify that none are batch-only.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Campaign Orchestration & Sequencing Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- iso-25010:2011 · performance-efficiency.time-behaviour
Taxons
History
- 2026-04-18·v1.0.0·Initial import from campaign-orchestration-sequencing·automated