Table of Contents
Code Project Mechanics
- How does voting on articles this work?
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.
- How are ratings calculated?
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 (W_t = 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:
W_t & = 4 + 1 = 5 \\
V_t & = 4 \times 5 + 1 \times 1 = 21 \\
R & = 4.2
For a ridiculously indepth analysis please read Is CodeProject's Voting system really smart?
- What happens when some user votes 1?
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.
- Why do I sometimes see a message in the ratings histogram saying some votes were 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.
A second round analysis then kicks in which looks at the votes in each column to see if a rating value should be re-included. Suppose an article has 50 votes of 5 and 10 votes of 1. Clearly something's going on. The system will look at the types of votes in each column and re-include each column that has at least 5 votes from a silver (or greater) member.
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. 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.
Code Project Reputation
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.
- What is it?
- How many points are given or lost for particular actions?
- How does a member's level affect how many points are awarded for a reputation event?