This project is read-only.

trinket average up time?

Topics: Rawr.Base
Apr 15, 2009 at 11:07 AM
With trinket procs not being assessed correctly for now, I want to modify Grim Toll for my Cat druid model to reflect its average proc benefit.

It procs 612 ArP for 10s, with a 15% proc rate and a 45s internal CD.

The question is: how to compute the long run up time of this proc?

More generally, how to compute the average long run up time of a proc a duration t, with procrate p and internal CD c?

My approach (I use Grim Toll numbers to make it more concrete). I'd appreciate some feedback!

* upper bound: if it procs right after CD expiration, it procs every 45s for 10s, for an uptime of 10s per 45s. uptime: 10/45 ≈ 22.2%.
This assumes the CD starts at the beginning of the proc, and not at the end. Is this correct?

* expected time to proc, when off CD:
let N+1 be the number of strikes needed for the trinket to proc.
(N is the number of strikes which failed to proc the trinket before the proc).
N has a geometric distribution : P[N=k] = (1-p)^k * p
The expected value of N is E[N] = (1-p)/p  = .85/.15 ≈ 5.67
So the trinket can be expected to proc after 5.67+1=6.67 blows.

Now what is the average time between two strikes? For us cats, it's between 1s (auto attacks), and 1.5s (yellow damage), but it's affected by our haste, as well as by our miss rate. Therefore, we need to take into consideration our specific stats. I'll ignore my miss rate on the basis that it's not significant at less than 10% (this assumption is questionable).

I could not work out a reliable way to estimate the proportion of white attacks vs yellow attacks. I'll suppose it's about 50/50. Is there any better estimate? With this estimate, the average time between two attacks is 1.25 pre-haste.
Rawr tells me my toon has an attack speed of 0.755s. That's a haste factor of 0.755. The average time between two attacks post-haste is therefore 1.25*.755 ≈ 0.94s.

Finally the expected time for the trinket to proc when off CD is 6.67*.94 ≈ 6.3s.

Taking the CD into account, I expect the trinket to proc every 45+6.3 = 51.3s.

The average uptime should thus be 10s/51.3s ≈ 19.49%.
(With the decimal part probably not being significant at all.).

And I will assign an average ArP for Grim Toll of 612*19.49 = 119.

Is this correct? Is this realistic?

Note: this ignores the fact that for ArP, it's better to have a lot for a little while, than some for a long time. I don't know how to take that into account.

Apr 15, 2009 at 11:58 AM
Edited Apr 15, 2009 at 12:02 PM
You are basically right. Max uptime is obviously 10 seconds every 45 seconds, although that is highly unrealistic. Most of the time it will have Proc'ed within a minute (10 seconds every 60). So a 51.3 second value is not wrong. However that assumes a 100% "On the Boss" time. (Like Patchwerk). Some models may be even more complex and/or simpler. I think most models simply model all proc trinkets the same way in order to balance them fairly against each other, while some models may do more complex calcs.

Further on, this assumes that a fight lasts a multiple of 51.3 seconds. If we take an example in a 1 minute Patchwerk fight, you will see this trinket will proc atleast twice (barring bad luck) during that fight, so you would really have 20/60 uptime on it.

But to answer your question, yes, that value is realistic.

(I hope this answer helps people understand we take procs seriously ;)
Apr 15, 2009 at 4:12 PM
Edited Apr 15, 2009 at 4:13 PM
haha! Glad my basic reasoning was on target.

Yes I assume a 100% "On the Boss" time. It doesn't decrease the trinket value for several reasons:
- all items become totally worthless when a cat is not "On the Boss" (a systematic 100% reduction in dps). There is no reason to treat a trinket differently
- bad luck is when you need to leave the boss during the proc. On the long run, this will happen exactly with the same % as the time spent "Off the Boss".
- 45s out of 51.3s are spent waiting for the CD to expire. That's 88% of the time. This means that most of the time spent "Off the Boss", will be during this time waiting for the CD to expire. This is actually increases the relative value of the trinket, as a larger % of actual fight will be on proc time.

Taking the fight length into account was out of my scope as I wanted to assess the average proc value in the long run.

However, you mentioning it leaves me thinking that basically assuming an infinite length fight actually *undervalues* the trinket, simply because the proc is so heavily skewed towards the beginning of the fight. I modelized it. The results are in my next post.
Apr 15, 2009 at 4:18 PM
Yup, you got it all right.
- Not being 100% on the boss *improves* proc based trinket values. (Except in a few cases where it may proc just as you lose contact)
- In the long run, all trinkets should be fairly equal anyway, so finding the best one works just fine for that.
- Infinite length fights may undervalue trinkets. However, If a trinket starts off bad, and doesnt proc until 20 seconds into the fight, thats 20 seconds lost forever. If trinket keeps on proccing 20 seconds longer than average next time and next time, you see it adds up.

However, in Rawr we try to compare items. Their best/worst impact on DPS is just too hard to get right without a simulation.
Apr 15, 2009 at 4:50 PM
Edited Apr 15, 2009 at 4:52 PM
So here is my analysis to take into account the fight duration for assessing a proc value.

My previous post shows that a proc is on average a periodic, rectangular function, of period T. In my example, T=51.3s.
Each period can be split into three stages:

1- the "waiting for proc" stage. I call it the phase of the function. In my example, phase = 6.3s.
2- the proc stage, with duration set by the trinket. In my example, duration = 10s.
3- the "cool off" period, waiting for the CD to expire. coolOff = CD-duration. In my example, coolOff = 35s.

Of course the sum of all three stages amount to the period: period = phase+duration+coolOff.

The proc usefulness is that rectangular function of the fight duration t. It has value 0 in stages 1 and 3, and value V0 during stages 2. In my example, V0=612ArP. I graphed that function in orange.

I am now using a differential approach: for each (fraction of) second of the fight, I will add the usefulness of the proc, to get the total contribution of the proc for the entire fight. In maths terms, I integrate the usefulness function, to get the proc contribution function.

The contribution function is a piecemeal growing affine function, flat during stages 1 and 3, and slanted during stages 2. I graphed it in green.

Now what we are interested in for comparison purposes, is not the contribution function, but the average value per unit of time: value = contribution/t, as a function of the fight duration t. I graphed it in blue. It can be observed that the value of the proc swings wildly with fight duration for short durations, but dampens down to converge towards the average value computed earlier for longer fights.

It will now take me a little while to clean up and post my graph. bear with me, I'll update this post when done.
Apr 15, 2009 at 5:17 PM
Ok, my graph is posted at

The pink line is the average value computed at the top of this topic. It, and the blue time-dependent function, have been scaled by a factor of 10 for a better visibility.

For those interested, the full model is available at It's a Mac grapher document.

Apr 15, 2009 at 5:29 PM
So do you feel this answers your question? :P
Apr 15, 2009 at 5:31 PM
Finally: is all this useful?

I think so: for fights around 5 mins, it shows the trinket proc value to be more or less 10% better than the static analysis would suggest. For Grim Toll, I upped its value to 129 from 119.

Would it be possible to also model fights where some time is spent "off the boss"? I thinks so. But I'm not going to do it just yet :-)

Apr 15, 2009 at 5:33 PM
I found all this quite fun actually. What a pandora's box!