Cascaded KRs enable you to place contributing KRs in a child objective and specify how much each of them contributes to the parent KR. It's a powerful mechanism, and understanding how cascaded KR progress is calculated is important as it differs from the standard objective calculation mechanism.
Some context
For the purposes of this article, we will focus on the following scenario:
This Q our team wants to focus on documentation.
One way of measuring this is by the volume of created documentation articles => So we'll put 100 new articles as a target.
We want to cascade these 100 articles target to 3 Key Results, that will focus on Troubleshooting Articles, API samples, and Blog posts, and will contribute 30, 30, and 40 articles respectively.
2. As our Q progresses, all teams have worked hard and the 3 KRs have the following progress as of today:
Cascaded KR progress calculation
The progress of a parent KR, which cascades down to one or more KRs is determined by the sum of the cascaded KRs current values (not their percentage).
To use our example above:
We wanted to get 100 articles written this Q, thus our cascaded KR Write 100 new articles had a target of 100.
2. This KR cascades down into 3 KRs, which contribute with the following current values:
Add 30 Troubleshooting articles - 29 - updated the KR to 29 out of the 30 target.
Write 30 API samples - 30 - updated the KR to 30 out of the 30 target
Write 40 blog posts - 20 - updated the KR to 20 out of the 40 target.
You can see the KRs contribution if you hover over the cascaded KRs:
3. That's why the Write 100 new articles KR current value is calculated as
29+30+20=79
Objective progress vs. cascaded KR progress
You might be asking yourself why the Objective, which contains the KRs our parent KR cascades into, has a progress of 82%, while the parent KR progress is 79%?
In a nutshell, this is because:
the objective progress is calculated as the average of its key results progress.
the parent KR current value is calculated as the sum of contributing KRs current values
The parent KR progress is calculated as the delta between the initial value, current value, and target value.
Let's refer to our example:
Add 30 Troubleshooting articles has a progress of 97%
Write 30 API samples - 100%
Write 40 blog posts - 50%
The progress of the objective, hosting these 3 KRs is calculated as
(97+100+50)/3=82%
The parent KR progress is calculated as the delta between the initial value, current value, and target value. The parent KR current value is determined by the KRs it cascades into.
To use the example numbers:
Initial value - 0
Target value - 100
Children KRs values:
Add 30 Troubleshooting articles - 29
Write 30 API samples - 30
Write 40 blog posts - 20
((29+30+20)-0/100)*100
or to simplify things
79/100*100=79%