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
}