What's a good minimum GP amount?

Warning: Theorycraft inside.

Moderators: Fridmarr, Worldie, Aergis, theckhd

What's a good minimum GP amount?

Postby DisRuptive1 » Thu Apr 23, 2015 2:46 pm

For those that use EPGP to distribute loot to your guild, what minimum GP amount do you use? I'm considering using the average cost of a BrF item doubled but I'm not sure if that will be too big or not.
User avatar
DisRuptive1
 
Posts: 210
Joined: Sat May 17, 2008 12:50 pm

Re: What's a good minimum GP amount?

Postby Kelerei » Fri Apr 24, 2015 12:57 am

We use something small (100 GP), so that it doesn't affect decay too much. Min GP is taken into consideration whenever decay is used, so if it's set too high, people can pretty much be reset back to min GP instantly.

If you want to use average cost, the value is 1000 GP (the base cost of an ilvl 680 item, before things like slot modifiers, actual ilvl, bonus sockets and tertiary stats are taken into account).
Kelerei
 
Posts: 128
Joined: Wed Nov 14, 2012 12:21 am
Location: Cape Town, South Africa

Re: What's a good minimum GP amount?

Postby lythac » Fri Apr 24, 2015 3:07 am

We use 500 GP and award 500 EP on time raid bonus and 2000 EP at end of raid. 3 raids a week. 10% decay.

Found if GP is set too low then new members have insane prio (once promoted to raider) and have their pick of items
Ryshad / Lythac of <Heretic> Nagrand-EU
User avatar
lythac
Moderator
 
Posts: 2081
Joined: Wed Sep 24, 2008 8:10 am

Re: What's a good minimum GP amount?

Postby DisRuptive1 » Fri Apr 24, 2015 5:11 pm

Kelerei wrote:We use something small (100 GP), so that it doesn't affect decay too much.


It's my understanding that the minimum GP doesn't actually affect the actual GP values. It's only ever used in calculating PR if someone's actual GP falls below the minimum. Once the person gets an item and gets their actual GP increased above the minimum, then their actual GP value is used for calculations of PR.

I've been considering using 3,175 for my guild as it's the average cost of 2 Mythic Blackrock Foundry items. EP awards would then be 20% of this amount awarded every 15 or 30 minutes of raiding (still working out some of the kinks).
User avatar
DisRuptive1
 
Posts: 210
Joined: Sat May 17, 2008 12:50 pm

Re: What's a good minimum GP amount?

Postby Yelena » Sun Apr 26, 2015 2:30 am

This is a topic more suited for the General Discussion forum, as loot systems really don't have a place in theorycrafting discussion.

That said, the question itself doesn't make a whole lot of sense; are you referring to MIN_EP or BASE_GP?

BASE_GP doesn't need to be a high value, the primary function is largely to prevent someone from having an infinite priority (or PR) within the system. This is largely aimed at new recruits or long-time inactive members, but it also does apply if you fully reset the system. BASE_GP is added to RealGP when determining PR, but the base value itself is immune to decay. Ultimately it comes down to how much do you want to artificially inflate PR values. My guild uses a value of 100; there isn't really a need for it to be higher, especially if you set the decay high enough to deter hoarding in the first place.

MIN_EP is essentially a threshold at which a person's effective PR actually matters. In other words, it's an attendance/recruit check; if someone is below the MIN_EP threshold, their calculated PR doesn't make them eligible for loot over someone with a lower PR (assuming their EP is above MIN_EP). Guilds handle this setting in a variety of ways; my own guild sets MIN_EP based on an average trial period, basically the decayed amount of EP a person would have earned over the course of their trial.

Generally speaking, BASE_GP and MIN_EP are largely set and forget.

Where many EPGP systems fail to be effective largely falls on an interaction between awarding too much EP and having the decay set too low. Awarding too much EP results in GP changes having little effect at shifting someone's PR. Too low of a decay (a common issue, usually resulting from a lack of understanding how exponential decay works) encourages hoarding. The two issues combined often puts newer/returning members in a position where it takes quite a long time for their PR to raise to a point where it's "competitive." Intentionally configuring the system to be more volatile (smaller awards & higher decay) alleviates this.
Valleri - Frostwolf
Yelena
 
Posts: 137
Joined: Sat Jun 27, 2009 4:54 am
Location: Behind the Eight Ball

