Commitment Flow Score Rules
Overview
The Commitment Flow Score (CFS) is the team-health composite that rolls up three axes — Flow Score (Say-Do Ratio), Ghost Rate, and Reciprocity. It is the Say-Do receipt of the team. This guide states exactly which rows count toward each axis, when they enter the calculation, and what causes them to leave.
Actors
- Lead — the CFS subject of the Garden widget. The Lead's CFS represents the team they manage.
- Knight — contributes events into the calculation but does not "have a CFS" of their own; the Knight's reliability surfaces on their Dossier as historical roll-ups.
- Squire — does not participate in scoring. Squire-extracted Shrubberies enter the calculation only after the Knight has Handshaked them.
Flow
- A Shrubbery is proposed —
DraftorPending_Handshake. Not counted yet in any axis. CFS is consent-first; nothing scores until the Knight has accepted. - Knight Handshakes —
Pending_Handshake→Active. Row enters the Flow Score denominator (it is now an "Active commitment with a deadline"). - Knight completes on or before the deadline —
Active→Completed,completed_at <= deadline. Row enters the Flow Score numerator (a delivered commitment). - Knight completes late —
Active→Completed,completed_at > deadline. Row stays in the denominator but not the numerator. Flow Score drops. - Knight refuses during
Pending_Handshake—Pending_Handshake→Refused. Row enters the Ghost Rate numerator. It does not enter the Flow Score denominator (the Knight never agreed to deliver). - A
Pending_Handshakeages out past the stale threshold without acceptance — counts toward Ghost Rate the same as an explicitRefused. - Lead is the Assignee on a Shrubbery (manager doing work on their team's behalf) — that row contributes to the Lead's own Reciprocity axis using the same Flow-Score arithmetic.
Edge cases
- Renegotiation — a substantive edit on an
Activerow reverts it toPending_Handshakeand emits aRenegotiatedaudit event. The row leaves the Flow Score calculation until the Knight re-Handshakes. The original deadline does not carry over implicitly; the new deadline is whatever the Lead set on the edit. - Edited but not Renegotiated — non-substantive edits emit an
Editedevent and keep the row inActive. No CFS impact. - Deleted rows — soft-deletes preserve the audit trail; CFS calculation joins on the live
shrubberiesrows, so deletions remove the row from both numerator and denominator immediately. - Externally-completed via Sync webhook —
actor_kind = api_tokenon the audit row, but the CFS arithmetic treats it identically to a user-mark-complete (the Knight is still the responsible party). The Dossier surfaces the actor distinction; the score does not. - Open
Pending_Handshakepast the stale threshold but not yet aged out — sits in neither numerator. Visible on the dashboard as a Nudge candidate.
Related concepts
- Commitment Flow Score (CFS)
- Flow Score
- Ghost Rate
- Reciprocity
- Active
- Completed
- Refused
- Pending Handshake
- Ghost Commitment
Last updated: 17 May 2026