8

How can I determine the percentage of users who actively answer questions in any given Stack Exchange forum?

By active, I mean have answered at least one question within the last 12 months, regardless of whether their answer was selected or upvoted.

I'm as much interested in how I can find the answer myself as I am in the actual answer.

2
  • 4
    You can find the answer using SEDE, the Stack Exchange Data Explorer.
    – Luuklag
    Jan 12, 2021 at 15:48
  • 6
    Check out the SEDE tutorial
    – VLAZ
    Jan 12, 2021 at 15:49

2 Answers 2

8

Using SEDE, the following query gives the desired results:

SELECT COUNT(*) As AnsweringUsers
FROM (
  SELECT COUNT(*) AS AnswerCount
  FROM Users
  LEFT JOIN Posts
  ON Users.Id = Posts.OwnerUserId
  WHERE Posts.PostTypeId = 2
  AND Posts.CreationDate >= DATEADD(month, -12, CURRENT_TIMESTAMP)
  GROUP BY Users.Id
  HAVING Count(*) > 0
) AS X;

A query for total users shows 13,764,888. However, as @VLAZ suggested, many of those users are stale and have not logged on in years. It makes more sense to consider only active users. For simplicity, I used Users.LastAccessDate, which includes any login within the query window. Here's the query for active users in the last 12 months:

SELECT COUNT(*) As ActiveUsers
FROM Users
WHERE Users.LastAccessDate >= DATEADD(month, -12, CURRENT_TIMESTAMP);

Here are the results for Stack Overflow on Jan 13, 2020.

Users Who Answered

Query Window Users Answered Active Users % of Active Users % of Total Users
Last 12 months 529,224 5,019,518 10.5% 3.8%
Last 6 months 297,102 3,558,794 8.3% 2.2%
Last 3 months 163,368 2,729,044 6.0% 1.2%
Last 1 month 59,831 1,925,073 3.1% 0.4%

Users Who Posted

Query Window Users Posted Active Users % of Active Users % of Total Users
Last 12 months 1,210,741 5,019,518 24.1% 8.8%
Last 6 months 691,999 3,558,794 19.4% 5.0%
Last 3 months 391715 2729044 14.4% 2.8%
Last 1 month 153,814 1,925,073 8.0% 1.1%
2
  • 3
    It might be useful to only check "active" accounts. Although, I'm not exactly sure how that would be formulated. I don't think SEDE gives thorough information for user activity but you can at least consider users who have commented, posted, and cast votes. You can choose the timeframe for that. The idea is that many accounts are abandoned for one reason or another, so counting them as "not answering" might not be very useful, since they aren't doing anything and likely haven't logged in for many years.
    – VLAZ
    Jan 13, 2021 at 9:20
  • 1
    Good suggestion @VLAZ. I'll update my query to look for users with LastAccessDate within the last 12 months.
    – DV82XL
    Jan 13, 2021 at 15:42
6

The answer to these sort of questions can be found using the Stack Exchange Data Explorer.

Here is one example:

Users answering more than 3 questions per week this past year on Stack Overflow

Changing that to one per week gives 70-85 thousand users, with the peak during May 2020, or approximately 0.55% of the users (out of 14 million) are that active.

2
  • 1
    Did you see a dip? Jan 12, 2021 at 16:16
  • 1
    From 13 to 12 in the past year, on 3 answers per week, isn't really a very noticeable dip; which could easily be counteracted by many new users engaging actively and only answering 2 questions per week.
    – Rob
    Jan 12, 2021 at 17:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .