Making the connection between epics and results visible

The goal is to make reporting upward require zero writing. When a stakeholder asks “how are we tracking against the reliability OKR?”, the answer should be a link, not a paragraph you compose from memory.
The way to get there is to make the Objective → Key Result → Epic chain visible in your tools. Chapter 1 described the chain. This chapter covers how to wire it in Jira and surface it in Confluence.
Every Epic in Jira that contributes to an OKR should say so in its description. A simple format that works:
OKR: [Objective name]
Key Result: [KR text and target]
What this Epic does: [one sentence]
This is not bureaucracy. It is the difference between being able to answer “why does this Epic exist?” in a meeting and having to go find the person who created it.
When Epics reference their Key Results, you can query them in Jira by searching for the KR text in Epic descriptions, or by using a label or custom field if your team sets that up. Either way, pulling a report of “all Epics contributing to KR2” becomes a search rather than a memory exercise.
With Jira and Confluence linked, you can pull live Jira data directly into a Confluence page using the Jira Issues macro. The result is a page that updates automatically as work progresses, without anyone maintaining it manually.
JQL lets you filter exactly which issues appear. Some useful queries for OKR reporting:
Show all Epics in a project with a specific label:
project = "MYPROJECT" AND issuetype = Epic AND labels = "okr-reliability-q3"
Show open issues assigned to your team under a specific Epic:
"Epic Link" = PROJ-42 AND status != Done ORDER BY priority DESC
Show everything updated in the last 7 days in a project:
project = "MYPROJECT" AND updated >= -7d ORDER BY updated DESC
The most useful pattern for OKR reporting is to label every Epic with a tag that identifies the Key Result it contributes to, then query by that label in Confluence. One Confluence page per OKR, each showing the live status of its contributing Epics.
When you refresh the Confluence page during a review meeting, the data is current without anyone having prepared a report. That is the point.
A complete setup looks like this:
okr-[kr-slug]).The effort is upfront in the setup. After that, the tools do the tracking.