Metrics · LGTM · T
Time-to-receipt
When someone raises a problem, how long until something visible happens?
Time-to-receipt is the median time from a problem raised through the tools to a visible outcome: a change shipped, a decision recorded, or a clear no with the reason. It measures the organization's behavior — how fast listening turns into an answer.
What it reads
- ●Problems raised through sanctioned channels, with timestamps
- ●Outcome links: the change, the recorded decision, or the reasoned no
- ●The share of raised problems that ever received an outcome (the receipt rate)
How it’s computed
Collect the window's raised problems, keep the ones that received a visible outcome, and take the median of raise-to-outcome durations. Publish the receipt rate beside it — a fast median over a tiny answered fraction is worse, and the pairing shows it.
const raised = frictions({ org, window }); // raised in the tools
const answered = raised.filter(f => f.outcome); // change | decision |
// a clear, reasoned no
const timeToReceipt = median(
answered.map(f => days(f.outcome.at - f.raisedAt))
);
const receiptRate = answered.length / raised.length; // its honesty check
How to read it
- →Read the median and the receipt rate together. Fast answers to ten percent of problems is a worse state than slower answers to ninety.
- →A reasoned no counts as a receipt on purpose: a clear no is an answer; silence is what teaches people to stop raising things.
How it gets misused
- ✕Filtering which problems “count” inflates the metric and everyone knows it — the inclusion rule must be public inside the org.
- ✕Time-to-receipt measures the organization. Turned around on the people who raise problems, it measures the wrong side of the conversation.