Problem it solves: gives a full, opinionated OKR lifecycle that enforces bets-not-tasks, value-not-effort, binary scoring and the 80% owner pass rule - instead of vibes - with a quality rubric gate so weak OKRs never ship.
Drafts a quarter's OKRs from a need-first interview, runs a mandatory quality-rubric gate, then writes Outcomes, opening check-ins and Initiatives to Tability after explicit confirmation. Pushes back when a "KR" is really a task.
- Resolve the Tability planFetches the account's Client DB row and Tability workspace, creating the plan shell if it does not exist yet.
- Frame the bets firstRuns a need-first interview - what 1-3 bets the account is making, what problems they solve, what success looks like.
- Turn each need into metricsWrites the qualitative objective, identifies value drivers, and defines measurable KRs with initial and target values, gated against the rubric.
- Present a copy-paste draftShows the objectives and KR matrix (outcome type, score format, initial, target) for EM review or straight-to-Tability.
- Create outcomes and initiativesAfter the EM confirms, writes the Outcomes with opening check-ins and auto-creates Initiatives for milestones and TBD baselines.
Gotcha: It never invents an initial value - if a baseline is unknown it pauses and asks rather than guessing.
Gotcha: Activity-shaped KRs ("run the workshop") are demoted to Initiatives - the headline KRs stay outcomes.
Mid-quarter check-in. Pulls the plan, computes pace per Outcome by type, runs the off-track escalation chain and an 80% "pass-the-quarter" simulator, then posts a per-KR check-in anchored to the previous one.
- Pull the current plan stateFetches the Tability plan with each Outcome's two latest check-ins, scores, and Initiatives in one call.
- Compute pace per outcomeCalculates actual vs expected progress and infers confidence (on track / at risk / off track) from elapsed days and metric deltas.
- Run the escalation chainFlags any KR off-track or at-risk for two consecutive cycles, which triggers a meeting request within five business days.
- Simulate the 80% quarterProjects each KR's final score at current pace, computes the owner pass rate, and names the KRs that would flip the result.
- Post per-KR check-insAnchors each check-in on the prior state, captures the new state, and posts it after the EM confirms.
Gotcha: It quotes full KR titles verbatim in every output - never abbreviated or paraphrased.
Gotcha: Early-quarter projections (under ~15% elapsed) are unreliable and are suppressed or labelled low-confidence.
End-of-quarter close. Computes binary pass / fail per Outcome, applies the 80% owner pass rate, posts final check-ins and closes open Initiatives. Pulls full history for stay-above / stay-below KRs to catch mid-quarter red dips.
- Pull the full historyFetches the plan and all Outcomes; for stay-above / stay-below KRs it pulls the whole check-in history to catch mid-quarter red dips.
- Flag stale and TBD KRsIdentifies KRs never updated from their initial value or with null targets, asking the EM for a final value or to close as Deferred.
- Compute pass / fail per KRApplies the outcome-type pass condition to each KR, asking about historical red dips on stay-above / stay-below KRs.
- Compute the 80% owner pass rateFilters the EM's KRs in the plan and passes the quarter only when at least 80% passed, naming the gap.
- Post final check-insAfter the EM confirms the rationale and lessons, writes the closing check-in per Outcome, settles Initiatives, and logs to the Account Changelog.
Gotcha: The 80% rule is scoped per sub-plan, not pooled across sub-plans or per-objective.
Gotcha: A conditional KR that was never activated is closed as Deferred with a note, never scored as a FAIL.
A read-only quality audit. Grades a live plan or a pasted draft against the shared rubric, tags each finding Blocker / Warning / Nit, and gives at least two concrete before → after rewrites per flagged item. Returns SHIP-READY or NEEDS WORK.