Cooldown calculation
How Cooldown calculation work
Theory
Based on Destiny 2 Ability Cooldown Calculator by Hugo
Glossary
Ability Regeneration Scalar — Destiny Data Compendium's term for buffScalar
baseRate — % of ability energy gained per second at tier 3 of the relevant stat.
buffScalar — scalar multiple of the baseRate, stack additively (includes stat Tiers)
buffMultiplier — multiplier on which baseRate is multiplied, stack multiplicatively
flatGain — some effects grant a set amount of ability energy. Note: armor mods like Dynamo, Bomber, Momentim Transfer not only grant different percent of ability energy based on subclass, but also depends on Ability Tier, so there are two factors contributing to it.
{number}% Additional Base Regeneration Rate — Destiny Data Compendium's term for buffScalar expressed as a percentage
{number}x Ability Regeneration Speed — Destiny Data Compendium's term for buffMultiplier
Base Ability Regeneration
Cooldowns of class abilities, grenades, supers and melees depend on corresponding stat tiers. The base unit of ability recharge rate is that ability's recharge rate (% of total energy gained per second) at tier 3 of the relevant stat.
Tier 3 is considered "baseRate"
Ability Regeneration Scalars for Stat Tiers responsible for corresponding abilities | |||||||||||
Stat Tier | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Mobility | 0.85 | 0.9 | 0.95 | 1 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 |
Resilience | 0.7 | 0.8 | 0.9 | 1 | 1.05 | 1.1 | 1.2 | 1.3 | 1.4 | 1.55 | 1.7 |
Recovery | 0.7 | 0.8 | 0.9 | 1 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7 |
Discipline | 0.7 | 0.8 | 0.9 | 1 | 1.1 | 1.2 | 1.3 | 1.4 | 1.55 | 1.75 | 2 |
Intellect | 0.69 | 0.78 | 0.87 | 1 | 1.06 | 1.11 | 1.16 | 1.22 | 1.25 | 1.29 | 1.31 |
Strength | 0.7 | 0.8 | 0.9 | 1 | 1.1 | 1.2 | 1.3 | 1.4 | 1.55 | 1.75 | 2 |
Adding effects
Effects can grant four things:
-
chargeRate buffs (buffScalars), examples: stats, Sol Invictus buff, Eye of Another World, etc ... (most of the effects, basically)
-
buffMultipliers, examples: Checkmate ability penalty, FR0ST-EE5 effect in PvE, Citan's Ramparts ...
-
A stat boost (like + 3 Tiers of Resilience in case of Font of Endurance)
-
A set amount of ability energy — "flatGain".
Note: armor mods like Dynamo, Bomber, Momentum Transfer not only grant different percent of ability energy based on class, but it also depends on Ability Tier, so there are two factors contributing to it.
How flatGains are scaled depending on Ability Tier (source: Destiny Data Compendium)
Final ability charge rate is the sum of all of (buffScalar × baseRate) products multiplied by all buffMultipliers.
In a form of equations
So basically totalChargeRate is a speed at which Ability Energy Regenerates
By knowing speed it is possible to calculate amount of ability energy in a given period of time
Making calculations round based
All effects affecting Ability regeneration speed can be divided into two big groups: ones with infinite duration and temporary
-
Infinite duration effects — These are effects active all the time like Checkmate ability regeneration penalty, Citan's Ramparts Towering Barricade cooldown extension or Eye of Another World effect
-
Finite duration effects — These are effects that have timer or work under specific condition (like low health)
Because the state of the variables affecting energy regeneration depends on the combination of effects at a given time; it is necessary to divide the entire regeneration time into successive segments of combinations of effects (rounds of calculations). Within the round, the value of the variables does not change, so you can use the above formulas without problems
For every round of calculation the following values are needed:
Sum of buffScalars
Product of buffMultipliers
Effective Stat Tier
These three allow to calculate totalChargeRate
By knowing totalChargeRate and roundDuration it is possible to calculate energyGained. If energyGained > energyNeeded, we can just divide energyNeed by totalChargeRate and get time left (roundDuration).
Example
Effects
Ability: Towering Barricade
Effect | What it grants | Duration [seconds] |
Font of Endurance x1 | +30 resilience | 10 |
Ember of Benevolence | 400% Additional Class Ability Regeneration Rate (buffScalar = 4) | 6 |
Citan’s Ramparts | 0.58x Class Ability Regeneration Rate Multiplier (buffMultiplier = 0.58) | ∞ |
Resilience Tier 5 | buffScalar = 1.1 | ∞ |
Time Diagram

