User score settings resources
User score is a gamification feature which, when enabled, awards users with points for performing certain actions. Upon reaching a certain number of points, users are promoted to a higher level.
User score calculation
The minimal score for reaching a level is calculated with the formula below, which reflects quadratic growth. The coefficient c
is set to 100.
There are infinite levels. The first level is level 1, with a minimal score of 0.
With a coefficient of 100 (the default value) the first five thresholds are distributed like this:
Level 1: | 0 points |
---|---|
Level 2: | 100 points |
Level 3: | 300 points |
Level 4: | 600 points |
Level 5: | 1000 points |
Points are awarded for the following actions:
- Publishing a question: 300 points
- Publishing a solution to another user's question: 500 points
- Converting a Comment to another user's question to a solution: 500 points
- Being recommended as an expert for a question: 50 points
- Writing a new Comment: 20 points
- Receiving an upvote for a comment: 10 points
- Viewing a Question for the first time: 5 points
- Receiving a rating for a solution they have published
- Rating 1: 0 points
- Rating 2: 0 points
- Rating 3: 30 points
- Rating 4: 40 points
- Rating 5: 50 points
Points received for actions that are later on deleted (e.g. question, solution, change of rating) are removed again.
A user can never level down. If a uses loses more points than he has in the current level, then his score will be set to the minimal number of points in the current level.
A user's score point are returned by the API and if the gamification is enabled in settings. If not enabled, the user fields score\_points
and score\_level
will contain the value null
.
Important: Changing the start time will not change user scores aggregated in the past.
Get user score
GET /settings/user-score
Response
{
"enabled": false,
"frontend_enabled": true,
"start_date": null
}
Update user score
PUT /settings/user-score
Note:
If a parameter is omitted in the request, the setting is ignored and its value remains unchanged. If a parameter is set to null
, the default behaviour for this setting applies.
Parameter | Type | Default | Description |
---|---|---|---|
enabled |
boolean |
false | Whether or not user scores are enabled (automatically aggregating user score data). |
frontend_enabled |
boolean |
true | Shows the user score in the user interface if activated. Deactivating it will continue counting score points but hide it from a user interface. |
start_date |
date |
- | Start date for user score calculation (no re-calculation for created data prior to this start_date!). |
Response
{
"enabled": false,
"frontend_enabled": true,
"start_date": null
}