Note that votes are largely subjective, this is _my_ cheatsheet.

I generally use "does the post help the site?" to judge upvotes and downvotes to some extent. This is based on the same thing, expanded into points. If you want. I can expand the points/add more if I think of them.


##Question

To downvote a question, downvote immediately. If there's scope for improvement, comment and downvote. You can always undownvote if its improved. [Read more][1]


###Upvote
(pick one)

 - It's clear and shows research effort
 - The question is plain awesome (in case of fun questions, this can go either way)
 - The question is useful to others

###Downvote

 - It's unclear
 - It's a [tag:plzsendtehcodez] or similar question with no effort from the OP
 - It's localized (will probably be useless to the world)

Note that I tend to upvote _questions_ when their answers explain something pretty well. This is probably wrong, but that's just me.
 
Do NOT downvote just because:

 - The question uses incorrect grammar (as long as it is comprehensible)
 - The question has bad, (but clear) code; the question uses bad coding practices; the premise of the program is wrong. In this case, just comment "why haven't you done blah?". If you're answering, you can append that to your answer instead. ([I've done that here][2]). **Remember, voting is to filter _post_ quality, not _code_ quality or _OP_ quality.**. Also, there are legitimate uses for _everything_, [even `eval()`][3].

##Answer

With answers, again, downvote immediately, comment, undownvote. With newbies I tend to be more lax, I comment first and downvote if they decide not to listen. But again, that's just me.


###Upvote

Of course, in any event, the answer must answer the question. If not for the last line of [this answer][4], it _should_ have been downvoted. (Not that it _would_ have been)


 - The answer is clear
 - The answer explains the underlying concept. On SO I've noticed many answers that give the solution, but not the "Why?". I do not downvote these, but neither do I upvote them


###Downvote

- Does not answer the question
- Makes no sense
- [FGITW][5] post with minimal answer (For that matter, _any_ post with just a bunch of code and no explanation--unless the question warrants it)
- Link-only answer
- Is wrong (in your opinion)
- Bad coding practices. Unlike questions, the answer should use good coding practices. For questions and answers, _post quality_ is differently measured. For questions, it has to do with the actual question more than the code. For code-only answers, bad coding practices are..well.. _bad_. In the case of a good explanation with bad code, downvote, comment, undownvote. Or abstain from voting and comment. Either is fine, it's up to you.

Do NOT downvote just `cos

 -  It's a competitor. Voting is for _post quality_, and you end up harming the system. Also, upvoting competing answers gets you [something shiny][6].
 - Again, grammar that does not affect comprehensibility too much.

##Comments

Who cares? Keep this in mind that on a post wil a large number of comments, the ones shown will be the upvoted ones. So the comments which actually improve the post quality/help the OP should be upvoted. But, we know, nobody's going to follow that-- `Not enough jQuery` is a sure way to get you a comment upvote. And on MSO, comment-upvote just about anything :) [Scroll down a bit to see what I mean]


EDIT: To safeguard myself from the ensuing comments of `not enough jQuery`, I present to you:

In short, DO NOT `$('.vote-down-off').click()` in case of competing answers. Try to `$('.vote-up-off').click()` in most cases. Then downvote manually :)


  [1]: http://blog.stackoverflow.com/2011/06/optimizing-for-pearls-not-sand/
  [2]: http://stackoverflow.com/a/10260058/1198729
  [3]: http://stackoverflow.com/questions/197769/when-is-javascripts-eval-not-evil
  [4]: http://stackoverflow.com/a/1732454/1198729
  [5]: http://meta.stackoverflow.com/questions/18014/what-is-fgitw-and-scite-on-mso
  [6]: http://meta.stackoverflow.com/badges/119/sportsmanship