Table of Contents
CodeProject 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.
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 CodeProject 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:
$\begin{aligned} W_t & = 4 + 1 = 5 \\ V_t & = 4 \times 5 + 1 \times 1 = 21 \\ R & = 4.2 \end{aligned} $
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 deviation from the weighted raw score. The final score displayed is the weighted score using only filtered 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 if necessary 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. Filtering out the "1" votes doesn't make sense here because there are a group of members consistently voting 1. 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.
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. 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 "correct" 5 votes filtered out, but soon enough when a sufficient number 5 votes are posted, or members with high enough reputation post a 5 vote, the mean and acceptable deviation will be adjusted 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.
CodeProject 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?
The CodeProject team have been writing software, building communities, and hosting CodeProject.com for over 20 years. We are passionate about helping developers share knowledge, learn new skills, and connect. We believe everyone can code, and every contribution, no matter how small, helps.
The CodeProject team is currently focussing on CodeProject.AI Server, a stand-alone, self-hosted server that provides AI inferencing services on any platform for any language. Learn AI by jumping in the deep end with us:
codeproject.com/AI.