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.

For beta sites, try to be a bit more liberal in terms of votes in the early stages, especially if you don't have too many high reps. You need enough people with high privileges, and voting on a not-bad-but-not-awesome post isn't a bad thing.

Try not to let other factors like the vote score and other answers influence your vote. Sometimes, one sees a massively <i>x</i>voted post, and piles on another <i>x</i>vote. Not really harmful, but it's always better to judge for yourself first. Similarly, don't let the poster or his rep affect your vote. Read the post with the same critical eye with which you would read the post of a 1 rep user. Experts can make mistakes as well. Downvoting and mentioning it in a comment is exactly what you should do when you see a wrong post, _regardless of the user_. Stack Exchange is about posts, not users. Reputation is a rough way to gauge community involvement and how much the community trusts you, but it really is just a "necessary evil" to aid the privilege system (and it also is [a sort of reward](//meta.stackexchange.com/questions/56469/what-aspects-of-psychology-does-stack-overflow-take-advantage-of)). Don't use it to gauge post quality. If you think something is wrong, comment (and downvote if you are confident enough). 

There is the opposite case of ["compensating a vote"](//meta.stackexchange.com/questions/137315/downvoting-average-mass-upvote-question). Here, one votes in such a manner as to bring the post to what one feels is the correct vote score (by downvoting massively upvoted mediocre questions, etc). Again, this isn't good. So try to ignore the existing vote score when voting. 

## Question

To downvote a question, downvote immediately. If there's scope for improvement, comment and downvote. You can always undownvote if it's improved. [Read more about Stack Exchange's philosophy of question selectiveness.][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

Note: [Do not upvote _solely_ to free the post from an undeserved negative vote][11].

### 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 if fixed. 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

Note: [Do not upvote _solely_ to free the post from an undeserved negative vote][11].

### Downvote

Try to comment whenever applicable when downvoting.

- Does not answer the question. Flag at your discretion.
- Makes no sense
- [FGITW][5] post with minimal answer: This depends upon the answer really.
- Code-only answer: A post _must_ be useful to People From The Future™. Nobody's going to have the exact same code with the exact same issue ([Well, maybe not][6]). People From The Future™ should have an explanation of _why_ the code is wrong/bad/whatever so that they learn something.
- [Link][7]-[only][8] [answer][9]
- 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&hellip;well&hellip; _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 because:

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

## Comments

Who cares? Keep this in mind that on a post with 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&mdash; `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]

  [1]: https://stackoverflow.blog/2011/06/optimizing-for-pearls-not-sand/
  [2]: //stackoverflow.com/questions/9464555/js-jquery-animated-random-name-picker/10260058#10260058
  [3]: //stackoverflow.com/questions/197769/when-is-javascripts-eval-not-evil
  [4]: //stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454
  [5]: //meta.stackexchange.com/questions/18014/what-is-fgitw-and-scite-on-mso
  [6]: https://en.wikipedia.org/wiki/Infinite_monkey_theorem
  [7]: /questions/how-to-answer
  [8]: //meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers
  [9]: //meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question/7659#7659
  [10]: //meta.stackexchange.com/help/badges/119/sportsmanship
  [11]: //meta.stackexchange.com/questions/104829/is-it-reasonable-to-upvote-in-order-to-counter-what-i-think-is-an-unjustified-do/104832#104832