← All posts
Integrations   Jun 25, 2026 · 7 min read · by Peter Vin

Connect Jira to company OKRs so progress reflects delivery

Your OKR dashboard says the key result is 65% complete. The epic that is supposed to deliver it has not moved a story point in three weeks. Both numbers sit in tools you pay for, and neither one knows about the other. Someone typed 65% into the goal field on Friday because it felt roughly right, while the Jira board carried on in a different browser tab.

That gap is the whole problem with connecting Jira to OKRs, and "we have a Jira integration" almost never closes it.

"We integrate with Jira" is a claim, not traceability

Most goal tools list Jira on their integrations page. Open the settings and you usually find one of two things. Either the tool pulls a count of tickets and prints it on a card, or it lets you paste a Jira link into a comment field. Both feel like a connection. Neither gives you traceability.

Traceability is a specific chain: this key result is moved by these epics, the epics contain these issues, and the issues have a status right now. When an executive asks what is happening on the top objective, you should be able to drill from it into the open tickets and their real state without opening a second tool. If the answer lives in someone's head or a weekly export, you have an integration. You do not have traceability.

The point of wiring the two systems together is to stop trusting self-reported percentages. A number typed into a goal field is a claim. A number derived from the state of the work is evidence.

Model the work layer before you configure anything

Before touching a sync setting, decide what in Jira corresponds to what in your goal model. Get this modelling decision wrong and the rollout produces noise instead of signal.

A workable default: the company objective sits at the top, each key result under it is measurable and owned by one person, and below the key result one or more Jira epics hold the work expected to move it. Issues stay under the epics where they always have. You are not asking engineers to change how they use Jira, only drawing an explicit line from the epic they already maintain to the result it serves.

Two rules keep this clean. An epic maps to one key result, never several, so progress is not double-counted across goals. And a key result with no epic under it is a flag worth chasing: someone plans to hit a target with no work scoped to get there.

Revenue and finance goals usually live outside Jira, so you repeat this exercise for every tool in your integrations stack.

The manual roll-up trap

Here is the pattern that quietly consumes a PMO or a Chief of Staff. Every Friday, someone opens Jira, counts what closed, opens the goal tool, and updates the percentages by hand. It works for a month. Then the company adds two teams, the objective count doubles, and the roll-up becomes half a day of copy-paste that is stale by Monday standup.

Manual roll-ups fail in a particular way. Beyond the time cost, they insert a human judgment step between the work and the reported number, and that step is where optimism creeps in. The person rounds up. The result looks healthier than the tickets justify, and by the time the truth surfaces you have burned a quarter of runway on a bet that was never really moving.

The fix is structural. Remove the transcription step, so reported progress is computed from ticket state on every refresh rather than retyped by someone who wants the number to look good.

What good bidirectional sync actually does

Bidirectional is the word that separates a real connection from a dashboard decoration. Two things hold at once.

Work state flows up. When epics close and issues move, the key result recalculates without anyone retyping it. Progress and risk are derived from delivery. If the epic stalls, the result turns amber because the work stalled, not because someone remembered to flag it.

Goal context flows down. An engineer looking at an epic can see which company objective it serves and who owns the outcome. That is what stops the quiet drift where a team keeps shipping tickets that stopped mattering two planning cycles ago.

Get both directions working and the OKR review changes character. You stop arguing about whose percentage is right and start discussing the objectives where real work has gone missing. This is also the backbone of strategic initiative management: an initiative spanning several quarters must read progress from the work, because self-reported status over a long horizon is almost always wrong. If you are still designing the goals, our OKRs primer covers single-owner design and measurable key results.

Connecting delivery to goals is the exact problem Vindaris was built for, with progress and risk read from the work rather than typed into a field.

FAQ

Should every Jira issue map to a key result? No. Map at the epic level. Tying every issue to a company key result creates heavy overhead and pushes teams to file tickets against goals instead of against work. Epics are the right altitude: coarse enough to stay maintainable, specific enough to show whether a result has real delivery behind it.

How do we handle key results that Jira cannot measure, like revenue? Route them to the system that owns the number. Revenue comes from your CRM, hiring from your ATS. Jira handles product and delivery work. A goal system worth using connects to each source rather than forcing every result through a tool that was never designed to hold a revenue figure.

What happens to the mapping when engineers restructure their epics? This is why the link should live at a stable layer and have an owner, not be set once and forgotten. When a team splits or renames an epic, the connection to the key result must follow. Bidirectional sync helps, because the goal context is visible inside Jira, so the engineer reworking the board sees the link before breaking it.