ShrubberyDocs
Sign in

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

  1. A Shrubbery is proposed — Draft or Pending_Handshake. Not counted yet in any axis. CFS is consent-first; nothing scores until the Knight has accepted.
  2. Knight Handshakes — Pending_HandshakeActive. Row enters the Flow Score denominator (it is now an "Active commitment with a deadline").
  3. Knight completes on or before the deadline — ActiveCompleted, completed_at <= deadline. Row enters the Flow Score numerator (a delivered commitment).
  4. Knight completes late — ActiveCompleted, completed_at > deadline. Row stays in the denominator but not the numerator. Flow Score drops.
  5. Knight refuses during Pending_HandshakePending_HandshakeRefused. Row enters the Ghost Rate numerator. It does not enter the Flow Score denominator (the Knight never agreed to deliver).
  6. A Pending_Handshake ages out past the stale threshold without acceptance — counts toward Ghost Rate the same as an explicit Refused.
  7. 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 Active row reverts it to Pending_Handshake and emits a Renegotiated audit 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 Edited event and keep the row in Active. No CFS impact.
  • Deleted rows — soft-deletes preserve the audit trail; CFS calculation joins on the live shrubberies rows, so deletions remove the row from both numerator and denominator immediately.
  • Externally-completed via Sync webhookactor_kind = api_token on 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_Handshake past the stale threshold but not yet aged out — sits in neither numerator. Visible on the dashboard as a Nudge candidate.

Last updated: 17 May 2026