Issue with the Current "Time to First Response" Metric

AI-generated summary

tyler.lamparter highlights a flaw in Discourse’s “Time to First Response” metric when aggregated weekly or monthly. The current method calculates an average of daily averages, which can be misleading because it treats each day equally regardless of topic volume. For example, a day with a high response time but few topics (like March 15 with 23.6 hours and 1 topic) is given the same weight as a high-activity day (like March 11 with 2.1 hours and 8 topics). This leads to an inaccurate average of 5.82 hours, compared to a weighted average of 2.85 hours that accounts for topic count. tyler.lamparter argues that Discourse should use a weighted average to provide a more accurate representation of response times.

I’ve been replicating Discourse metrics into our BI tool, ThoughtSpot, and when I got to the “Time to First Response” metric, I noticed a flaw in how it’s being reported when viewed on a weekly or monthly basis.

Currently, the Discourse report calculates an average response time per day, but when aggregating to a weekly or monthly view, it simply takes the average of those daily averages instead of computing a weighted average. This can lead to misleading results, especially when some days have significantly more topics than others.

Example:

Here’s a breakdown of daily response times and topic counts:

Date Avg Response Time (hr) Topic Count
March 16 1.9 1
March 15 23.6 1
March 14 0.4 3
March 13 6.0 7
March 12 0.3 1
March 11 2.1 8
March 10 6.6 1

Now, if we calculate the average of averages, we get:

However, this does not accurately represent the true first response time because it treats each day equally, regardless of how many topics were created. Instead, the correct approach is to calculate a weighted average, factoring in the topic count:

Using this method:

Why This Matters

The difference is significant—5.82 hours vs. 2.85 hours. The current method overweights outlier days (like March 15 with 23.6 hours but only 1 topic) and underweights high-activity days (like March 11 with 8 topics and a 2.1-hour response time).

For a more accurate representation of response times, Discourse should switch to a weighted average when aggregating over time.

Would love to hear others’ thoughts—has anyone else noticed this issue?

2 Likes