Writing OKRs
Route by task
Write workflow
Structure the output using the template. Load references/03-templates.md and fill every field. Never omit Parent OKR, Type, or Why this matters.
Draft Objectives. Each must be qualitative (no numbers), directional, and pass the "Who Cares?" test: if we 1.0'd this, would a customer, investor, or employee notice? If not, reword or cut.
Draft Key Results using the 4-part formula:
[metric name] from [baseline] to [target] by [date]
If a baseline is unknown, use an explicit ⚠️ placeholder — never silently omit it. Format: ⚠️ [replace with actual — e.g., 88%]. A KR with an unfilled baseline cannot be scored at mid-cycle.
Apply the two litmus tests to every KR:
- Output vs. outcome: Can the KR be checked off without a metric moving? If yes, it's a task — rewrite as an outcome.
- Necessary but not sufficient: If the team scored 1.0 on every KR, is it possible the Objective still wasn't achieved? If yes, the KR set is insufficient — add or rewrite KRs until their collective success guarantees the Objective.
Tag every OKR as committed or aspirational (see Committed vs. aspirational). An untagged OKR is a rubric hard fail.
Separate initiatives from Key Results. List initiatives (the projects and bets believed to move the KRs) in the Initiatives section — not in the KR list. If initiatives appear in KR slots, move them.
Final rubric pass. Run references/01-rubric.md on every Objective and KR. Include a compact rubric summary table in the output (dimension → score → pass/fail per Objective and per KR) so the quality check is transparent. Fix anything below threshold before finalizing.
Refine workflow
- Read the draft OKRs in full.
- Apply the two litmus tests (output vs. outcome; necessary but not sufficient) to every KR.
- Check that every KR has all 4 formula parts: metric, baseline, target, date.
- Check that every Objective passes the "Who Cares?" test and contains no numbers.
- Check committed/aspirational tagging on every OKR.
- Run references/01-rubric.md on each Objective and KR.
- Produce per-OKR output:
- Compact rubric score table (dimension → score → pass/fail)
- Narrative critique and concrete rewrite suggestion for every failing dimension
- Clearly distinguish hard fails (any 0 on K1, K2, K8, or any Objective dimension) from point deductions
Evaluate workflow
For program-level audits, planning-week reviews, or end-of-cycle retrospectives.
- Score each Objective on all 6 dimensions from references/01-rubric.md. Flag any 0 as a hard fail.
- Score each KR on all 8 dimensions. Flag any 0 on K1, K2, or K8 as a hard fail.
- Run the two OKR-as-a-whole checks: type tagging and initiative separation.
- Check for anti-patterns using references/02-anti-patterns.md.
- Produce:
- Rubric score table per OKR
- Narrative per failing dimension with specific rewrite suggestions
- Anti-pattern findings, grouped by severity
- Health verdict: healthy (0 critical, ≤2 high) / needs work (0 critical, 3–5 high) / at risk (any critical, or ≥6 high)
- Top 3 prioritized fixes
Committed vs. aspirational
Every OKR must be explicitly tagged. Mislabeling has predictable failure modes: treating an aspirational OKR as committed drives sandbagging; treating a committed OKR as aspirational signals it's optional.
| Type |
Expected score |
Miss signal |
Use for |
| Committed |
1.0 |
Anything < 1.0 is a miss |
Regulatory deadlines, fundraising milestones, contractual deliverables |
| Aspirational |
0.6–0.7 |
Consistent 1.0 means sandbagging |
Growth targets, new markets, ambitious technical bets |
Reasonable starting mix: two-thirds aspirational, one-third committed. Too many committed OKRs turns the program into a delivery contract.
Key constraints
- 3–5 Objectives, 2–4 KRs each. Start by drafting, then cut. Teams capping at 1–3 Objectives complete significantly more KRs than those juggling five or more.
- No numbers in Objectives. Numbers belong in KRs.
- KPIs are not OKRs. A KPI is a vital sign monitored continuously. A KR is a deliberate campaign to move a KPI from X to Y by date Z. A KPI becomes a KR when you commit to acting on it.
- Initiatives belong in the roadmap, not the KR list. Conflating them is the silent killer of most OKR rollouts.
- Binary KRs are task KRs in disguise. "Ship X" is binary: done or not done. Reframe as the outcome the ship is intended to cause.
Alignment
Every OKR should answer: what bigger thing does this support? Record it in the Parent OKR field.
- Use lineage (family tree) over strict cascading. Children can be proposed bottom-up; leadership doesn't pre-assign them.
- For cross-functional outcomes, use a shared Objective with joint ownership rather than splitting the outcome across team OKRs that pretend to be independent.
- Cap alignment depth at 2 levels (company → team) for most orgs. Three levels only when the org genuinely needs an intermediate layer.
- Healthy top-down/bottom-up mix: ~60% from leadership direction, ~40% from the team's own knowledge of the work.
Quick anti-pattern scan
Before finalizing any OKR set, check these four critical failures first:
| Anti-pattern |
Signal |
| Tasks as KRs |
Any KR can be checked off without a metric moving |
| Comp coupling |
OKR scores affect bonuses, raises, or promotion decisions |
| Set-and-forget |
No weekly check-in cadence established alongside the OKRs |
| Leadership exempt |
CEO/founder has no visible OKRs on the same cadence as the team |
Full 20-item checklist with severity ratings and standard fixes: references/02-anti-patterns.md
1---2name: writing-okrs3description: Writes, refines, and evaluates Objectives and Key Results (OKRs) for any team or org size. Applies a structured quality rubric (6 Objective dimensions, 8 Key Result dimensions), enforces committed vs. aspirational tagging, catches the necessary-but-not-sufficient trap, detects 20 named anti-patterns by severity, and produces complete OKR documents with baselines, targets, metric definitions, and initiative separation. Use when drafting new OKRs, improving or refining draft OKRs, scoring OKRs against a quality rubric, auditing an OKR program for anti-patterns, running planning-week reviews, or when the user mentions OKRs, key results, quarterly goals, objectives, Q1/Q2/Q3/Q4 goal-setting, or OKR planning.4---56# Writing OKRs78## Route by task910| User intent | Workflow |11|---|---|12| Draft new OKRs from provided context | [Write workflow](#write-workflow) |13| Improve existing draft OKRs | [Refine workflow](#refine-workflow) |14| Score or audit existing OKRs | [Evaluate workflow](#evaluate-workflow) |1516---1718## Write workflow19201. **Structure the output using the template.** Load [references/03-templates.md](references/03-templates.md) and fill every field. Never omit `Parent OKR`, `Type`, or `Why this matters`.21222. **Draft Objectives.** Each must be qualitative (no numbers), directional, and pass the "Who Cares?" test: *if we 1.0'd this, would a customer, investor, or employee notice?* If not, reword or cut.23243. **Draft Key Results using the 4-part formula:**25 ```26 [metric name] from [baseline] to [target] by [date]27 ```28 If a baseline is unknown, use an explicit ⚠️ placeholder — never silently omit it. Format: `⚠️ [replace with actual — e.g., 88%]`. A KR with an unfilled baseline cannot be scored at mid-cycle.29304. **Apply the two litmus tests to every KR:**31 - **Output vs. outcome:** Can the KR be checked off without a metric moving? If yes, it's a task — rewrite as an outcome.32 - **Necessary but not sufficient:** If the team scored 1.0 on every KR, is it possible the Objective still wasn't achieved? If yes, the KR set is insufficient — add or rewrite KRs until their collective success guarantees the Objective.33345. **Tag every OKR as committed or aspirational** (see [Committed vs. aspirational](#committed-vs-aspirational)). An untagged OKR is a rubric hard fail.35366. **Separate initiatives from Key Results.** List initiatives (the projects and bets believed to move the KRs) in the `Initiatives` section — not in the KR list. If initiatives appear in KR slots, move them.37387. **Final rubric pass.** Run [references/01-rubric.md](references/01-rubric.md) on every Objective and KR. Include a compact rubric summary table in the output (dimension → score → pass/fail per Objective and per KR) so the quality check is transparent. Fix anything below threshold before finalizing.3940---4142## Refine workflow43441. Read the draft OKRs in full.452. Apply the two litmus tests (output vs. outcome; necessary but not sufficient) to every KR.463. Check that every KR has all 4 formula parts: metric, baseline, target, date.474. Check that every Objective passes the "Who Cares?" test and contains no numbers.485. Check committed/aspirational tagging on every OKR.496. Run [references/01-rubric.md](references/01-rubric.md) on each Objective and KR.507. **Produce per-OKR output:**51 - Compact rubric score table (dimension → score → pass/fail)52 - Narrative critique and concrete rewrite suggestion for every failing dimension53 - Clearly distinguish hard fails (any 0 on K1, K2, K8, or any Objective dimension) from point deductions5455---5657## Evaluate workflow5859For program-level audits, planning-week reviews, or end-of-cycle retrospectives.60611. Score each Objective on all 6 dimensions from [references/01-rubric.md](references/01-rubric.md). Flag any 0 as a hard fail.622. Score each KR on all 8 dimensions. Flag any 0 on K1, K2, or K8 as a hard fail.633. Run the two OKR-as-a-whole checks: type tagging and initiative separation.644. Check for anti-patterns using [references/02-anti-patterns.md](references/02-anti-patterns.md).655. **Produce:**66 - Rubric score table per OKR67 - Narrative per failing dimension with specific rewrite suggestions68 - Anti-pattern findings, grouped by severity69 - Health verdict: **healthy** (0 critical, ≤2 high) / **needs work** (0 critical, 3–5 high) / **at risk** (any critical, or ≥6 high)70 - Top 3 prioritized fixes7172---7374## Committed vs. aspirational7576Every OKR must be explicitly tagged. Mislabeling has predictable failure modes: treating an aspirational OKR as committed drives sandbagging; treating a committed OKR as aspirational signals it's optional.7778| Type | Expected score | Miss signal | Use for |79|---|---|---|---|80| **Committed** | 1.0 | Anything < 1.0 is a miss | Regulatory deadlines, fundraising milestones, contractual deliverables |81| **Aspirational** | 0.6–0.7 | Consistent 1.0 means sandbagging | Growth targets, new markets, ambitious technical bets |8283Reasonable starting mix: two-thirds aspirational, one-third committed. Too many committed OKRs turns the program into a delivery contract.8485---8687## Key constraints8889- **3–5 Objectives, 2–4 KRs each.** Start by drafting, then cut. Teams capping at 1–3 Objectives complete significantly more KRs than those juggling five or more.90- **No numbers in Objectives.** Numbers belong in KRs.91- **KPIs are not OKRs.** A KPI is a vital sign monitored continuously. A KR is a deliberate campaign to move a KPI from X to Y by date Z. A KPI becomes a KR when you commit to acting on it.92- **Initiatives belong in the roadmap**, not the KR list. Conflating them is the silent killer of most OKR rollouts.93- **Binary KRs are task KRs in disguise.** "Ship X" is binary: done or not done. Reframe as the outcome the ship is intended to cause.9495---9697## Alignment9899Every OKR should answer: *what bigger thing does this support?* Record it in the `Parent OKR` field.100101- Use **lineage** (family tree) over strict cascading. Children can be proposed bottom-up; leadership doesn't pre-assign them.102- For cross-functional outcomes, use a **shared Objective with joint ownership** rather than splitting the outcome across team OKRs that pretend to be independent.103- Cap alignment depth at **2 levels** (company → team) for most orgs. Three levels only when the org genuinely needs an intermediate layer.104- Healthy top-down/bottom-up mix: ~60% from leadership direction, ~40% from the team's own knowledge of the work.105106---107108## Quick anti-pattern scan109110Before finalizing any OKR set, check these four critical failures first:111112| Anti-pattern | Signal |113|---|---|114| Tasks as KRs | Any KR can be checked off without a metric moving |115| Comp coupling | OKR scores affect bonuses, raises, or promotion decisions |116| Set-and-forget | No weekly check-in cadence established alongside the OKRs |117| Leadership exempt | CEO/founder has no visible OKRs on the same cadence as the team |118119Full 20-item checklist with severity ratings and standard fixes: [references/02-anti-patterns.md](references/02-anti-patterns.md)