Internal operations

Goal and OKR tracking for a growing company

Teams set quarterly objectives with measurable results and update progress weekly. Everyone can see every team's goals, but only the owner can change a result. At quarter end the system shows what was hit, missed, and quietly abandoned.

Automatically generated draft

Written by machine against our own engineering playbook. The company is invented; the decisions are the ones we would make on a real build. A reviewed blueprint goes further — nine sections, agreed line by line, and it is what the build is tested against.

Section 01 · What has to work

Teams must be able to publish quarterly objectives and update key results weekly so that organizational progress is visible to everyone while write access remains strictly locked to owners.

Section 03 · Screens

Every screen, and what it is for.

  • ›Dashboard — Any authenticated user views all team goals, and the global metrics rollup must be instant.
  • ›Objective Detail — Any user views target breakdowns, historical updates, and comments, and rendering the update feed must be instant.
  • ›Objective Editor — Team owners create or edit objectives and key results, and saving draft changes must be instant.
  • ›Quarter Review — Executives view hit, missed, and abandoned outcomes, and filtering by quarter must be instant.

Anything not on this list is not in version one. That is what keeps a fixed price fixed.

Section 04 · The data model

What it stores, and who can read a row.

teams

id uuid, name text, created_at timestamptz

Access · All authenticated users can read any team row.

objectives

id uuid, team_id uuid, title text, quarter text, status enum(active, completed, archived), created_at timestamptz

Access · All authenticated users can read objectives for any team.

key_results

id uuid, objective_id uuid, owner_id uuid, title text, start_value numeric(10,2), target_value numeric(10,2), current_value numeric(10,2), status enum(on_track, off_track, abandoned), updated_at timestamptz

Access · All users can read key results; only the designated owner_id can update current_value.

progress_updates

id uuid, key_result_id uuid, author_id uuid, previous_value numeric(10,2), new_value numeric(10,2), comment text, created_at timestamptz

Access · All authenticated users can read progress updates across all key results.

Those access rules belong in the database, not in the screens. Someone who edits the address bar still cannot read a row that is not theirs — and the test that proves it blocks delivery if it fails.

Section 05 · States

draft → active → completed | missed | abandoned

Most scope arguments three weeks into a build are really arguments about a state nobody named at the start.

Section 06 · Where this breaks

What bites products like this one.

Key result owners fail to submit weekly progress updates, rendering historical trend charts flat and inaccurate.

Automate slack or email reminder pings every Friday afternoon for any key result without a weekly update.

Quarter boundaries overlap or shift, causing objectives assigned to past quarters to mix with active reporting views.

Enforce strict strict ISO quarter string formats (e.g., '2025-Q1') at the database constraint level.

Section 08 · Deliberately left out

What version one does not do.

  • ×Automated HR directory syncing — manual team creation is faster for v1, and auto-sync makes sense when headcount churn exceeds 20 per month.
  • ×Rich-text markdown formatting in update comments — plain text saves parser overhead, and markdown makes sense when teams demand embedded images.

This is the section that protects the date, and the only place in the document where somebody says no. It is also why clients trust the rest of it.

Still open

What we would ask before quoting.

  • How should the system distinguish between a key result that was intentionally abandoned versus one that was simply neglected and quietly missed at quarter end?
  • Should team owners be able to transfer key result ownership to another user mid-quarter, or does that require admin intervention?

Your product, not this one

Get this written for what you are actually building.

Describe it in a sentence and the generator returns the same sections for your own product. Free, no email, nothing saved to a list.

Next step

Find out if your idea fits in 10 working days.

Tell us what you want to build. We reply the same day with a straight yes, no, or here is what we would cut.

NDA available on request