X-axis — time in seconds
Ability regeneration can be divided into 3 rounds:

Red lines are bounds of rounds
Table summary
Round 1 | Round 2 | Round 3 | |
needEnergy (on start) [%] | 100 | 73.154285716 | 68.514285716 |
cooldown (on start) [s] | 0 | 6 | 10 |
roundDuration [s] | 6 | 4 | ∞ |
totalChargeRate [%/s] | 4.474285714 | 1.16 | 0.911428571 |
energyGained [%] | 26.845714284 | 4.64 | the rest needed |
needEnergy (on end) [%] | 73.154285716 | 68.514285716 | 0 |
cooldown (on end) [s] | 6 | 10 | 85.17241383 |
Calculations
Base cooldown: 70 [s]
baseRate = 100 / 70 = 1.4285714285714286 [%/s]
needEnergy = 100 [%]
Round 1
needEnergy = 100 [%]
cooldown = 0 [s]
roundDuration = 6 [s]
Active effects:
Resilience Tier 5
Font of Endurance: + 3 tiers of Resilience
Ember of Benevolence (Effect): +400% Additional Class Ability Regeneration Rate
Citan's Ramparts: 0.58x Class Ability Regeneration Rate Multiplier
buffScalar1 = 1.4 (5 + 3 = 8 Tier of Resilience => Ability Regeneration Rate = 1.4)
buffScalar2 = 4 (Ember of Benevolence)
buffMultiplier1 = 0.58 (Citan's Ramparts)
totalChargeRate = baseRate * (buffScalar1 + buffScalar2) * buffMultiplier1 = 1.4285714285714286 * (1.4 + 4) * 0.58 = 4.474285714 [%/s]
energyGained = totalChargeRate * roundDuration = 4.474285714 * 6 = 26.845714284 [%]
needEnergy = needEnergy – energyGained = 100 – 26.845714284 = 73.154285716 [%]
cooldown = cooldown + roundDuration = 0 + 6 = 6 [s]
Round 2
needEnergy = 73.154285716 [%]
cooldown = 6 [s]
roundDuration = 4 [s]
Active effects:
Resilience Tier 5
Font of Endurance: + 3 tiers of Resilience
Citan's Ramparts: 0.58x Class Ability Regeneration Rate Multiplier
buffScalar1 = 1.4 (5 + 3 = 8 Tier of Resilience => Ability Regeneration Rate = 1.4)
buffMultiplier1 = 0.58 (Citan's Ramparts)
totalChargeRate = baseRate * (buffScalar1) * buffMultiplier1 = 1.4285714285714286 * (1.4) * 0.58 = 1.16 [%/s]
energyGained = totalChargeRate * roundDuration = 1.16 * 4 = 4.64 [%]
needEnergy = needEnergy – energyGained = 73.154285716 – 4.64 = 68.514285716 [%]
cooldown = cooldown + roundDuration = 6 + 4 = 10 [s]
Round 3
needEnergy = 68.514285716 [%]
cooldown = 10 [s]
roundDuration = infinite [s]
Active effects:
Resilience Tier 5
Citan's Ramparts: 0.58x Class Ability Regeneration Rate Multiplier
buffScalar1 = 1.1 (5 Tier of Resilience => Ability Regeneration Rate = 1.1)
buffMultiplier1 = 0.58 (Citan's Ramparts)
totalChargeRate = baseRate * (buffScalar1) * buffMultiplier1 = 1.4285714285714286 * (1.1) * 0.58 = 0.911428571 [%/s]
This round duration is infinite, so buff configuration will not change (Citan's Ramparts and Resilience Tier 5 will not turn off), so we can just divide energyNeed by totalChargeRate and get time left (roundDuration). The same can be done if energyGained is more than needEnergy
roundDuration = energyNeed / totalChargeRate = 68.514285716 / 0.911428571 = 75.17241383 [s]
cooldown = cooldown + roundDuration = 10 + 75.17241383 = 85.17241383 [s]
So Towering Barricade Cooldown with this buff configuration will be [85] seconds.