How to build an OKR dashboard that tracks against live data
Max Musing
Max MusingFounder and CEO of Basedash
· August 19, 2026

Max Musing
Max MusingFounder and CEO of Basedash
· August 19, 2026

An OKR dashboard is a single view that shows every key result next to four numbers: where it started, where it needs to end, where it is now, and where it should be by this point in the quarter. The point is not to look busy. It is to answer one question at a glance: are we on pace to hit this, and if not, which key result is slipping? The best versions pull their current values straight from the systems that already hold the data, so the numbers move on their own instead of being retyped before every check-in.
This guide is for founders, operators, and analysts who run OKRs and are tired of the ritual of copying metrics into a slide the night before a review. It covers what separates a key result you can actually track from one you cannot, an original four-number model for scoring pace, how to wire each key result to a real data source, how to lay the dashboard out, the mistakes that quietly make it useless, and when a dashboard is the wrong tool for the job.
OKRs and KPIs are related but not the same, and mixing them up is the fastest way to build a confusing dashboard. A KPI is a metric you watch continuously because it reflects the ongoing health of the business: monthly recurring revenue, gross margin, weekly active users. An objective is a time-boxed ambition (“make onboarding feel effortless”), and its key results are the specific, measurable outcomes that would prove you got there (“raise activation from 32% to 45% this quarter”).
The practical difference is that a KPI has no finish line and a key result does. A KPI dashboard tracks a number over time; an OKR dashboard tracks progress toward a target inside a window. Many key results are built on top of a KPI you already track, which is fine, but the dashboard should frame it as movement toward a goal, not just a line that drifts. If you want the deeper distinction, see our breakdown of KPIs vs metrics.
Not every key result can live on a dashboard, and forcing the ones that cannot is why so many OKR trackers rot. Before a key result earns a row, it should pass four tests:
A useful gut check: mix leading and lagging results within an objective so the dashboard warns you early instead of only confirming the miss at the end. If an objective is all lagging outcomes, you will not know you are behind until it is too late to act. Our guide to leading vs lagging indicators covers how to pair them.
Most OKR trackers show two numbers, current and target, and a percentage. That percentage lies, because it ignores time. A key result at 60% attainment is great in week 11 and a fire in week 2. To make the dashboard honest, give every key result four numbers:
The expected value is the piece almost everyone skips, and it is the one that turns a status color from a guess into a calculation. Compute it as:
expected = baseline + (target - baseline) * fraction_of_period_elapsed
Then compare current against expected. If current is at or ahead of expected, the key result is on track. If it is meaningfully behind, it is at risk, regardless of how good the raw attainment percentage looks. Here is the model applied to a real-looking set of key results, seven weeks into a thirteen-week quarter (roughly 54% elapsed):
| Key result | Baseline | Target | Current | Expected by now | Status |
|---|---|---|---|---|---|
| Raise activation rate to 45% | 32% | 45% | 41% | 39% | On track |
| Cut p95 latency to 400ms | 800ms | 400ms | 640ms | 585ms | At risk |
| Grow paid seats to 5,000 | 3,800 | 5,000 | 4,150 | 4,450 | Behind |
| Reach 90% CSAT | 84% | 90% | 89% | 87% | On track |
Notice that seats look fine at 4,150 in isolation, but against an expected 4,450 they are behind pace, and the dashboard flags it while there is still time to react. That is the entire value of the fourth number.
The difference between a dashboard people trust and a spreadsheet people ignore is where the current value comes from. Every key result should map to exactly one query or metric definition, so there is no ambiguity about what “current” means. Work through your key results and tag each with its source:
For anything that lives in a database, the current value is just a saved query. A latency key result, for example, reduces to a single number your dashboard can refresh on a schedule. You can even push the pace logic into SQL so the status is computed, not eyeballed:
with kr as (
select
0.32 as baseline,
0.45 as target,
(select activated::float / nullif(signups, 0)
from activation_this_quarter) as current_value,
extract(day from now() - date '2026-07-01')
/ extract(day from date '2026-09-30' - date '2026-07-01') as elapsed
)
select
round(100 * (current_value - baseline) / (target - baseline)) as attainment_pct,
round(100 * (baseline + (target - baseline) * elapsed), 1) as expected_pct,
case
when current_value >= baseline + (target - baseline) * elapsed then 'on track'
else 'behind'
end as status
from kr;
Key results that cannot be reduced to a query (“close the Acme deal”) are still valid OKRs, but they belong in a checklist or your OKR process tool, not on the data dashboard. Trying to force them in is what leads to manual updates, and manual updates are what kill the whole thing.
Structure the dashboard the way OKRs are structured: objectives as sections, key results as rows underneath. Google recommends three to five objectives with about three key results each, which is a good ceiling for a single view. Beyond that you are looking at a list, not a dashboard.
For each objective, show a short title and a rolled-up status. For each key result underneath, show the four numbers, a status color, a small trend line since the quarter started, and the owner’s name. A few layout choices that consistently help:
The reason to build this in a tool connected to your data, rather than a slide, is that the review meeting stops being a data-entry chore. Pointed at your production database or warehouse, a tool like Basedash can hold the saved query behind each key result and refresh the whole board on its own, and a non-technical owner can open the dashboard, filter to their objective, and ask a follow-up question (“why did seats stall in week 5?”) without waiting on an analyst. If you have not chosen the objectives yet, our framework for picking a north star metric pairs well with this.
There are three common places to track OKRs, and they solve different problems. Dedicated OKR software runs the ceremony; a spreadsheet is the zero-setup default; a BI or dashboard tool keeps the numbers live. Many teams end up using two: one to manage the process, one to hold the data.
| Approach | How key results update | Best for | Main limitation |
|---|---|---|---|
| OKR software (Lattice, Viva Goals, Weekdone) | Manual entry, some integrations | Check-ins, alignment, and ownership across many teams | Values are often typed in by hand and drift from source data |
| Spreadsheet or slide | Manual | A first quarter, or a very small team | Stale the moment you close it; no live source or history |
| BI or dashboard tool (Basedash, Tableau, Looker) | Query against source systems | Key results that map to metrics in a database or warehouse | Does not run the OKR process itself (check-ins, grading workflow) |
If your key results are mostly data-backed, the dashboard is where the truth lives, and a lightweight process doc handles the rest. If your OKRs are heavy on qualitative or project outcomes, lead with process software and accept that some numbers will be manual. The honest read: OKR software is for running the ritual, and a BI tool is for making sure the numbers in that ritual are real.
Skip the live dashboard when your key results are inherently manual or one-off: closing a specific partnership, shipping a launch, hiring a role. Those are real key results, but they update once and do not benefit from a refreshing chart. A shared doc or your OKR tool tracks them fine.
It is also premature if you have not agreed on how each key result is measured. A dashboard built on contested definitions (“what counts as active?”) will generate arguments, not decisions. Settle the metric definitions first, ideally in a metric tree or semantic layer, then build the view on top of numbers everyone already trusts.
A KPI is an ongoing health metric with no finish line, like MRR or weekly active users. An OKR is a time-boxed goal: an objective plus the measurable key results that prove you reached it, such as “raise activation from 32% to 45% this quarter.” Key results are often built on a KPI, but the dashboard frames them as progress toward a target inside a window, not just a number drifting over time.
If the key results are backed by queries, refresh the underlying data at least daily so the numbers are current for any check-in. The OKRs themselves are usually set quarterly and reviewed weekly or biweekly. The advantage of a data-connected dashboard is that the values update on their own between reviews, so the meeting is about deciding what to do, not about entering data.
Google’s guidance is three to five objectives with about three key results each, which is a sensible ceiling for one view. That keeps the total in the range of nine to fifteen rows. More than that and the dashboard becomes a task list, which dilutes focus and makes it hard to see what is actually at risk.
No. OKRs are a focus and alignment tool, not a performance evaluation. When teams set stretch goals, the expected outcome is around 60 to 70 percent attainment, so treating anything below 100 percent as failure encourages people to set unambitious targets. Grade OKRs honestly and consistently, and keep them separate from individual reviews.
Yes, and for data-backed key results it is the most reliable option, because the current value is a live query rather than a hand-entered number. Point a BI tool at your production database or warehouse, save one query per key result, and let it refresh on a schedule. Keep read access scoped and, where needed, query a replica or a reporting copy so dashboards never load the primary database.
Written by

Founder and CEO of Basedash
Max Musing is the founder and CEO of Basedash, an AI-native business intelligence platform designed to help teams explore analytics and build dashboards without writing SQL. His work focuses on applying large language models to structured data systems, improving query reliability, and building governed analytics workflows for production environments.
Basedash lets you build charts, dashboards, and reports in seconds using all your data.