The voting system for articles is meant to guide readers to the best articles and advise authors on where they need improvement. If you place a low vote you will be asked to include a comment on why you are giving the author that vote. A vote with no message doesn't help an author. A vote and a 'this is why I voted bad' helps an author improve. A high vote is just a "Thanks - well done!" and doesn't really require a comment suggesting improvements.
Votes are tied to messages. If a voter votes low and leaves a spurious comment (eg. 'asdf') then other members can report that comment as inappropriate and the comment and the vote will be removed.
Articles, messages and many other items on The Code Project have associated with them a Vote Total (Vt), a Weight Total (Wt), and a number of votes (N). When a member votes, the system adds the weight of their vote (dependent on membership level) to Wt, and the rating itself multiplied by their weight to Vt. The rating of an item is then R = Vt / Wt.
If everyone has a weight of 1 then Wt = N, and R = Vt / N. Having differing weights, though, means that when a gold member (weight = 4) and bronze member (weight = 1) vote, the vote is weighted towards the gold:
Assume Gold votes 5 and Bronze votes 1:
Wt = 4 + 1 = 5
Vt = 4 x 5 + 1 x 1 = 21
R = 4.2
For a ridiculously indepth analysis please read Is CodeProject's Voting system really smart?
If someone votes you down in an article and leaves a voting comment, then you can mark that comment for removal and if enough people vote for the voting comment to be removed, the comment and the down-vote are removed.
If an awesome article gets 50 "5" votes and then a single "1" vote our thinking is "something's wrong". Not all members play nice so we filter out spurious or malicious votes that are further than a certain deviations from the weighted raw score. The final score displayed is the weighted score using only unfiltered votes.
The actual acceptable deviation from the mean that is used to filter votes is calculated as 1.75 x the standard deviation, and then increased to ensure that voting values on either side of the mean can still be voted.
Filtering only kicks in once there are 10 votes to an article, and due to historical reasons not all ratings can be treated accurately due to our systems only having full rating data since 2003.
Note that filtering of votes only affects the score and popularity. All reputation points awarded (and lost!) through votes still apply, regardless of whether a vote is filtered from the score or not. Also remember that each time you vote the mean and deviation are recalculated and will change. A set of false 1 votes on an article that deserves a 5 will initially have the first few (correcting) 5 votes filtered out, but soon enough when sufficient 5 votes are posted, or members with high enough reputation post a 5 vote, the mean will be corrected and the initial spurious 1 votes will be filtered out in turn.
The calculated mean and accepted deviation are displayed in the rating histogram as μ and σa.
Reputation is something you gain - or lose - as you contribute to our communal knowledge base. Posting an article increases your reputation, but posting a bad article that other members down- vote decreases your reputation. If your goal is to increase your reputation then write good articles, vote for other good articles, hope that others in turn vote for your articles, and help out by organising and cleaning up the questions and answers. Vote them up, answer questions, or edit questions and answers that need a little help.
While this system is now mostly finalised, we welcome feedback and may tweak the points from time to time. For a uses live data report on the Reputation scales, go here: Member Reputation System
It's controlled by the weights assigned. If member who has higher level votes for, say, an article then more points are awarded to the article author rather than if lower level member voted for the same article.
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
General News Suggestion Question Bug Answer Joke Rant Admin
Skills that self-taught computer programmers lack