The top timer indicates estimated time till execute range (configurable - 20%, 35%, etc) is reached, and the bottom timer indicates estimated time till mob death.
What is it?
TimeToExecute is an addon that aims to estimate how long it will be before a boss reaches execute range, and additionally how long before it dies. This was originally aimed at mages with Molten Fury as a tool to assist in deciding when to use addons, however it would also have applications for any of the various other classes that receive a damage bonus against targets below a certain health percentage.
Unlike other addons (the only similar one I could find being TimeToDie), TTE includes an execute range timer, and has a bit more maths involved in producing its estimates.
How does it work?
Using UNIT_HEALTH events, generated a maximum of roughly 3-4 times per second, TTE builds up a log of hitpoint values for the current target over time. Picture it like a point graph of health dropping over time. Using a simplified linear regression algorithm, TTE performs statistical analysis on all the points to determine a "line of best fit" (and hence an approximate rate at which the boss is dying), and extrapolates times for execute range and death.
The algorithm is one of the most simplistic possible, as the performance hit to move to a more accurate method would be non-negligible. As it stands, there is no noticeable reduction in framerate, even with many data points. However, even this simplistic algorithm produces very satisfactory results in practice.
How is it unique?
Because of the way it determines its estimates (ie. based on the last X data points), the length of recent data points that it keeps can kept constant (e.g. the last 20 seconds of combat), and therefore the estimate will cope with changes in DPS, and constantly readjust its estimates based on recent activity. This is arguably more useful than a straight extrapolation between starting health and current health (which is the method TimeToDie uses).
In layman's terms, this means that it will be constantly giving you the best possible estimation, based on the current rate at which your raid is killing the boss, a value which might fluctuate over time.
The following image demonstrates this distinction visually:
The grey markers (and the first marker) indicate health points that TimeToExecute is not taking into consideration for its estimation. In this case TTE is taking the most recent 11 data points into consideration - this is for the sake of demonstration only - and configurable in the addon settings. The blue line indicates visually how the TTE estimate is found, and the red line the TimeToDie estimate. The "current time" is indicated. As you can see, the resulting estimates are different, and arguably TTE is more accurate. It should also be noted that the TTE line (blue line) will always be a "best fit" line for the included data points - it will be just as useful in the case where the actual rate of health loss is fluctuating or changing, and the estimate will constantly be readjusting to changes in DPS.
Why should I use it?
As stated above, the primary motivator for developing TTE was as an extra source of information for proper cooldown usage/timing on my mage. If you're interested in squeezing the absolute maximum out of your cooldowns, and are of a class that benefits from an "execute range", then this addon will likely help you in this regard. The addon also has merits tracking enrage and hard-mode targets for raid leaders.
Disclaimer: While this addon is 100% functioning, and does what you'd expect, it's still very much under development. I encourage others to check up on my math, and report bugs. I'm also interested at this stage in things that you would like to see out of TTE. More configuration/customization?
Here is a list of features I'd like to add at some point in the near future:
Additional appearance configurability - it's relatively ugly at the current stage of development.
More "aware" algorithm that predicts upcoming changes in DPS, such as heroism ending soon, or execute range coming soon - and using this knowledge to adjust estimates accordingly.
Ability to "lock" the timers to a particular mob, to prevent data points being wiped when selecting e.g. an add, or a friendly player.
Only tracks data points on your current target (if they're an enemy), and all data points are wiped whenever the target is changed.
Since your addon tracks estimated time to death better than TTD, can you make your addon mimic functionality for classes that don't have an execute range?
I'm not sure I understand the request.
TTE tracks both time to reach execute range (which is configurable to a number of percentages), AND time to reach death - i.e. it shows two separate timers. The execute timer can be hidden altogether by setting the execute percentage to 0% - I believe this would mimic the functionality of TTD?
EDIT: If you currently use TTD, TTE and TTD will happily run alongside each other. Perhaps the best option would be to run both simultaneously for a while, and see anecdotally which is giving you a better estimate.
Gotcha, and yes, that is what I was asking. As soon as you add it as an LDB feed it'll be installed!
You drive a hard bargain :P
TimeToExecute 0.2.5 (might not be propagated to Curse yet). Includes an LDB feed, and the ability to always have the default TTE UI hidden.
I wasn't sure on proper "play nice" practice for LDB, so the LDB update rate is currently throttled to a maximum of twice per second. This is easily increased or decreased in the LUA. Additionally, I haven't selected an icon for the feed, and the text itself is very simple ("K: 0.0" for the kill timer, and "E: 0.0" for the execute timer). I'd appreciate some feeback here as I'm not sure exactly what people are expecting to see. Should it just be a number?
Ahh yes, you are absolutely correct. The timer updates for both the default UI and LDB occur in the OnUpdate event for the main frame, which stops receiving said event when it gets hidden :(. I'm away this weekend, and will not have time to test a fix tonight, but I'll aim to put one through on Monday. Cheers for pointing it out!