I am wondering if there is anyway I can associate a tag with the probability of getting a downvote once a question is tagged with it?

I know there are reasons why downvotes are given.

This is more of a mathematical question rather than a question on guidelines. I would ignore why the downvote was given. Just pure numbers on things as they stand now.

So is this data out there? Can we crunch the numbers to find that tag?

  • 7
    data.stackexchange.com and to get started: data.stackexchange.com/tutorial
    – rene
    Mar 19, 2018 at 23:42
  • 1
    Probably depends rather on site affinity than in general. Mar 19, 2018 at 23:47
  • The data is there, though incomplete. Whether that matters will depend considerably on how rigorous you want to be.
    – Shog9
    Mar 19, 2018 at 23:51
  • I'd bet C++ then PHP then javascript
    – user1228
    Mar 20, 2018 at 21:03
  • @Won't: What about Android? Mar 21, 2018 at 0:03
  • Related: SEDE tutorial Mar 21, 2018 at 0:05
  • Right now I am time constrained go through the tutorial and have a go at this. Once I have something to show on this I will report back. Meanwhile if anyone's SEDE-fu is awesome then feel free to have a crack at this. Mar 21, 2018 at 1:08
  • In my experience, the 'arraylist' and 'android-studio' tag have extremely high cases of downvotes. Mar 21, 2018 at 10:08

1 Answer 1


On Stack Overflow, it's ... [agile]. Well, at least if you look at tags which are used 1000 times or more, of which there are ~4000. 48% of the questions tagged [agile] have been downvoted. Not surprising, since it's considered off-topic.

I found it with this query. It's easier to count questions which aren't downvoted, and combine it with the denormalized Tags.Count column which tells you how many questions there are in total.

For reference, here is the complete query:

SELECT t.TagName,
  t.[Count] AS '# of questions',
  ROUND(100.0 * (t.[Count] - COUNT(*)) / t.[Count], 2) AS '% downvoted'
  FROM Tags AS t
  INNER JOIN PostTags AS pt ON t.Id = pt.TagId
  LEFT OUTER JOIN Votes AS v ON v.PostId = pt.PostId
                            AND v.VoteTypeId = 3 -- downvotes
  WHERE t.[Count] >= ##MinTagCount:int?1000##
    AND v.PostId IS NULL -- so we select the questions WITHOUT downvotes
  GROUP BY t.TagName, t.[Count]
  ORDER BY ROUND(100.0 * (t.[Count] - COUNT(*)) / t.[Count], 2) DESC

Bonus result: the 2nd highest downvoted tag on Meta Stack Exchange is ... wait for it ... with 69.25%.

I realize that a tag where all questions have been downvoted (100%) would not appear in the query results. I think it's safe to assume that given the >1000 filter, we're not missing any tags.

You must log in to answer this question.

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