Deal risk & forecast
A risk score you can argue with. Every point is traceable to a signal, and missing evidence is never counted as good news.
RepCue scores open deals 0–100 for risk (higher = more at risk) from what actually happened on the calls. Every point is attributable to a named reason, so the score is a conversation starter rather than a black box.
The signals
| Signal | What triggers it | Points |
|---|---|---|
| Going quiet | No activity for 14 days | 15 |
| No activity in a month | No activity for 30 days | 30 |
| No agreed next step | The deal has no next step recorded | 20 |
| Next step overdue | The recorded next step's due date has passed | 15 |
| Close date has passed | The close date slipped without the deal closing | 20 |
| Discovery is thin | Three or more of budget / authority / need / timeline / next step were never captured on any call | 20 |
| Budget never captured | No budget signal on any call | 12 |
| Single-threaded | One stakeholder or none recorded | 15 |
| Competitor in the deal | One or two competitor mentions | 6 |
| Competitor keeps coming up | Three or more mentions across calls | 15 |
| Same objections recurring | Two or more objections raised on more than one call | 12 |
Discovery capture, competitor mentions and recurring objections come from the post-call extraction on real transcripts, not from anything typed into a CRM field.
Bands: low under 25, medium 25–49, high 50 and above.
Missing data is omitted, never scored as zero
This is the rule that makes the score trustworthy.
A deal with no calls logged is not "low risk because nothing bad has happened"; it simply has less evidence. A signal RepCue has no rows for is left out of the calculation entirely rather than counted as a clean pass.
Each risk result therefore also reports confidence: the share of signals that had underlying data. A score of 12 at confidence 0.3 means "we found little, and we looked at little", not "this deal is safe". Low confidence is thin evidence, not safety.
One deliberate exception: a missing next step is itself the signal. Absence is meaningful there, so it counts.
Closed deals always score 0 with no reasons. Risk is forward-looking, and a closed deal has no future to be at risk in.
Forecast
GET /v1/deals/forecast groups open deals by stage × close month with a weighted amount (amount × probability). It obeys the same read scoping as everything else, so a rep's forecast is their own pipeline, a manager's is their teams', and an admin's is the org.
The deal fields that feed this (close date, probability, next step, next step due date) are editable on the deal, and last_activity_at is maintained automatically on every call and post-call artifact write, so staleness cannot drift out of date through neglect.
Where it shows up
- The deals list carries a risk band per row.
- The deal page shows the score, the confidence, and every contributing reason with its detail line ("Last touch 21 days ago", "3 mentions across calls").
- The manager dashboard surfaces at-risk deals first.
API
GET /v1/deals (risk block per row), GET /v1/deals/:id/risk, GET /v1/deals/forecast?scope=.