The Reputation System We're Actually Working On...
Over the past year, I've done quite a bit of blogging on reputation and got quite a bit of feedback back from you as a community. Well...I've got good news and I've got bad news. The good news is that we're actually working on a reputation system. The bad news--it's "step one", and fairly basic.
Below is a version of the spec that I'm working on implementing, minus the boiled down requirements list. Any feedback? Comment away...
Microsoft Forums 2.3: User Point System
The current Microsoft Forums use an answer count-based system that only rewards high volume answer contributors, but doesn’t reward users that contribute high quality, helpful answers, or other important actions. This specification describes a basic point-based reputation system that achieves the above goals in a more comprehensive manner than is currently implemented. The basic reputation system described here uses an event-driven model to award or deduct points in particular situations.
These point values will be displayed in a user’s profile, along with a basic visual representation (star rating) that makes the user’s current rank apparent to novice users. These points will also be used in place of answer count in the current “Top Answerer” lists on the forum site homepages, individual forum pages, and the “Hall of Fame” page.
User Events and Point Values
The basic reputation enhancements require the events below to be tracked and awarded with a configurable number of points. The values below are suggested default values. The events will be tracked in a table in the forums database, with each record containing the following information:
Events (Points it's worth by default)
- User replies to a question/bug thread that they did not start (1)
- A user reply to a question thread that they did not start is marked as an answer (5)
- User receives a helpful vote for a reply that they posted (5 x (# of votes))
- User marks a reply as an answer (1)
- User has a reply that they marked as an answer unmarked as an answer (-5)
The point values should be:
1. Calculated per user,
2. Scoped to forum site and,
3. Scoped to only events that have occurred in the past year.
For example, a user that answered a question on the MSDN forum site would not get points for their TechNet reputation. Furthermore, a user that answered a question 18 months ago on the MSDN site would no longer get points for that answer. For the edge case where a forum is displayed on multiple sites, the user should get points on both sites. This should be handled by creating multiple separate records for each event that occurs on a forum that is displayed on multiple forum sites.
The point values should be cached whenever possible and only need to be refreshed every 4/8 hours to reduce the load on the live forum site.
Display of Point Values on the Forums
The point values will be displayed and utilized in multiple forums on the forums, but will only be used in areas where post counts or answer counts are currently used.
Hall of Fame Page
The Hall of Fame page should be updated from number of answers to number of points.
Top Answerers Boxes
On ShowForum.aspx and on each forum sites’ homepage, there is a “Top Answerers” box that lists the Top 10 answerers over the past 30 days. These lists should be refreshed every 24 hours, and should contain the top point getters on that forum site/forum over the past 30 days.
User Avatar Areas
The current “user avatar areas” contain the user’s name, whether or not they are a moderator and/or an MVP, and the raw number of posts that they have made in the Microsoft Forums. The only changes will be that the raw number of posts made in the forums should be replaced with the number of points they have based on the current forum site that is being viewed, and the addition of a simple star rating icon that will contain zero to five stars, directly based upon star rating.
Figure 1 - Current user avatar area features only number of Posts
Figure 2 - Enhanced user avatar area includes star rating and the number of points.
The star rating thresholds should be configurable per site, but the suggested point values are:
Star Rating (number of points)
- 0: (0 – 9)
- 1: (10 - 99)
- 2: (100 – 499)
- 3: (500 - 999)
- 4: (1,000 – 4,999)
- 5: (5,000+)
Some of the top moderators will pass well past these thresholds on certain high-volume sites (such as MSDN) and will need to be adjusted upwards. This should be done immediately upon rollout of the reputation system. Changing the thresholds after the reputation system has been rolled out will cause problems in the forums community.