• Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Reputation

Based on the reps I’ve received so far and assuming a linear relationship exists in the form:
RepPoints = p * postCount + a * age + r * reputation + c​

Where p is the reppers current post count, age is months since reppers join date, r is the reppers current reputation and c is just a constant.

The data to play with is as follows:

14 = 9709p + 36a + 171r + c
17 = 9207p + 63a + (190r) + c
6 = 2781 + 30a + (150r) + c​

The figures in brackets are guesses as to the reppers current reputation.

Ignoring c and solving for the rest gives:
[1] repPoints = postCount/630 + age/7.3 – reputation/149
Which isn’t right, as a reppers reputation shouldn’t reduce the rep points awarded.​


Assuming current reputation has minimal affect and the variables are just postcount and age:
[2] repPoints = postCount/936 + age/9.9​

Assuming time on the board has minimal affect and the variables are just postcount and reputation:
[3] repPoints = postCount/1000 + reputation/50​


I’d go with the last [3] until there's more data. I had expected time on the board to have been in there though.
 
Last edited: 12:03
Here's a pseudocode representation of the function that calculates points when a user gives reputation:

Code:
calculate_reputation_points(system, user, is_giving_negative_reputation) {
    if (user.postcount < system.minimum_postcount OR user.reputation < system.minimum_reputation) {
        return 0;
    }
    points = 1;
    points = points + integer_value(user.postcount / system.postcount_power);
    points = points + integer_value(user.reputation / system.reputation_power);
    points = points + integer_value(user.days_since_joining / system.length_of_service_power);
    if (is_giving_negative_reputation) {
        points = integer_value(points / 2);
        if (points < 1) {
            points = 1;
        }
        points = -points;
    }
    return points;
}
 
Here's a pseudocode representation of the function that calculates points when a user gives reputation:

Code:
calculate_reputation_points(system, user, is_giving_negative_reputation) {
    if (user.postcount < system.minimum_postcount OR user.reputation < system.minimum_reputation) {
        return 0;
    }
    points = 1;
    points = points + integer_value(user.postcount / system.postcount_power);
    points = points + integer_value(user.reputation / system.reputation_power);
    points = points + integer_value(user.days_since_joining / system.length_of_service_power);
    if (is_giving_negative_reputation) {
        points = integer_value(points / 2);
        if (points < 1) {
            points = 1;
        }
        points = -points;
    }
    return points;
}

Well I'm glad we nailed that one!! :throw:
 
Here's a pseudocode representation of the function that calculates points when a user gives reputation:

Code:
calculate_reputation_points(system, user, is_giving_negative_reputation) {
    if (user.postcount < system.minimum_postcount OR user.reputation < system.minimum_reputation) {
        return 0;
    }
    points = 1;
    points = points + integer_value(user.postcount / system.postcount_power);
    points = points + integer_value(user.reputation / system.reputation_power);
    points = points + integer_value(user.days_since_joining / system.length_of_service_power);
    if (is_giving_negative_reputation) {
        points = integer_value(points / 2);
        if (points < 1) {
            points = 1;
        }
        points = -points;
    }
    return points;
}

Cool. What are the values of system.postcount_power, system.reputation_power and system.length_of_service_power?
 
Cool. What are the values of system.postcount_power, system.reputation_power and system.length_of_service_power?

The defaults are 100 days = 1 point, 500 posts = 1 point, and 100 rep = 1 point, but they're configurable so admin could have changed them.
 
The defaults are 100 days = 1 point, 500 posts = 1 point, and 100 rep = 1 point, but they're configurable so admin could have changed them.

Yeah, they've been changed.

Algebraically:
repPoints = postCount / 500 + reputation / 100 + age(in days) / 100 + 1 [all integerised]​

A postcount of 9726 (me) alone would give 9726/500 = 19 points and I gave out 14 earlier.
 

Advertisers

Back
Top