Downvoting seems to be a rather popular activity on MSE. In the few informal discussions I have seen there seems to be a base of support for this, and also for the preservation of (optional) anonymity for users of the feature. I am happy with this state of affairs, but I think it would be useful for each user to have a publicly visible index representing the function $$f_{:-(}:MSE \to $\mathbb{Q} \cap [-1,+1]$$ defined by: $$f_{:-(}(user) = \frac{upvotes-downvotes}{upvotes+downvotes}$$

This would preserve anonymity for individual votes, whilst ensuring that those who contribute most to the site by casting downvotes are given the recognition they deserve.

added: This function is defined in terms of the votes cast by a particular user. There is a dual function $f*$ which has the same definition, but is computed on the basis of the votes received by the user in question.

added: I notice that after only 3 minutes and four views that this question has already received an anonymous downvote. This indicates the great importance of the downvoting activity as a stimulus to useful discussion.

  • 6
    $\begingroup$ I suppose You are aware of the fact that on each user profile page you can see number of upvotes and number of downvotes (in the part named Votes Cast). $\endgroup$ Jan 4, 2014 at 13:17
  • 4
    $\begingroup$ BTW I have tried to add capitalization to your post, but you reverted it in your next edit each time. It might have been just an accident - of several edits colliding. But in any case I wanted to ask whether there is a reason to avoid capitalized letters at the beginning of sentence. $\endgroup$ Jan 4, 2014 at 13:19
  • 9
    $\begingroup$ -1 Now you have a nonanonymous downvote too. $\endgroup$ Jan 4, 2014 at 13:53
  • 5
    $\begingroup$ due to a neurological problem in the C4/C5 region of the cervical chord i experience much frustration in the use of both keyboard and mouse (particularly, but by no means exclusively, the CAPSLOCK issue) and have simplified my practice accordingly. the browser I am using automatically capitalizes the word "i". I capitalize proper names, and am scrupulous when quoting. spend a lot of time correcting minor typos, an activity fortunately hidden from the wider world. $\endgroup$ Jan 4, 2014 at 13:53
  • 2
    $\begingroup$ @MichaelGreinecker thank you. your index is 0.71 $\endgroup$ Jan 4, 2014 at 13:59
  • 8
    $\begingroup$ @DavidHolden I happen to disagree with the proposal. Coincidentally, I also don't like your sarcasm. $\endgroup$ Jan 4, 2014 at 14:10
  • 3
    $\begingroup$ @DavidHolden I think you have used votes on meta for calculation. (For me it is (1351-36)/(1351+36)=0.948.) I thought you want to talk about upvotes/downvotes on the main site. (That would be (8782-16)/(8782+16)=0.996.) I suppose you did the same thing when you calculated 0.71 for Michael. $\endgroup$ Jan 4, 2014 at 14:20
  • 1
    $\begingroup$ @MichaelGreinecker perhaps there is a clash of assumptions here. my understanding (possibly naïve because I am new here) was that votes were given according to the quality of formulation of questions. your comment indicates that you understand votes on proposals are part of a quasi-democratic decision process. as you have more experience you may be correct in this. as to what you refer to as my sarcasm, I thank you for sharing your opinion, and can assure you that I am a libertarian on questions of taste rather than fact. i.e. I hold you to be free to dislike whatever you wish. $\endgroup$ Jan 4, 2014 at 14:22
  • 3
    $\begingroup$ @DavidHolden Yes, votes on meta are usually interpreted as signs of agreement/disagreement. Also, voting on meta has no effect on anyones reputation count. $\endgroup$ Jan 4, 2014 at 14:24
  • 3
    $\begingroup$ Voting on meta has different meaning, see What is meta in help center and also this older question. $\endgroup$ Jan 4, 2014 at 14:25
  • 2
    $\begingroup$ BTW various SEDE queries could be made to compute the index you have suggested, for example by modifying these queries: upvote / downvote ratio and Ratio of Upvotes to Downvotes Received $\endgroup$ Jan 4, 2014 at 14:34
  • 1
    $\begingroup$ @MartinSleziak I tried the SEDE query modification you suggested, and it was unexpectedly straightforward. thank you for that useful suggestion, and for making me aware that this easy-to-use data exploration facility exists. $\endgroup$ Jan 4, 2014 at 14:51
  • 1
    $\begingroup$ @DavidHolden In that case, you could perhaps add links to the queries to your post. (Either edit them into the question, or post them as answers.) $\endgroup$ Jan 4, 2014 at 14:54
  • 4
    $\begingroup$ As @MartinSleziak points out, your index is calculable from public information, and besides, I don't see any added benefit to the formula you're proposing over simply looking at a user's vote counts. Unless I'm misinterpreting, it seems the core of what you're proposing is equivalent to showing the upvote/downvote tallies next to a user's name in all their posts, and I can only interpret that as an attempt to punish people for anonymous downvoting, which is stupid. So, here's another -1. $\endgroup$
    – Alexander Gruber Mod
    Jan 4, 2014 at 18:28
  • 3
    $\begingroup$ @DavidHolden I really, really dislike double standards. You expect understanding from others for your keyboard/mouse issue, but you blithely assign "emotionally disturbed" to those who find the resulting text difficult to read. If you attack those who might have difficulties reading your text for a variety of reasons, then you rightfully deserve to accept attacks for missing capitals in silence. To talk about "redundant information" shows a serious lack of empathy for other people. As it so happens, the voting index is redundant information as well. $\endgroup$
    – Phira
    Jan 4, 2014 at 23:28

2 Answers 2


Generally speaking, Stack Exchange network (4.6 million users) does not customize its interface to individual user's preference. However, users are able to customize the interface themselves with client-side scripts. In particular, you can add the f-score to each user profile in this way:


I actually like the effect, maybe I'll be using this myself. The script I wrote for this purpose is below. It relies on jQuery library. I can turn it into a Chrome extension if you want, but adding it to other browsers (e.g., Firefox) is out of my range of activities.

$(document).ready(function () {
    var entries, f, up, down;
    $('.votes-cast-stats').each(function () {
        entries = [];
        $('td', this).each(function () {
    up = entries[entries.indexOf('up') - 1];
    up = parseInt(up.replace(/,/g, ''), 10);
    down = entries[entries.indexOf('down') - 1];
    down = parseInt(down.replace(/,/g, ''), 10);
    f = ((up - down) / (up + down)).toPrecision(3);
    $('.user-profile-stats').append('<tr><th></th><td>f-score</td><td>' + f + '</td></tr>');
  • $\begingroup$ thank you for that very useful post. I don't know anything about client-side scripts at present, but this may serve as a motivating example to encourage me to learn how to do it during 2014 $\endgroup$ Jan 4, 2014 at 18:34
  • 1
    $\begingroup$ :-o Whoever you are, Post No Bulls, you are constantly earning my respect. :) $\endgroup$
    – apnorton
    Jan 4, 2014 at 22:54

Here, have a data explorer query to play with.


You must log in to answer this question.

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