Re: What's a good minimum GP amount?

Postby Kelerei » Tue Apr 28, 2015 2:15 am

DisRuptive1 wrote:It's my understanding that the minimum GP doesn't actually affect the actual GP values. It's only ever used in calculating PR if someone's actual GP falls below the minimum. Once the person gets an item and gets their actual GP increased above the minimum, then their actual GP value is used for calculations of PR.


Nope, it affects PR and decay. See this function:

Code: Select all
function EPGP:GetEPGP(name)
  local main = main_data[name]
  if main then
    name = main
  end
  if ep_data[name] then
    return ep_data[name], gp_data[name] + self.db.profile.base_gp, main
  end
end


This is called pretty much everywhere: calculating PR, the decay function, etc. Notice that base GP is explicitly included in the GP return value.

To illustrate that base GP does affect PR, here's the PR comparator, showing that it simply uses the return values from the aforementioned GetEPGP() function:

Code: Select all
local comparators = {
  [... other comparators here ...]
  PR = function(a, b)
         local a_ep, a_gp = EPGP:GetEPGP(a)
         local b_ep, b_gp = EPGP:GetEPGP(b)

         local a_qualifies = a_ep >= EPGP.db.profile.min_ep
         local b_qualifies = b_ep >= EPGP.db.profile.min_ep

         if a_qualifies == b_qualifies then
           return a_ep/a_gp > b_ep/b_gp
         else
           return a_qualifies
         end
       end,
}


Decay probably requires more explanation. Base GP is used to calculate how much GP to deduct (to keep PR intact), but this will be revised if this causes actual GP to drop below min GP.

Here's the relevant functions:

Code: Select all
function EPGP:DecayEPGP()
  assert(EPGP:CanDecayEPGP())

  local decay = self.db.profile.decay_p  * 0.01
  local reason = string.format("Decay %d%%", self.db.profile.decay_p)
  for name,_ in pairs(ep_data) do
    local ep, gp, main = self:GetEPGP(name)
    assert(main == nil, "Corrupt alt data!")
    local decay_ep = math.ceil(ep * decay)
    local decay_gp = math.ceil(gp * decay)
    decay_ep, decay_gp = AddEPGP(name, -decay_ep, -decay_gp)
    if decay_ep ~= 0 then
      callbacks:Fire("EPAward", name, reason, decay_ep, true)
    end
    if decay_gp ~= 0 then
      callbacks:Fire("GPAward", name, reason, decay_gp, true)
    end
  end
  callbacks:Fire("Decay", self.db.profile.decay_p)
end

local function AddEPGP(name, ep, gp)
  local total_ep = ep_data[name]
  local total_gp = gp_data[name]
  assert(total_ep ~= nil and total_gp ~=nil,
         string.format("%s is not a main!", tostring(name)))

  -- Compute the actual amounts we can add/subtract.
  if (total_ep + ep) < 0 then
    ep = -total_ep
  end
  if (total_gp + gp) < 0 then
    gp = -total_gp
  end

  GS:SetNote(name, EncodeNote(total_ep + ep,
                              total_gp + gp + EPGP.db.profile.base_gp))
  return ep, gp
end


Some use cases, assuming base GP set to 100 and decay at 20%:

  • If actual GP is at 1,000 (real GP: 900, base GP, 100), 20% of 1,000 (i.e. 800 GP) will be decayed.
  • If actual GP is at 120 (real GP: 20, base GP: 100), DecayEPGP() will calculate 20% of 120 to be decayed (24 GP), but AddEPGP() will detect that no more than 20 GP can be deducted, and only 20 GP will therefore be decayed. (The net effect in this specific case that EP will decay by 20% but GP will decay by 16.67%, leading to a PR reduction. Another reason not to "hoard".)

Yelena wrote:This is a topic more suited for the General Discussion forum, as loot systems really don't have a place in theorycrafting discussion.


Actually, it's more suited for the EPGP mailing list. :)
Kelerei
 
Posts: 128
Joined: Wed Nov 14, 2012 12:21 am
Location: Cape Town, South Africa


Return to Advanced Theorycraft and Calculations

Who is online

Users browsing this forum: No registered users and 1 guest

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 380 on Tue Oct 14, 2008 6:28 pm

Users browsing this forum: No registered users and 1 guest