Skip to main content

Goals & OKRs

Set objectives with measurable key results, track progress visually, and let task completions auto-advance your goals.

Dashboard

The top of the Goals page shows summary cards:

CardValue
Activecount of goals with status active
Completedcount of goals with status completed
Avg Progressmean progress % across all goals
Overduecount of goals past their target date (red, shown only when > 0)

Creating a Goal

Click New Goal to open the dialog.

FieldRequiredNotes
Objective (title)yesdisables Save when empty
Descriptionnomultiline
Target Datenodate picker; drives the "days remaining" chip

Key Results

Add key results manually via + Add, or click AI Suggest to auto-generate measurable KRs from your objective title and description. Each key result has:

PropertyDefault
Titleempty
Target100
Current0

AI Suggest calls goSvc.suggestKeyResults(title, description) and populates the form with the returned suggestions.

Goal Cards

Each goal is rendered as a card with:

  • ProgressRing — SVG circular indicator, color-coded by status
  • Status toggle — cycles active → paused → completed → active; transitioning to completed forces progress to 100%
  • Title — strikethrough when completed
  • Chips — linked task count (done/total tasks), days remaining (red if past due, amber if ≤ 7 days, default otherwise)
  • Key Results — indented list with title, current/target label, LinearProgress bar (green at 100%, blue otherwise), and a + increment button

Progress Calculation

Overall goal progress is the mean of per-KR completion percentages:

progress = round((Σ min(current/target, 1)) / krCount × 100)

Clicking + on a key result increments current by 1 (capped at target) and recalculates progress immediately.

Status Groups

Goals are grouped by status: Active, Paused, Completed. Each group header is collapsible. Active goals are sorted ascending by progress (lowest first — the ones that need the most work appear at the top).

StatusColorLabel
active#3b82f6In Progress
paused#f59e0bPaused
completed#10b981Completed

Linked Tasks

Each goal card shows a task count chip (done/total tasks). Task counts are fetched per-goal via goSvc.listTasksByGoal(goalId). When a linked task is completed, the backend auto-increments the associated key result progress.

Deleting Goals

Click the delete icon on any card. A window.confirm dialog asks for confirmation before calling goSvc.deleteGoal(id).