01 / Engineering velocity

From shipping a platform to shipping daily.

Weak 9 / 100. Critical issues

Launch the new CI/CD platform by Q3.

  • Migrate all teams to the new platform.
  • Reduce build times.
  • Improve developer experience.

Why it fails

  • "Migrate all teams" is a task, not an outcome. The migration is the work; what changes for teams after it?
  • KR2 has no baseline and no target. "Reduce" by how much, from what?
  • KR3 is unmeasurable as written. "Improve developer experience" is a hope, not a result.
  • The Objective embeds the solution ("CI/CD platform") rather than naming the problem it solves.
Strong 86 / 100. Excellent

Cut median PR cycle time so teams can ship to production daily by end of Q3.

  • Median PR-to-merge time drops from 38h to under 8h across all backend services (source: deployment pipeline event log, 4-week rolling average).
  • Share of services deploying at least once per working day moves from 22% to 70% (source: deployment frequency per repo, measured weekly).
  • Developer NPS for the deploy pipeline moves from 14 to 35 (source: in-tool pulse survey, minimum 80 responses per cycle).

Why it works

  • The Objective names the outcome (ship daily), not the tool. The CI/CD platform may or may not be how they get there.
  • Each KR has a current baseline and a target, so progress is trackable from week one.
  • The three KRs cover different dimensions: system speed, team behaviour, and perception. Hitting two out of three signals a real problem on the third.
Load in Diagnose →

Coach note

The word "platform" in the weak Objective is the first tell. Any Objective that names a deliverable before naming a problem has already committed to a solution. What if the better fix is process change, not a new platform?

02 / User activation

From driving signups to driving behaviour change.

Weak 8 / 100. Critical issues

Drive strong activation for new users in Q3.

  • Reach 10,000 new signups in Q3.
  • Send 200,000 onboarding emails.
  • Launch redesigned onboarding flow by August 1.

Why it fails

  • Signups measure acquisition, not activation. A user who signs up and never returns is still a signup.
  • "Send 200,000 onboarding emails" measures an action your team takes, not a change in user behaviour.
  • "Launch redesigned onboarding flow" is pass/fail: it tells you whether the work shipped, not whether it worked.
  • The Objective says "strong activation" but defines no activation event.
Strong 88 / 100. Excellent

Get new users to their first meaningful action before the end of their first week.

  • Share of new users who complete a core action (create, connect, or invite) within 7 days of signup moves from 19% to 42% (source: product event data, weekly cohort).
  • Median time from signup to first completed core action drops from 4.1 days to under 18 hours (source: event timestamps, cohort of all new signups per week).
  • 7-day-to-30-day user retention for users who completed a core action in week one moves from 34% to 52% (source: cohort retention table, measured at day 30).

Why it works

  • The Objective defines "activation" implicitly through the KRs: a specific action within a specific window. No ambiguity about what counts.
  • KR3 connects activation to downstream retention, which validates whether the activation event actually predicts value. This is the "so what" test built into the set.
  • All three KRs are observable from product event data with no survey dependency.
Load in Diagnose →

Coach note

Counting emails sent is measuring effort, not impact. The number of emails you send cannot tell you whether your product is doing what users need it to do. Start with the behaviour change, then build the activation funnel backwards from it.

03 / Customer support

From placeholder quality goals to specific service commitments.

Weak 4 / 100. Critical issues

Improve customer support quality and efficiency.

  • Improve customer satisfaction scores.
  • Reduce average resolution time.
  • Increase first-contact resolution rate.

Why it fails

  • All three KRs are field names without numbers. There is no baseline, no target, and no data source on any of them.
  • The Objective is a slogan. "Quality and efficiency" are not the same thing and the set does not distinguish between them.
  • These KRs could have been written without looking at a single support ticket. That is the problem.
Strong 90 / 100. Excellent

Resolve the majority of customer issues before they escalate or repeat, by end of Q3.

  • Median first-response time for Tier-1 tickets drops from 9h to under 2h across all channels (source: Zendesk SLA report, business hours Monday to Friday).
  • First-contact resolution rate for billing and account-access tickets moves from 54% to 72% (source: Zendesk custom field, monthly aggregate).
  • Post-resolution CSAT moves from 3.6 to 4.2 on a 5-point scale for tickets handled by the new triage workflow, measured over 8 weeks with a minimum of 200 responses.

Why it works

  • The Objective names a specific failure mode (escalation and repeat contacts) rather than a generic quality goal. That framing directly guides which KRs matter.
  • Each KR scopes itself precisely: ticket tier, category, workflow subset, and sample size threshold. This prevents the metric from being technically green while covering only a cherry-picked slice.
  • The three KRs measure speed, effectiveness, and customer perception together. A team that only improves response time without improving FCR has not solved the problem.
Load in Diagnose →

Coach note

The weak version scored 4/100, the lowest in this set. That score comes from three KRs that are entirely empty of numbers. "Improve satisfaction scores" is not a KR. It is a column header waiting for data. Write the data in first.

04 / Revenue

From owning all revenue to owning one lever.

Weak 6 / 100. Critical issues

Grow the business and increase revenue this year.

  • Increase annual recurring revenue by 30%.
  • Expand into two new market segments.
  • Hire a new VP of Sales by Q2.

