Skip to content

Attrition Risk Detection

Attrition risk detection is an early warning system that identifies contributors who may be disengaging. It surfaces behavioral patterns — not conclusions — to help managers have informed conversations before it's too late.

Overview

The system monitors six behavioral signals derived from commit and PR data. Each signal is tracked independently, and a composite risk level is computed from their combination.

Route: /c/:slug/engagement

The Six Signals

1. Frequency Drop

What it measures: Declining commit frequency relative to the contributor's own baseline.

frequency_ratio=commits in last 14 daysavg commits per 14-day period (last 90 days)
ThresholdLevel
ratio > 0.7Normal
0.4 < ratio <= 0.7Warning
ratio <= 0.4Elevated

The baseline is the contributor's own historical average, not a team benchmark. A contributor who typically ships 5 commits/week dropping to 2 is flagged, even though 2/week might be normal for someone else.

2. Score Decline

What it measures: Trending decrease in commit quality scores.

score_trend=avg score (last 14 days)avg score (prior 30 days)
ThresholdLevel
trend > -0.5Normal
-1.0 < trend <= -0.5Warning
trend <= -1.0Elevated

Minimum commits: 5 in each period (to avoid noise from small samples).

3. Activity Gaps

What it measures: Extended periods without any commits.

gap_days=nowlast_commit_at
ThresholdLevel
gap < 7 daysNormal
7 <= gap < 14 daysWarning
gap >= 14 daysElevated

Activity gaps overlap with the Silent Contributor alert but serve a different purpose. Alerts notify managers of current silence; attrition risk tracks gaps as one signal among many.

4. Scope Narrowing

What it measures: A shrinking set of files and domains being touched.

scope_ratio=unique domains (last 14 days)avg unique domains per 14-day period (last 90 days)
ThresholdLevel
ratio > 0.6Normal
0.3 < ratio <= 0.6Warning
ratio <= 0.3Elevated

A contributor whose work narrows from 5 domains to 1 may be coasting on familiar territory or mentally checking out. Alternatively, they may be deeply focused on a critical project — context matters.

5. Session Shortening

What it measures: Deep work sessions becoming shallow micro-sessions.

deep_session_ratio=deep sessions (last 14 days)total sessions (last 14 days)baseline_ratio=deep sessions (last 90 days)total sessions (last 90 days)
ThresholdLevel
current ratio > baseline * 0.7Normal
baseline * 0.4 < current <= baseline * 0.7Warning
current <= baseline * 0.4Elevated

Deep sessions (sustained work periods producing multiple meaningful commits) are a strong indicator of engagement. A shift toward micro-sessions (single-commit bursts with long gaps) may signal distraction or disinterest.

6. Review Withdrawal

What it measures: Declining participation in PR reviews and discussions.

review_ratio=PRs reviewed (last 14 days)avg PRs reviewed per 14-day period (last 90 days)
ThresholdLevel
ratio > 0.6Normal
0.3 < ratio <= 0.6Warning
ratio <= 0.3Elevated

Review participation is a strong team engagement signal. Contributors who stop reviewing others' code are often withdrawing from the team socially before they withdraw formally.

Composite Risk Level

The six signals are combined into an overall risk assessment:

Risk LevelCondition
Low0–1 signals at Warning, none at Elevated
Medium2+ signals at Warning, or 1 at Elevated
High2+ signals at Elevated

The composite level is a summary, not a verdict. Managers should examine individual signals for context.

Philosophy

Attrition risk detection walks a fine line. Done poorly, it becomes surveillance — a system that punishes people for taking vacation or having a slow week. ShipLens takes a deliberate stance:

Surface data to support conversations, not to replace them.

Every signal has legitimate explanations. A frequency drop could mean vacation. Scope narrowing could mean deep specialization on a critical project. Session shortening could mean a shift to architecture and planning work that doesn't produce commits.

The system provides the data. The manager provides the judgment. ShipLens will never:

  • Automatically flag someone as "at risk" in a way visible to their peers
  • Send automated alerts to skip-level managers
  • Use attrition risk in scoring or performance evaluations
  • Treat any single signal as conclusive

TIP

Attrition signals are visible only to company admins and direct managers. They are excluded from contributor-facing views and are never included in team-wide reports.

Built with intelligence, not surveillance.