Announcement

Collapse
No announcement yet.

What drives the ''Reputation'' Meter Lights

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    I've seen those settings and the reputation power isn't generous I don't think. One point of power for 100 days of being registered for example. I think the problem is that some people had such high levels of reputation power before the upgrade and will 'like' very freely but used to only actually proactively give reputation for unusually significant posts. A 'like' is a far, far more freely given thing. Honestly I've never seen any green pips since we upgraded. Not even with the newly registered members. I've just looked and my current rep giving power for example is 42,949,806. So unless the pips are set at really high levels everyone is getting a couple of likes and being at max rep instantly. :s

    This is why I've asked over in the request I created about controlling the pips' point levels. We don't really want to purge the reputation function and set everyone back to zero I don't think, which I realise could be another option.

    Comment


    • #17
      Yes, the problem with current system is that there is no limit on the amount of reputation power a user can accumulate, as well as the fact that the gauge has hard coded values for the pips. I recently made some changes to my Forum to help restore the usefulness of this display.

      Reputation power is dynamically affected by the AdminCP->.Options->User Reputation Options. A user's reputation is the sum of the reputation given to that user. That data is in the reputation table. So, in order to restore a semblance of functionality to the meter, you must alter both.

      The first thing I did was to run a query on the reputation table that reduced the amount of reputation given for each instance to a maximum. In my case I limited this value to two reputation points. After running the query it was necessary to rebuild the user reputations using AdminCP->Maintenance->General Update Tools.

      This cancelled out the obscenely large amount of reputation given for each Like as result of distorted reputation power and moved the accumulated reputation for most of my user's to within the range of the meter. This reduction in reputation had the side effect of reducing the reputation power for each user, as a user's reputation affects his reputation power. I made additional changes to the User Reputation Options settings to further reduce reputation power. In my case, my goal was to reduce the current maximum reputation power of any user to a value of 5 points or less. I increased the various factors empirically to achieve this goal.

      While it is necessary to alter the values in the reputation table to correct for past excesses, it is not necessary to do so to prevent this from continuing to happen. You just need to adjust those Reputation Options to lower the reputation power of all users.
      Last edited by OrganForum; Tue 6 Oct '20, 8:49am.
      VB 5.6.4
      PHP 7.4
      MySQL 5.7.24

      Comment


      • Wayne Luke
        Wayne Luke commented
        Editing a comment
        You can reduce the total reputation a user has in the AdminCP under Maintenance -> General Update Tools. Just give a negative base value in the Update Reputation form. If the number is too large, it may give users a negative reputation though.

      • Rosely
        Rosely commented
        Editing a comment
        I think we'd end up having to do it individually for everyone to get it right and there are too many. If we can't rebuild the Extended Reputation as was we might be better off purging the existing data and resetting everyone again.

      • OrganForum
        OrganForum commented
        Editing a comment
        Correct, tested, and confirmed. If the bias applied in the rebuild reputation process is too great, many users will wind up with negative reputations. Practically speaking, this means that using a negative bias greater than the initial reputation points assigned to new users should not be exceeded unless you want users with that initial value to go negative.

    • #18
      If you make the Reputation Option numbers lower than the default, then the reputation power is going to increase quickly. For example, if you change the registration period to 100 days, then someone who has been registered 10 years will give 36 reputation points for every like based on that alone. Versus 10 points with the default of a year.

      Even the defaults may be too generous. I don't think that running a board for decades was ever factored into things when Reputation was created. If the user above has 20,000 posts then that is another 20 reputation points per like. If they have 20,000 reputation that is 200 reputation per like alone. So one person can get hundreds of reputation per like. I'd actually suggest increasing the 'Reputation Point Factor' to 1000 or more on active sites.

      Here is the function that determines Reputation Power:

      Code:
      /**
      * Fetch Reputation Power of an user
      *
      * @param mixed userinfo record from user api fetchuserinfo()
      * @return int|mixed|string Reputation Power
      */
      public function fetchReppower($userinfo)
      {
      $vboptions = vB::getDatastore()->getValue('options');
      
      $usercontext = &vB::getUserContext($userinfo['userid']);
      
      if (!$usercontext->hasPermission('genericpermissions', 'canuserep'))
      {
      $reppower = 0;
      }
      else if ($usercontext->hasAdminPermission('cancontrolpanel') AND $vboptions['adminpower'])
      {
      $reppower = $vboptions['adminpower'];
      }
      else if (($userinfo['posts'] < $vboptions['minreputationpost']) OR ($userinfo['reputation'] < $vboptions['minreputationcount']))
      {
      $reppower = 0;
      }
      else
      {
      $reppower = 1;
      
      if ($vboptions['pcpower'])
      {
      $reppower += intval($userinfo['posts'] / $vboptions['pcpower']);
      }
      if ($vboptions['kppower'])
      {
      $reppower += intval($userinfo['reputation'] / $vboptions['kppower']);
      }
      if ($vboptions['rdpower'])
      {
      $reppower += intval(intval((vB::getRequest()->getTimeNow() - $userinfo['joindate']) / 86400) / $vboptions['rdpower']);
      }
      }
      
      return $reppower;
      }
      There are a couple of things that I can take away from this. First, I think that $reppower should always start at 0. It currently starts at 1 for users with the ability to give rep. Second, I think there should be a coefficient in the options to adjust the total amount of rep power. For instance, if the numbers are getting too big, then the Admin should be able to adjust this coefficient to lower the amount of power across the board. It can default to 1 but you can adjust to .60 to lower it, as an example. Finally, I think this should be stored as a field in the user table and only updated every 24 hours.
      Translations provided by Google.

      Wayne Luke
      The Rabid Badger - a vBulletin Cloud demonstration site.
      vBulletin 5 API

      Comment


      • #19
        Our Reputation Options are that you gain 1pt of power every 120 days, every 100 posts and for every 50pts of reputation. Which wouldn't be very high numbers at all if users didn't already have reps in the 100s of 1000s. So however regularly it calculates it, that rep power above of 42,949,806 would result in rep altering power of 858,996 just from the pts of reputation alone (the actual reputation is much higher). It takes it all off the charts. The damage in going from the switch from the Extended Reputation that was previously in place to this system based on likes I would be surprised if it is recoverable to be honest. Such huge amounts have been awarded for so little for around 10 months now. Far too many rep stats are astronomical. :s

        Comment


        • OrganForum
          OrganForum commented
          Editing a comment
          Rosely Changing the User Reputation Options does not require a User Reputation Rebuild. All users' reputation power will automatically be adjusted to the new settings. There is no extra drain on the server when making this change

        • Rosely
          Rosely commented
          Editing a comment
          That's interesting OrganForum, so they are effectively recalculated automatically?

        • OrganForum
          OrganForum commented
          Editing a comment
          Yes. See the code Wayne posted in #18

      • #20
        Since this is being beaten like the dead horse it is ...

        Reputation is useless. It doesn't mean anything. You can't look at it and determine why someone has or doesn't have pips. You can't tell if the reputation is legitimate due to good content or if it's just users repping each other because reasons! Extending it just exacerbates the problem. It needs to make sense. New members especially need to know and understand why a user has reputation. Should they copy what that user is doing? Or is that user just a long-time jerk who has a ton of negative reputation which can't even be seen with this system who simply hasn't been banned yet? Should a new user take their advice or not?

        This crap is like giving lollipops to children. Everyone gets a lollipop but not everyone gets the same color. Why? Because it shuts them up for a few minutes. Probably the same reason so many forums give out useless reputation points.

        A good reputation system would have a purpose. It would be useable in rank or usergroup promotions based upon specific criteria, not just total reputation points. You know, five good articles repped by the administrator would promote a user to Author, for example. Five good replies to questions by new users might promote a user to Trusted Advisor with enough reputation from administrators or moderators. Reputation points might be useable in a store. Or for special avatars or signatures or having their content featured or whatever. Users repping each other is useless. The whole system needs to be redone and making it harder to max out doesn't fix anything. Or mean anything.

        Comment


        • OrganForum
          OrganForum commented
          Editing a comment
          Agree that for the reputation meter to be useful, people need to understand its purpose, but that's true of any interface item and not really an issue with the promotion system itself. I believe most of my Forum members understand the purpose and find the indicators useful.

          Reputation points are already a factor in Promotions and the ability to leave reputation is definable by usergroup and the thresholds defined in the User Reputation options, so even currently, reputation points are useful in defining Forum privileges despite the indicator problem

      • #21
        OrganForum The problem with trying to alter the rep amounts already given is that it includes 10 months of people getting huge amounts of rep for each like in their current rep figures. Speaking personally of the perhaps 100s of reps I have given in that time by 'liking' posts, I might have awarded rep proactively to only one or two of those posts. So the old system and stats are drowned now within what has happened since. And the difference between the newer and older members is too huge. The negative rep you'd throw others into to try to reduce those which are so much higher would be unrecoverable. The rep people currently have just doesn't reflect that original focus on reputation being given for meaningful contributions now. So even if all reps were reduced down somehow, they are already distorted.

        In Omnibus In this way I can see the point that you are making. But rep is now given totally freely with the relaxed idea of 'likes' when before it was at least something people only did when they wanted to acknowledge something specific and would comment on why they were giving rep. Yes it is still greatly subjective and a system that awards activity of a measurable type would be more objective but rep coming from mere likes is even less deliberate and meaningful than it used to be. As OrganForum says, most of our members knew that giving rep was something you didn't do often.

        Comment


        • #22
          Originally posted by Rosely View Post
          OrganForum The problem with trying to alter the rep amounts already given is that it includes 10 months of people getting huge amounts of rep for each like in their current rep figures. Speaking personally of the perhaps 100s of reps I have given in that time by 'liking' posts, ....
          The rep people currently have just doesn't reflect that original focus on reputation being given for meaningful contributions now. So even if all reps were reduced down somehow, they are already distorted.
          Yes, that's true, but you can't unbreak an egg. The best you can do is clean up the mess. You can delete all the reputation data accumulated so far and start everyone back at zero, or you can modify the existing data to minimize the distortion.

          I chose to do the latter by modifying the data to nullify the effect of the distorted reputation power. This will impact those whose reputations have benefitted unfairly from the bloated reputation values the most, while leaving those who haven't essentially untouched. That's the best you can do at this point.
          VB 5.6.4
          PHP 7.4
          MySQL 5.7.24

          Comment


          • #23
            Originally posted by OrganForum View Post
            Reputation power is dynamically affected by the AdminCP->.Options->User Reputation Options. A user's reputation is the sum of the reputation given to that user. That data is in the reputation table. So, in order to restore a semblance of functionality to the meter, you must alter both.

            The first thing I did was to run a query on the reputation table that reduced the amount of reputation given for each instance to a maximum. In my case I limited this value to two reputation points. After running the query it was necessary to rebuild the user reputations using AdminCP->Maintenance->General Update Tools.

            This cancelled out the obscenely large amount of reputation given for each Like as result of distorted reputation power and moved the accumulated reputation for most of my user's to within the range of the meter. This reduction in reputation had the side effect of reducing the reputation power for each user, as a user's reputation affects his reputation power. I made additional changes to the User Reputation Options settings to further reduce reputation power. In my case, my goal was to reduce the current maximum reputation power of any user to a value of 5 points or less. I increased the various factors empirically to achieve this goal.

            While it is necessary to alter the values in the reputation table to correct for past excesses, it is not necessary to do so to prevent this from continuing to happen. You just need to adjust those Reputation Options to lower the reputation power of all users.
            I have looked at this and done the adjustments suggested to the Reputation Options, but I do need to pull down the reputation numbers from what has been given historically. I assume this is what the query on the reputation table and rebuild through the maintenance will do.

            The query function isn't something I can access though. The site admin has asked to see what line in which PHP file they will need to add my usernumber to change that? Is this something possible to change Wayne Luke ? Also, we're likely to migrate to the Cloud hosting soon, will these kinds of changes be lost in the transfer?

            Comment


            • #24
              Originally posted by Rosely View Post
              The query function isn't something I can access though. The site admin has asked to see what line in which PHP file they will need to add my usernumber to change that? Is this something possible to change Wayne Luke ? Also, we're likely to migrate to the Cloud hosting soon, will these kinds of changes be lost in the transfer?
              You need the "Can Use All Maintenance Tools" permission under Usergroups -> Administrator Permissions.

              The data will not be lost. However, administrator permissions will be lost if you move to cloud. The one above is one of the permissions that will be lost.
              Translations provided by Google.

              Wayne Luke
              The Rabid Badger - a vBulletin Cloud demonstration site.
              vBulletin 5 API

              Comment


              • Wayne Luke
                Wayne Luke commented
                Editing a comment
                You would have to do so before you migrate. You will not be able to run queries directly against the database on vBulletin Cloud.

              • Rosely
                Rosely commented
                Editing a comment
                Okay, thank you. Wayne Luke is there anywhere that summarises what Admin CP settings/tools we will lose access to by changing to Cloud?
                Last edited by Rosely; Sat 12 Dec '20, 2:16am.

              • Wayne Luke
                Wayne Luke commented
                Editing a comment
                I don't have a full list. You lose access to change server settings, database access, attachment storage settings, and editing non-text templates.

            • #25
              Originally posted by OrganForum View Post
              The first thing I did was to run a query on the reputation table that reduced the amount of reputation given for each instance to a maximum. In my case I limited this value to two reputation points. After running the query it was necessary to rebuild the user reputations using AdminCP->Maintenance->General Update Tools.

              This cancelled out the obscenely large amount of reputation given for each Like as result of distorted reputation power and moved the accumulated reputation for most of my user's to within the range of the meter.
              OrganForum I have been trying to run through the process you suggest with our tech admin but we aren't sure what you mean by running a query on the reputation table. I've changed the User Reputation Options and I know where the reputation rebuild function is in the General Update Tools, but we aren't sure what the query is that will reduce the historical reputation given to bring down the distorted reputations. Can you describe where and what this functions is more?

              Comment


              • #26
                Here is the query I ran
                Code:
                UPDATE vb_reputation SET reputation = LEAST(2,reputation)
                This resets each and every entry in the reputation table to a maximum of 2 points. After running the query, you'll need to run the reputation rebuild in General Update. The maximum value of 2 was determined empirically for my site by running the query with decreasing values (I started with 10 to be safe) until most reputations fell within the range of the meter. Note that even after the adjustment, the reputation of power users still far exceeds the range of the meter, so your goal should not be to attempt to get every user in range as it might not be possible to do so.

                You should take the Forum offline when running this query, first backing up the existing table. There is always a risk involved in running queries against a production database and its best to use a development site while experimenting. Regardless, if you run this query, you do so ENTIRELY AT YOUR OWN RISK.
                VB 5.6.4
                PHP 7.4
                MySQL 5.7.24

                Comment


                • Rosely
                  Rosely commented
                  Editing a comment
                  Thank you, I'll pass this on.

              • #27
                Originally posted by 720 View Post
                As mentioned above, I removed the pips altogether with the code provided by Carrfixr , and set up user ranks that were partly set manually, partly based on rep.

                However, what I'd like is something like the third-party module I used with vB4, but which doesn't work anymore - you could set it so that only likes on specific topics (e.g. serious articles, not jokes) gave a boost in rep. Additionally something like what Wayne Luke says in post #8.
                I use this old thread since my new question is related: Is it possible to display the raw reputation number instead of the pips in the postbit? Alternatively, to display the reputation-altering power?

                Thanks.

                Comment


                • #28
                  The value of total reputation is not passed to the template that displays the user information. Instead it uses a "Reputation Level" which is based on the settings in the User Reputation Manager in the AdminCP. You may be able to do something like {vb:var userInfo.reputation} in the conversation_userinfo template. I haven't tested it and the value may not be exposed in the $userInfo array. This display mechanism is similar to how reputation worked in previous versions.

                  Reputation Power is actually broken in the system. There is an option to control this but it is not operational because there is no code in the templates that reference it.
                  Last edited by Wayne Luke; Fri 29 Jan '21, 9:27am.
                  Translations provided by Google.

                  Wayne Luke
                  The Rabid Badger - a vBulletin Cloud demonstration site.
                  vBulletin 5 API

                  Comment

                  Related Topics

                  Collapse

                  Working...
                  X