I've noticed that the reviewer stats in the review queue contain awkward uses of polysyndeton:

user has approved $count edit suggestions and rejected $count edit suggestions and improved $count edit suggestions

This has always irked me but I never bothered to complain about it publicly til now. The wording should be changed to

user has approved $count edit suggestions, rejected $count edit suggestions and improved $count edit suggestions

Or one of the better suggestions from this answer.

The discussion about whether there should be a Serial Comma in the sentence is a separate one entirely, but I think it's unnatural and unreadable to string the ands together like they are.

  • Anything from the all-powerful mods?
    – AAM111
    Commented Mar 22, 2016 at 23:37
  • @OldBunny2800 Not yet, unfortunately. :(
    – cat
    Commented Mar 22, 2016 at 23:37
  • Just a bit of grammar pedantry: the sentence is technically not a run-on, as it is technically valid to not replace the and's in lists with commas. The sentence is just very choppy. Commented Apr 21, 2016 at 4:27
  • @pydsigner That's interesting, thank you. Don't really know what I should edit the post to say, but you can edit as you see fit.
    – cat
    Commented Apr 21, 2016 at 11:50
  • 1
    @cat It took me way too long to look up the exact term polysyndeton, but that's what it is. I do still agree with the request. Commented Apr 21, 2016 at 15:14

4 Answers 4


From my meta ELU post, later migrated to MSE, and now closed as dupe of this question:

Instead of seeing:

(username) has approved 297 edit suggestions and rejected 121 edit suggestions and improved 21 edit suggestions

Can that be rephrased to this?

(username) has approved 297, rejected 121, and improved 21 edit suggestions

The duplicated edit suggestions seems wordy and superfluous and redundant. Standard conjunction reduction in English would naturally remove the common bits between elements joined by the coördinating conjunction, so the current wording sounds somewhat un-Englishy.

  • 2
    Acceptance bump :) Also +1 for "coördinating" (please don't edit that out)
    – cat
    Commented Aug 28, 2016 at 1:56

Yeah, when I read it I just forget what I just read.

So a better way to put it is to use a chart.

chart example

This is probably the best way.

  • 2
    Bounty goes to you for thinking outside the box (haha) -- I didn't even consider a non-text solution.
    – cat
    Commented Mar 26, 2016 at 23:38
  • 3
    Well when there are a lot of users, tables can take a lot of space... Commented Mar 26, 2016 at 23:51
  • 2
    @PythonMaster indeed, I'm not sure the SE team will actually consider this, but I love it.
    – cat
    Commented Mar 27, 2016 at 0:09
  • @tac yeah they probably won't :( Commented Mar 27, 2016 at 0:10
  • 3
    I really liked this idea, so I made a userscript! :D +1 Commented Mar 27, 2016 at 20:11

I love @lolreppeatlol's idea, so I implemented it with a userscript! :)

enter image description here

Install it from GitHub Gist :) You will probably need a userscript manager such as Greasemonkey or Tampermonkey.

Update: I have now added this feature into v1.0.3 (currently in dev) of SOX: Stack Overflow Extras, a userscript which adds a bunch of optional features to the Stack Exchange sites. Install it for a bunch of other cool features! :)

// ==UserScript==
// @name         Tabular reviewer stats on /review/suggested-edits
// @namespace    http://stackexchange.com/users/4337810/
// @version      1.1
// @description  A userscript that makes the reviewer stats less wordy :)
// @author       ᔕᖺᘎᕊ (http://stackexchange.com/users/4337810/)
// @match        *://*.stackoverflow.com/review/suggested-edits/*
// @match        *://*.stackexchange.com/review/suggested-edits/*
// @match        *://*.superuser.com/review/suggested-edits/*
// @match        *://*.serverfault.com/review/suggested-edits/*
// @match        *://*.askubuntu.com/review/suggested-edits/*
// @match        *://*.stackapps.com/review/suggested-edits/*
// @match        *://*.mathoverflow.net/review/suggested-edits/*
// @grant        none
// ==/UserScript==

//Idea by lolreppeatlol @ https://meta.stackexchange.com/a/277446/260841 :)
setTimeout(function() {
    var info = {};
    $('.review-more-instructions ul:eq(0) li').each(function() { 
        var text = $(this).text(),
            username = $(this).find('a').text(),
            link = $(this).find('a').attr('href'),
            approved = text.match(/approved (.*?)[a-zA-Z]/)[1],
            rejected = text.match(/rejected (.*?)[a-zA-Z]/)[1],
            improved = text.match(/improved (.*?)[a-zA-Z]/)[1];
        info[username] = {
            'link': link,
            'approved': approved,
            'rejected': rejected,
            'improved': improved
    var $editor = $('.review-more-instructions ul:eq(1) li'),
        editorName = $editor.find('a').text(),
        editorLink = $editor.find('a').attr('href'),
        editorApproved = $editor.text().match(/([0-9])/g)[0],
        editorRejected = $editor.text().match(/([0-9])/g)[1];
    info[editorName] = {
            'editorLink': link,
            'approved': editorApproved,
            'rejected': editorRejected
    var table = "<table><tbody><tr><th style='padding: 4px;'>User</th><th style='padding: 4px;'>Approved</th><th style='padding: 4px;'>Rejected</th><th style='padding: 4px;'>Improved</th style='padding: 4px;'></tr>";
    $.each(info, function(user, details) {
       table += "<tr><td style='padding: 4px;'><a href='" + details.link + "'>" + user + "</a></td><td style='padding: 4px;'>" + details.approved + "</td><td style='padding: 4px;'>" + details.rejected + "</td><td style='padding: 4px;'>" + (details.improved ? details.improved : 'N/A') + "</td></tr>";
    table += "</tbody></table>";
    $('.review-more-instructions p, .review-more-instructions ul').remove();
}, 2000);
  • 2
    Nice, and thanks! Installing after I install Tampermonkey :) Commented Mar 27, 2016 at 20:13
  • 1
    Wow, I really love this, thank you!
    – cat
    Commented Mar 27, 2016 at 20:15
  • Could you do the same for the editor stats as well to maintain consistency? Commented Mar 28, 2016 at 22:56
  • @PythonMaster done! :) You can see the change in the screenshot :) Commented Mar 29, 2016 at 13:57
  • 1
    Heeey, that's me! :D
    – ArtOfCode
    Commented Apr 21, 2016 at 15:15

When I read it out loud, it does seem to be quite wordy and a mouthful, especially to say that many "and"s.

Proper grammar should be used to make the sentences easier to read and make SE look more professional (professional sites have professional grammar). To lower the wordiness, let's use commas instead of "and" to make the sentences better:

user000 has approved 0 edit suggestions, rejected 0 edit suggestions, and improved 0 edit suggestions

And if the stats are only about edit suggestions, removing the word "edit" should lower the wordiness a little more:

user000 has approved 0 suggestions, rejected 0 suggestions, and improved 0 suggestions

Now if this confuses user on what type of suggestions we are talking about (new users will probably be confused, replace "suggestions" with "items" and add "in the Suggested Edits queue" in the end:

user000 has approved 0 items, rejected 0 items, and improved 0 items in the Suggested Edits queue


You must log in to answer this question.

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