Computes the overall loss-reason distribution from a closed-lost deal export, flags a reason as rising only once a recent-vs-prior window comparison clears a minimum sample size, and flags segment-level clustering, a segment losing to one reason far more than the book overall, once that segment has enough losses of that reason to mean something.
A single lost deal has a story. A pattern across many lost deals has a cause, and most teams only find it by accident, months after it started, because nothing is watching the loss-reason distribution on an ongoing basis.
Loss Reason Pattern Monitor
26 synthetic closed-lost deals: a prior 90-day window with an even spread across four loss reasons, a recent 90-day window where Pricing losses spike, plus a separate segment-clustering batch where Enterprise loses almost exclusively to Competitor.
Pricing, +41.8 pts
Rising reason correctly flagged
Enterprise / Competitor
Segment cluster correctly isolated
SMB
Unflagged segment correctly cleared
The book-wide loss reason looked like Pricing. One specific segment was actually losing almost exclusively to a named competitor, a pattern the overall distribution alone would have buried.
That's judgment-heavy and inconsistent to test, an LLM inferring a category from free text will call similar deals differently depending on phrasing. Reading the structured loss-reason field instead keeps the result deterministic and auditable, if that field isn't being filled in consistently, that's the real finding to fix first.
No, on purpose. Clustering is reported at the segment level only, the same restraint Call Scorecard Builder applies to reps. A clustered loss reason is a packaging, positioning, or process signal to fix, not a scorecard for whoever worked those deals.
Runs against your CRM using your own credentials, through your own AI instance. We don't copy, store, or retain your data.