How to
How to score committed vs aspirational OKRs

Short answer: Tag every objective committed or aspirational before you score it. Grade commitments against 1.0. Grade moonshots against ~0.7. Report two means. Never average them. Never default a blank type to committed.
One bar for both is how companies excuse broken promises and shame real stretch.
The request that sounds reasonable
The retrospective is next week. Someone wants a single “company score” for the board slide. A team hit 0.72 on a committed launch and wants it called a win because “0.7 is the OKR number.” Another team hit 0.68 on a moonshot and looks crushed in the same color scale.
Those two 0.7s are not the same number. Treating them as one is how scoring becomes theater.
What the research — and the public Google playbook — say
Google’s published OKR playbook draws a hard line between the two variants. Committed OKRs are the ones the team agrees will be delivered. Schedules and resources move to make that true. The expected score is 1.0. A miss requires an explanation: planning error, execution error, or a promise that should have been escalated before the quarter ended. A committed miss is not “pretty good.” It is a broken promise owed a post-mortem.
Aspirational OKRs describe how the world should look when you do not yet know the path or do not have the resources to guarantee it. The expected average is 0.7, with high variance. A standing 1.0 on that track means the targets were not ambitious. The set of aspirational OKRs is supposed to exceed what the team can finish this quarter. That is the point of the type.
The playbook’s first trap is failing to differentiate. Mark a commitment as aspirational and teams will not rearrange other work to hit it. Mark a moonshot as committed and you get defensiveness, priority inversion, and sandbagged targets so nobody has to miss a “promise.”
That trap has a research name. Sitkin, Miller, and colleagues call it the stretch-goal paradox: used on the wrong work, or without slack and psychological safety, stretch targets produce reckless risk-taking or quiet lowering of the bar. Used on the right work, with the type visible, they pull performance above a forecast. The type is the safety mechanism. Hide it, and people will protect themselves by writing easy numbers.
Locke and Latham’s goal-setting work is the other half. Specific, difficult goals beat vague ones — but only when people can tell whether they succeeded. A single 0–1.0 color scale that means “met the promise” and “healthy moonshot” destroys that feedback. The same digit cannot teach two lessons.
Sandbagging is the predictable adaptation. If 0.7 is always “green,” committed owners will under-promise. If 0.7 is always “red,” moonshot owners will stop stretching. Google’s playbook calls the first failure out by name: a team whose committed OKRs do not consume most of its capacity, or whose aspirational OKRs are reachable without changing anything, is hoarding or not pushing. Senior management is supposed to notice. They cannot notice if the slide is one blended mean.
Why a blended mean is uninterpretable
Say the company closed eight objectives: four committed at 1.0, 1.0, 0.9, 0.6 and four aspirational at 0.8, 0.7, 0.55, 0.3.
- Committed mean: 0.88 — and one real miss (0.6) that needs a post-mortem.
- Aspirational mean: 0.59 — a bit shy of the 0.7 band; the 0.3 is a miss, the 0.8 is fine, the 0.7 is exactly on tone.
Average them and you get ~0.73. That number does not mean “we mostly keep promises.” It does not mean “we stretch about right.” It means you mixed a contract with a bet and called the mush a result.
Gahmbit will not print that mush. The retrospective reports separate committed and aspirational means. Untyped objectives are excluded from both and listed as a gap — the scoring cousin of Missing.
How to grade in two bars
1. Set the type when you write the objective
Not at close. Intent at write time is the only honest snapshot. If you decide “it was aspirational” after a 0.65, you are rewriting the contract.
| Type | Expectation | Band in Gahmbit |
|---|---|---|
| Committed | Lands at 1.0. A shortfall is a miss. | met (1.0) / missed (<1.0) |
| Aspirational | Averages ~0.7. A standing 1.0 is too timid. | delivered ≥0.7 / progress 0.4–0.69 / miss <0.4 |
| Not set | No recorded intent. | untyped — out of both means |
2. Score the objective from its own key results
The grade is the unweighted mean of the KRs on that objective. Do not average child objectives into a parent. Do not average a team. Do not average people. Alignment links show cascade; they are not score inputs. A parent with no KRs of its own stays unscored — another visible gap — however well the teams underneath did.
3. Put committed work first in the week
The playbook’s operating rule is still the right one: rearrange other priorities to protect a 1.0 on commitments. Spend remaining time on aspirational work in priority order. If you cannot credibly promise 1.0, escalate during the cycle — not in the retrospective.
4. Post-mortem committed misses; carry honest stretch
A committed miss gets a write-up: what we planned, what we did, what we will change. An unfinished aspirational objective can move forward if the bet is still the bet. Dropping it because progress was slow hides a prioritization or resource problem.
5. Report two means and the untyped count
Board slide, digest, retrospective — same shape. “Committed 0.94 (1 miss). Aspirational 0.66 (on tone). 3 untyped.” Anyone who asks for a single number is asking you to destroy the information.
6. Snapshot the type at close
When the cycle closes, the type travels with the score. If someone later edits the live row, last quarter’s 0.7 still means what it meant.
What not to do
Do not run one color scale. Green-at-0.7 on a committed launch is how broken promises get a trophy. Red-at-0.7 on a moonshot is how you train people to sandbag.
Do not default unset to committed. That manufactures a miss (or a fake met) for work that never stated its intent. Untyped stays loud, like Missing.
Do not roll children into a parent score. That is how empty executives look healthy and how sandbagging starts at the bottom of the tree.
Do not score Teams. Labelled counts of team objectives by band are fine. A team mean, health %, or progress ring as “the team’s score” is not.
A worked example
Northstar Labs closes Q3.
- Committed — “Ship the first-cycle checklist.” KRs at 1.0, 1.0, 0.95. Mean 0.98, band
met. Fine. - Committed — “Keep org-digest delivery at the SLA.” 0.82. Band
missed. Post-mortem: the template went out; two weeks the channel was misconfigured. Not a moonshot. A promise. - Aspirational — “Become the default square for companies that refuse hidden goals.” Long-horizon KRs at 0.55 and 0.70. Mean 0.63, band
progress. Nobody is in trouble. The bet continues. - Untyped — “Explore a mobile polish pass.” Excluded from both means. The gap is the lesson: say which bar you wanted.
The slide is four lines, not one 0.8.
If leadership wants one number
Give them the two means and the miss list. If the packet cannot tolerate that, the packet is asking for a story that is not true.
We would rather lose the “simple score” checkbox than ship a retrospective that congratulates a blended 0.7.
Sources
- Google’s published OKR playbook — committed expected score 1.0 with post-mortem on miss; aspirational expected average 0.7; Trap #1 is failing to differentiate; sandbagging called out when capacity is not honestly consumed.
- Sitkin, S. B., See, K. E., Miller, C. C., Lawless, M. W., & Carton, A. M. (2011/2017). “The Stretch Goal Paradox.” Academy of Management Review / HBR. Stretch without the right conditions produces gaming or collapse.
- Locke, E. A., & Latham, G. P. (2002). Goal-setting theory: specific difficult goals plus feedback. A single ambiguous scale is failed feedback.
- Related: How to see who hasn’t written OKRs · Should different teams have different OKR cycles?
FAQ
- What score should a committed OKR get?
- 1.0. Anything below is missed and owed a post-mortem. Do not call 0.7 a success on a promise.
- What score should an aspirational OKR get?
- The expected average is about 0.7. In Gahmbit, delivered is 0.7 and above, progress is 0.4–0.69, miss is below 0.4. A standing 1.0 means the targets were timid.
- Can we report one company score?
- No. Report two means — committed and aspirational — plus the count of untyped objectives. A blended mean has no interpretation.
- What if we forgot to set the type?
- Leave it unset. Untyped is a visible gap, excluded from both means. Do not default it to committed after the fact.
- Do child objectives roll into the parent’s score?
- No. An objective is the unweighted mean of its own key results only. Alignment links are not score inputs.
- Is this free?
- Yes. Cycle scoring and the retrospective are free core. Optional AI narrative of the quarter, if it ever ships, would be prepaid credits — the numbers stay readable either way.