What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 133 Stack Exchange communities.

During yesterday's podcast, Joel mentioned the reciprocity ratio and also said that the sweet spot for successful sites is 14%. I'm curious to know what the rate is for Stack Overflow itself.

Reciprocity is "What percentage of users both asked and answered?"

  • Joel Spolsky SE Podcast #06 ~16:31

Can we please get this number published for each site? This would be an especially interesting statistic for Area 51 beta sites. (Either on Area 51 by each site, or elsewhere.)

share|improve this question

2 Answers 2

up vote 22 down vote accepted

Data for Feb 2011:

Site            Peeps   Askers  Ansrrs  Both    Reciprocity     
Skeptics        60      34      51      25      42%     
Quantitative    147     88      103     44      30%     
Project Mana    133     60      109     36      27%     
Code Golf       160     55      147     42      26%     
Role-playing    118     49      99      30      25%     
Science Fict    214     86      180     52      24%     
Area 51 Disc    268     148     185     65      24%     
GIS             290     182     175     67      23%     
TeX - LaTeX     551     425     243     117     21%     
StackOverflow   70933   46127   39581   14775   21%     
Homebrew        73      42      45      14      19%     
Physics         423     296     208     81      19%     
Cooking         345     161     247     63      18%     
Stack Apps      77      60      31      14      18%     
WordPress       684     454     353     123     18%     
Gaming          697     347     475     125     18%     
Mathematics     1214    908     519     213     18%     
Photography     347     167     240     60      17%     
IT Security     122     59      84      21      17%     
Graphic Desi    158     103     82      27      17%     
Database Adm    159     106     80      27      17%     
English Lang    854     506     492     144     17%     
Audio Record    84      53      45      14      17%     
Apple           637     343     399     105     16%     
Board and Ca    114     43      89      18      16%     
Ubuntu          1532    839     932     239     16%     
Theoretical     277     164     156     43      16%     
Atheism         106     34      88      16      15%     
Statistical     393     253     199     59      15%     
Bicycles        97      39      72      14      14%     
Programmers     2628    985     2020    377     14%     
Electronics     352     205     197     50      14%     
Home Improve    212     134     106     28      13%     
ServerFault     4677    2987    2305    615     13%     
Android Enth    417     232     236     51      12%     
Game Develop    493     254     299     60      12%     
Personal Fin    171     95      96      20      12%     
Code Review     299     148     185     34      11%     
User Interfa    215     93      146     24      11%     
SuperUser       4783    2771    2545    533     11%     
Unix and Lin    517     280     294     57      11%     
Writers         239     77      188     26      11%     
Guitars         92      43      59      10      11%     
Webmasters      548     333     270     55      10%     
OnStartups      493     208     330     45      9%      
Web Apps        561     295     317     51      9%      
  • Peeps = Number of people who posted (asked or answered)
  • Askers = Number of people who asked a question
  • Ansrrs = Number of people who answered
  • Both = Number who both asked and answered
  • Reciprocity = Percentage of users who both asked and answered in the same month

Hypothesis: High reciprocity denotes a conversational site, low reciprocity denotes a one-sided site where experts help novices. Either extreme is unhealthy.

None of these metrics is really strong enough to base policy on, so publishing the numbers regularly or even using them to drive policy in Area51 is probably not warranted.

This is the SQL used to produce this data:

select (select count(distinct OwnerUserId) from Posts
         where CreationDate >= '2011-02-01' and CreationDate < '2011-03-01'
           and OwnerUserId is not null
           and OwnerUserId > 0
           and PostTypeId in (1,2)) as "Recent Users",
       (select count(distinct OwnerUserId) from Posts
         where CreationDate >= '2011-02-01' and CreationDate < '2011-03-01'
           and OwnerUserId is not null
           and OwnerUserId > 0
           and PostTypeId = 1) as "Askers",
       (select count(distinct OwnerUserId) from Posts
         where CreationDate >= '2011-02-01' and CreationDate < '2011-03-01'
           and OwnerUserId is not null
           and OwnerUserId > 0
           and PostTypeId = 2) as "Answerers",
       (select count(distinct OwnerUserId) from Posts
         where CreationDate >= '2011-02-01' and CreationDate < '2011-03-01'
           and OwnerUserId is not null
           and OwnerUserId > 0
           and PostTypeId = 1) +
       (select count(distinct OwnerUserId) from Posts
         where CreationDate >= '2011-02-01' and CreationDate < '2011-03-01'
           and OwnerUserId is not null
           and OwnerUserId > 0
           and PostTypeId = 2) -
       (select count(distinct OwnerUserId) from Posts
         where CreationDate >= '2011-02-01' and CreationDate < '2011-03-01'
           and OwnerUserId is not null
           and OwnerUserId > 0
           and PostTypeId in (1,2)) as "Double Threats"

Suggestions for improving the SQL would be most welcome :P

share|improve this answer
    
StackOverflow is quite high relative to the 14% mark, no? Also, isn't Area51 Discussion a bit low? Isn't A51 Discussion about discussion regarding potential new sites? –  Moshe Jun 2 '11 at 3:54
1  
I doubt if this is really like chemistry, where water boils at 100 degrees at sea level, so if it's 99 degrees, it must not be boiling. –  Joel Spolsky Jun 2 '11 at 14:54
    
Okay, fair enough. Thanks for the great answers. :-) –  Moshe Jun 2 '11 at 15:03

From your definition/this query run on data.stackexchange.com, about 19.45%.

DECLARE @UserCount decimal(19,5)
SELECT @UserCount = COUNT(Users.Id) FROM Users

SELECT COUNT(Users.Id) / @UserCount * 100
FROM Users
WHERE Users.ID IN (SELECT OwnerUserId FROM Posts WHERE Posts.PostTypeId = 1)
AND Users.ID IN (SELECT OwnerUserId FROM Posts WHERE Posts.PostTypeId = 2)

​
share|improve this answer

You must log in to answer this question.

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