To put it simply, the "% complete" for any given goal in Cascade is just showing how close we are to completing the goal. It's calculated using this formula:
(Current Progress - Initial Value) / (Target Value - Initial Value)
Every goal in Cascade has an initial value and a target. We are starting in one place, and want to get to another. At a minimum, every goal is at least tracking from 0 (initial) to 100% done (target). The example below is just like that:
Whenever a goal has progress, that progress is compared to the target vs. where we came from (the initial value). In this case, the % complete is simple because it's the same as the progress itself: 52.71% (see formula below).
(52.71 - 0) / (100 - 0) = 52.71%
It's not really even worth doing the formula for this one 😉
What if we're not tracking from 0-100% done?
It doesn't matter - the logic is the same, regardless of what numbers are entered. In the example below, the goal is to increase social media presence by growing followers from 0 - 10,000.
So far we have 1,500 followers out of the 10,000 follower target, so...
(1.5k - 0) / (10k - 0) = 15%
This is still a pretty simple example though...let's try a more interesting one.
What if our initial value isn't 0?
The formula still works the same way! Let's say we're starting with 1,500 followers and want to get to 10,000 from there, but we don't change our progress. That will change things...
If we have an initial value of 1,500 followers, and our progress is also 1,500 followers, that means we haven't really made any progress. We're still at the same point as we started at, so technically we've made 0% progress so far.
(1.5k - 1.5k) / (10k - 1.5k) = 0%
If we have an initial value of 1,500 followers, and our progress is 3,000 followers, that means we have actually made progress. We've gained 1,500 followers compared to where we started, and our target is still 10,000:
"But wait...shouldn't 3,000 out of 10,000 be 30% complete?"
Incorrect! If the initial value here was "0" that would be right. However, we started at 1,500 followers, so in reality the whole point of this goal is to net gain 8,500 followers (10k - 1.5k). You can see the proof in the same formula from before:
(3k - 1.5k) / (10k - 1.5k) = 18%
What if the initial and target values are very close to each other?
This is where you can sometimes see some wonky "% complete" numbers, but everything is still working the same way. It's just a matter of how sensitive the differences between the values are.
For example, let's say we wanted to improve a profit margin from 3% to 3.75% and we have a greater-than-expected margin of 5% right now. Technically, this would mean we're hitting 267% of our target (woah!). Just check the formula:
(5 - 3) / (3.75 - 3) = 267%
What if the initial and target values are the same?
This is the only time where things are different. This is the classic "maintain" target example, such as maintaining a team of 3 people. If we wanted to maintain a team of 3 but actually have 5 people, what would happen? Let's see...
(5 - 3) / (3 - 3) = (Undefined)
You might remember the old math rule that says we can NEVER divide by zero, and that applies here, too. In situations like this, the "% complete" part of tracking falls off and Cascade leans entirely on the unit itself.
In this case, we're "2 people" ahead and there is no "% complete" to be found.
For more information on where the "ahead/behind" value and status come from in Cascade, see this article.