Skip to main content

How to improve your coverage

Get more of your AI spend attributed to real work: connect every AI tool you use, connect GitHub, and ship your work through merged pull requests.

Written by Alex C

How to improve your coverage

Your coverage is the share of your AI spend that ATTRIBUT can trace to real work. To raise it, do three things: connect every AI coding tool you actually use, connect GitHub so your commits and pull requests link up automatically, and keep shipping — a session's attribution strengthens as ATTRIBUT finds a matching commit and then a pull request (PR) for it, and the Overview page's shipped-work figures only count a pull request once it has actually merged.

The three attribution states, in brief

Every session ATTRIBUT captures sits in one of three states, shown on the session's detail panel as "Attribution · Linked", "Attribution · Inferred", or "Attribution · Unlinked". They track how much evidence ATTRIBUT has tying the session to a real commit and pull request — not whether that pull request has merged.

State

What it means

Linked

The strongest state. ATTRIBUT resolved the session's commit to one or more pull requests and lists them so you can click through to GitHub. A listed pull request doesn't have to be merged yet — it just has to exist and contain that commit.

Inferred

ATTRIBUT matched the session to a real repo and commit — usually by parsing the branch name — but hasn't found a pull request containing that commit yet. The commit is real, so this isn't the same as Unlinked; the session upgrades itself to Linked automatically once a matching pull request turns up.

Unlinked

No repo or commit could be matched to the session at all. The detail panel just shows "No linked work." This usually means the tool that ran the session isn't connected, or GitHub isn't connected yet.

Merging a linked pull request doesn't change a session's Linked/Inferred/Unlinked state — it's what makes that work count in the Overview page's shipped-work figures (see the third step below).

In the session list, a small chip on each row gives the same signal at a glance: it reads "Unlinked" when there's no repo, shows the repo name plus a PR number once a session is Linked (with a "+N" if it touched more than one PR), or shows the repo name plus a short commit SHA while a session is still Inferred.

1. Connect every AI coding tool you use

ATTRIBUT can only meter and attribute sessions from tools it's actively watching. If you run one AI coding tool with the connector installed and another without it, every session from the unconnected tool is never captured in the first place — it won't even show up as "Unlinked," it simply won't exist in ATTRIBUT. That's the biggest coverage gap of all, and it has nothing to do with linking: it's fixed purely by connecting the tool. See "Connect your AI tools to ATTRIBUT" for setup steps for each supported tool.

Until ATTRIBUT has captured a first session at all, the Sessions page shows a connect screen listing which tools are supported today (with tools still on the roadmap marked "Soon"). Once you've run the connector, click "I've run it — check for sessions" on that screen; it polls for your first captured session, and once one turns up, "View my sessions" takes you straight to your session list.

2. Connect GitHub so commits and PRs link automatically

A session can only move out of "Unlinked" once ATTRIBUT has your repo history to compare it against. Until you connect GitHub, both the Sessions and Overview pages show a banner — "Connect GitHub to see what your spend shipped" — noting that the connection is read-only on pull requests and metadata, and never touches your source code. Once GitHub is connected, that banner disappears on its own; there's nothing to dismiss or configure further. See "Connect GitHub" for setup steps.

3. Ship your work: open pull requests, then merge them

Even with your tools and GitHub both connected, a session sits at Inferred until ATTRIBUT can tie its commit to an actual pull request. Opening that pull request is what flips the session from Inferred to Linked — it doesn't need to be merged yet. But Linked isn't the finish line: the Overview page's "Merged PRs" figures and its cost-per-merged-PR footnote count only pull requests that have actually merged, so a Linked session sitting on a still-open PR won't show up as shipped there until it does.

The Overview page tracks the flip side of this in its "Exploration" figure: the percentage of your tokens spent on work that hasn't merged yet. Some exploration is normal, especially on greenfield work, but that percentage falls as more of what you built lands in a pull request. Practically, the fastest way to raise your coverage isn't a setting inside ATTRIBUT — it's shipping: keep branches short-lived, open pull requests promptly, and merge them instead of letting finished work sit unmerged.

Where to check a session's attribution

Open any session on the Sessions page to see its Attribution panel. Linked sessions list every pull request they belong to, each a link out to GitHub, whether that PR has merged or is still open. Inferred sessions show the matched repo and commit, with a link to that commit on GitHub. Unlinked sessions show "No linked work" — work through the two connection steps above to give ATTRIBUT a commit to match, then open a pull request for it to move the session from Inferred to Linked.

Did this answer your question?