Sonar · Field bulletin · No. 02
The 12 signals + the invariants that keep them honest
A walk through each of Sonar's twelve signals — five about individual change, five about team and process, two that turn the lens on the manager — and the safety rules that have to pass before any of it shows up in your brief.
Sonar surfaces twelve signals, organized into three groups. Five are individual-level — Stalled, Gone quiet, Overloaded, Checking out, Rising — each one a behavior change in one person, computed against their own per-person baseline rather than an absolute threshold. Five are team-and-process — Collaboration rift (a pair-level signal), Review quality (rubber-stamp approvals), Invisible carrier (the person propping up everyone else's velocity), Bus factor (one person owning a critical service), and Scope drift (a long-running branch with no PR). And two turn the lens on the manager themselves — Attention gap (how evenly your attention is distributed across reports) and Credit gap (high-output people you haven't acknowledged in weeks).
The shape we kept across all twelve: each signal is a comparison between recent behavior and a baseline that's specific to the situation. Individual signals compare against the person's own 28-day rolling baseline. Pair signals compare against the pair's own collaboration history. Bus factor compares against an explicit ownership threshold per service. Attention gap compares your treatment of one report against your median across all your reports. None of this requires reading message content; it's all metadata — counts, timestamps, and graph relationships.
But signals on their own would be noisy and, frankly, creepy. So we wrote a layer of safety rules that any signal has to pass before it can become brief content. The big ones: minimum activity volume (we don't fire "gone quiet" for a person who's never been loud), minimum baseline window (a new hire's first two weeks won't trigger anything), explicit pause respect (a person who paused themselves is invisible to signals until they unpause), and the bias monitor — every signal that fires gets logged with the demographic distribution of who fired vs. who didn't, and we show that on the admin dashboard.
The thing that took us longest to get right was the "explainer" beside each signal in the brief. Early versions just said "Alex hasn't committed code in 5 days." That's accurate but it's also what bad management software does — present a number with no context. Now every signal explains what changed against the baseline, links to the underlying activity (so you can verify), and is opt-out'able by the person it's about. The bias monitor exists because explainability + per-person baselines together still aren't enough; we want to know if the system's quietly more "alert" about some demographics than others.
The two manager-facing signals — Attention gap and Credit gap — are the ones that took the most internal debate to ship. They're a mirror, not an alarm. Showing a manager that they reply 4 minutes to one report and 47 minutes to another is uncomfortable on purpose. We built them because the research is clear: affinity bias in attention is one of the most reliable predictors of attrition, and managers can't self-monitor for it. The signal stays private to that one manager. It's not visible to HR, to the team, or to the people the disparity is between.
FILED — Yash Agarwal ·