What is time to close the loop on customer feedback?
Definition
Time to close the loop measures how long it takes from a customer filing a feature request to the team shipping it and telling the requesters. It's the honesty metric of a feedback program: collecting requests is easy, and this number shows whether anything happens next.
What data do you need?
- Request created timestamps
- Status-change history with shipped/closed timestamps
- Announcement or notification timestamps (changelog links) — required to measure the loop closing, not just the ship
- Product area and segment fields for breakdowns
- Only shipped-and-announced requests — open ones aren't in the population
SQL pattern
-- The loop closes when requesters are told, so measure to announced_at.
-- No announcement tracking? Swap in shipped_at and call it time to ship.
SELECT
date_trunc('quarter', announced_at) AS quarter,
COUNT(*) AS closed_loop_requests,
percentile_cont(0.5) WITHIN GROUP (
ORDER BY EXTRACT(EPOCH FROM (announced_at - created_at)) / 86400
) AS median_days,
percentile_cont(0.9) WITHIN GROUP (
ORDER BY EXTRACT(EPOCH FROM (announced_at - created_at)) / 86400
) AS p90_days,
percentile_cont(0.5) WITHIN GROUP (
ORDER BY EXTRACT(EPOCH FROM (announced_at - shipped_at)) / 86400
) AS median_days_ship_to_announce
FROM feedback_items
WHERE shipped_at IS NOT NULL
AND announced_at IS NOT NULL
GROUP BY 1
ORDER BY 1;Common pitfalls
Where does this metric apply?
This metric commonly uses data from Canny, Featurebase, Aha!, Productboard, plus any warehouse models that provide the same grain.