AI Skills Marketplace / CRM & RevOps

Deal Stage Velocity & Stall Detector

The Deal Stage Velocity & Stall Detector is a free Claude Skill that flags deals stalled in their current pipeline stage using real per-stage historical benchmarks (quartiles plus Tukey's IQR outlier fence) instead of one arbitrary days-in-stage threshold applied to every stage alike, and projects expected close dates from remaining-stage medians.

↗ View Source ⬇ Download Full Repo (.zip)
MIT
License
4 functions
Decision branches
Tukey IQR stall fence + insufficient-sample guardrail
Escalation rules
Yes
Multi-tool support
Aug 17, 2026
Last updated
19/19 passing
Tests
README.md View raw ↗

What this is (and isn’t)

A benchmarking and outlier-detection engine, not a live CRM integration. You supply historical closed-deal stage histories and the current open pipeline; this computes real per-stage norms and flags genuine outliers against them.

Files

FilePurpose
detector.jspercentile(), computeStageBenchmarks(), evaluateDealStall(), projectExpectedCloseDate() — zero dependencies
test.js19-test suite including hand-verified quartile math against known values
SKILL.mdFull skill definition, loadable in Claude Code/Desktop

The two real guardrails

Per-stage benchmarks instead of one sitewide threshold, since a stage that normally runs long should not be judged against a stage that normally runs short. And Tukey’s IQR outlier fence (Q3 + 1.5×IQR) instead of a mean/stdev threshold, since a handful of already-stalled deals in the training data would otherwise drag the mean toward themselves and mask exactly the pattern being detected. Stages with too little historical data are marked insufficient rather than given a fabricated benchmark.

FAQ

Is this skill free to use?

Yes. Free to download and run yourself. MV3 charges $175/hr only for implementation help wiring this into your real CRM's actual deal and stage-history data.

Does this connect directly to my CRM?

No. It is a pure function over the deal data you supply. You still need to pull stage history out of your CRM and feed it in yourself.

Why quartiles instead of average days in stage?

A handful of already-stalled deals in your historical data would drag a simple average upward, masking exactly the pattern you are trying to catch. Quartiles and Tukey's IQR fence are far more resistant to that distortion.

What happens if a stage does not have enough historical data?

It is marked insufficientSample and no stall verdict is given for deals in that stage, rather than fabricating a benchmark from too little data.

Does my deal data get sent to MV3?

No. All calculations run entirely in your own environment.

JR
Jordan Reeves
ABM & Outbound Pipeline, MV3 Marketing