Why it fails

  • "Increase ARR by 30%" is a company-level outcome no single team controls. It belongs in the company OKR, not a team set.
  • "Hire a VP of Sales" is a task. It may or may not affect revenue.
  • The Objective is a tautology. "Grow the business" means anything.
  • No baseline on any KR. "Increase by 30%" from what starting point?
Strong 84 / 100. Excellent

Turn more trials into paying customers by making the pricing decision easier.

  • Trial-to-paid conversion rate moves from 8.4% to 14% for trials that reach the "aha moment" threshold (source: CRM funnel data, 30-day cohort).
  • Median time from trial start to first payment drops from 21 days to 12 days (source: Stripe payment timestamps joined with signup date, monthly cohort).
  • Expansion MRR from existing customers (upsell and add-on) moves from 11% to 18% of total MRR (source: Stripe MRR breakdown, measured monthly).

Why it works

  • The Objective identifies a specific lever (pricing decision friction) rather than claiming ownership of all revenue. A team can own this.
  • KR1 scopes to users who already reached the aha moment, isolating the conversion problem from the activation problem. These are different problems.
  • KR3 tracks expansion MRR as a share of total MRR, not an absolute number. That prevents the metric from growing simply because new revenue dilutes it.
Load in Diagnose →

Coach note

Revenue OKRs almost always fail the "does the team control this?" test. If no single team controls ARR, no single team should commit to it as a KR. Find the behaviour one level below ARR that your team actually influences, then write the OKR about that.

05 / Retention

From generic churn reduction to a specific problem window.

Weak 7 / 100. Critical issues

Reduce churn and improve retention across our customer base.

  • Reduce churn.
  • Improve weekly active users.
  • Implement a customer health score dashboard by Q2.

Why it fails

  • KR1 has no baseline and no target. "Reduce churn" is a direction, not a result.
  • "Improve weekly active users" does not define what active means or who counts.
  • "Implement a customer health score dashboard" is a project task. The dashboard is the tool, not the outcome.
  • The Objective restates the same idea twice without adding scope.
Strong 87 / 100. Excellent

Stop losing customers in the 30-90 day window where disengagement becomes cancellation.

  • Monthly churn rate for customers in their first 90 days drops from 6.2% to under 3% (source: billing system cancellation data, cohort of all accounts activated in the measurement quarter).
  • Share of monthly active accounts (at least one core feature used) in the 30-90 day cohort moves from 41% to 62% (source: product event data, weekly snapshot).
  • Median number of days between last login and cancellation for churned accounts in the 30-90 day cohort increases from 8 days to at least 22 days (source: product event log joined with cancellation date, trailing 90-day window).

Why it works

  • The Objective pinpoints the problem window (30-90 days) rather than treating churn as a single undifferentiated problem. Day-1 churn and day-300 churn have completely different causes.
  • KR3 is particularly strong: it measures the early-warning signal (gap between last login and cancellation) rather than the lagging outcome. A team that extends that gap has more time to intervene.
  • All three KRs scope to the same cohort (30-90 day accounts), so they reinforce each other and tell a coherent story about one specific problem.
Load in Diagnose →

Coach note

Churn has a shape. Early churn is an activation problem. Mid-cycle churn is an engagement problem. Late churn is a value problem. Treating them as one thing produces OKRs that can't be acted on. Scope the problem window first, then write the KRs.

06 / Product quality

From fixing bugs to making quality invisible.

Weak 8 / 100. Critical issues

Improve the quality and reliability of the product.

  • Fix all critical bugs.
  • Achieve 99% uptime.
  • Improve app performance.

Why it fails

  • "Fix all critical bugs" is a task list, not an outcome. The point of fixing bugs is what users can do after.
  • "99% uptime" has no baseline. If current uptime is 98.9%, this is nearly no change. The number without context is meaningless.
  • "Improve app performance" has no baseline, no target, no metric, and no scope.
Strong 85 / 100. Excellent

Make product quality invisible to users: no crashes, no slowdowns, no missing features for a full quarter.

  • P0 and P1 bug reports from production drop from an average of 14 per week to under 3 per week, sustained for at least 8 consecutive weeks (source: Jira bug tracker, production severity labels).
  • Median page load time for the three highest-traffic flows drops from 3.8s to under 1.4s on a simulated 4G connection (source: Lighthouse CI in deployment pipeline, p50 across weekly sample).
  • User-reported errors via in-app feedback drop from 47 per week to under 10 per week, measured over the final 6 weeks of the quarter (source: in-app error form submissions, production environment only).

Why it works

  • Each KR specifies a window of sustained performance, not a point-in-time snapshot. Requiring 8 consecutive weeks below a threshold prevents a single good week from declaring success.
  • KR2 names the measurement instrument (Lighthouse CI) and the connection type (4G), making the result reproducible and contestable. Anyone on the team can re-run the check.
  • KR3 uses user-reported errors as a leading signal of quality from the customer's perspective, which is harder to game than internal bug counts alone.
Load in Diagnose →

Coach note

"Fix all critical bugs" is the quintessential binary milestone. On day one of Q4 you either have zero critical bugs or you do not. It tells you nothing about whether users had a better experience this quarter than last. Write what changes for users, not what your team does.