Setting Up Labeled Investment in Span

Last updated: October 27, 2026

Set up Labeled investment by creating an investment area and its categories, then writing rules that map your Jira issues to them.

Why it matters

Labeled investment shows how engineering effort splits across the categories your leadership already uses, such as 60% roadmap, 25% keep-the-lights-on, and 15% customer commitments, without timesheets. You get:

  • A breakdown of engineering effort (FTE-days) by category

  • Cost per category, if cost estimates are on

  • Trends in your investment mix over time, per team or org-wide

It fits teams that already tag Jira consistently, because every result traces back to a field you control. This article covers Labeled investment only. Rules you set up here don't affect Inferred investment, where AI sorts work into New features, Maintenance, and Developer experience. See How is work classified in the Labeled Investment report?

How it works

  1. You define an investment area: a top-level grouping, such as "Roadmap vs. KTLO."

  2. Inside the area, you define categories, such as "Q4 launch" or "On-call."

  3. For each category, you write rules on Jira fields.

  4. Span checks each issue against your categories from top to bottom and assigns the first one that matches.

  5. Commits, pull requests, and reviews linked to that issue count in its category.

Each issue gets exactly one category per area, so nothing is counted twice.

Setup

Before you start

  • Jira is connected to Span. Labeled investment reads Jira only. Linear, GitLab Issues, and Azure DevOps Boards don't feed it.

  • If you want rules on Jira custom fields, select those fields as categorization fields in your Jira integration settings (up to 10).

  • You have the Manage Investment permission in Span.

Step 1: Open Investment settings

Go to Settings → Investment. The Investment Mix Areas card lists your existing areas. Drag areas to reorder them, or use an area's menu to edit or archive it.

Step 2: Create an investment area

  1. Click Add Area.

  2. Enter an Investment Area Name, such as Roadmap vs. KTLO or Work Classification.

  3. Add your categories.

Most teams need one area. Create more if different audiences slice investment differently, such as one for product and one for infrastructure.

Step 3: Define your categories

You name the categories, so use the terms your leadership already uses. Some common examples:

Category

What it captures

Roadmap

Planned product work tied to this period's goals

Customer commitments

Work promised to specific customers

Defects

Bug resolution

Tech debt

Refactoring, cleanup, architecture improvements

Platform and DevOps

Infrastructure, tooling, CI/CD

Keep the lights on

Ongoing operational work and on-call

Security and compliance

Security hardening and compliance work

For each category, set a Name, a color for charts, an optional Description, and its rules.

Step 4: Write matching rules

Fields you can match:

Field

What it checks

Issue ID, Issue Title, Issue Priority

The issue itself

Issue Type

Story, Task, Bug, Subtask, or Epic

Source Issue Type

The issue type name as it appears in Jira

Issue Label

Labels directly on the issue

Issue Field

A Jira custom field on the issue

Project ID, Project Title

The issue's Jira project

Epic ID, Epic Title, Epic Label, Epic Field

The issue's parent epic

Initiative ID, Initiative Title, Initiative Field

The initiative above the epic

Operators, each with a negated form:

  • Is one of / Is not one of: exact match on any listed value, ignoring letter case

  • Contains one of / Does not contain: the value includes any listed text, ignoring letter case

  • Matches one of regex / Does not match regex: a regular expression, where letter case matters

  • Is empty / Is not empty

Combine conditions with AND and OR. As you build rules, the Issues preview shows which issues match.

Example rules:

Category: Roadmap
Epic Label  Is one of  "roadmap-2026"
  OR
Issue Field "Work Type"  Is one of  "Roadmap"

Category: Tech debt
Issue Label  Contains one of  "tech-debt"
  OR
Epic Title  Contains one of  "tech debt"

Span checks categories in order and the first match wins. Put specific categories above general ones, and catch-alls like "Keep the lights on" at the bottom.

Step 5: Configure the Other category (recommended)

The Other category captures all work that other categories haven't. Without it, unmatched issues drop out of the report. A growing Other share tells you your rules need work or new kinds of work have appeared.

Step 6: Save

Review your categories and save. Span reapplies your rules to all your Jira issues, and the results show in the report after the next processing run. Processing runs about every 3 hours.

View your results

Open Insights → Allocation → Labeled investment to see FTE-days by category, the trend over time, cost if cost estimates are on, and per-team or org-wide views. Click a category's value to see the activity behind it.

Things to know

  • One category per area. Each issue gets exactly one category in each area.

  • First match wins. Span stops checking at the first category that matches.

  • Subtasks inherit. A subtask with no match of its own takes its parent issue's category.

  • Issues get categories; epics and initiatives don't. Issues can still match on their epic's or initiative's fields.

  • Unmatched issues go to Other if it's on. Otherwise they're left out.

  • Unlinked work. Pull requests with no linked issue show as Unlinked.

  • Update timing. Span syncs Jira about every 2 hours and updates reports about every 3 hours, so a Jira change shows within about 5 hours.

  • Fixing a result. Edit the rules or the Jira field. Labeled results can't be changed item by item.

Worked example

An engineer's Tuesday touches two issues: ENG-1 in an epic labeled roadmap-2026, and ENG-2, a Bug with no matching epic. With the rules above plus a KTLO category (Issue Type Is one of Bug) placed below Roadmap, ENG-1 lands in Roadmap and ENG-2 in KTLO. Each gets 0.5 FTE-days. If you move KTLO above Roadmap, nothing changes for ENG-1, because it isn't a Bug.

Tips for a good setup

  1. Audit your Jira tagging first. Inconsistent labels and custom fields mean low coverage.

  2. Start with 4 to 6 categories. You can add more later.

  3. Use Other as a feedback loop. If a lot of work lands there, expand your rules.

  4. Name categories the way leadership talks.

Troubleshooting

  • Most issues land in Other: check that the fields you match are filled in consistently. Try Contains one of instead of Is one of for labels with variable formatting. For custom fields, confirm the field is one of your Jira categorization fields.

  • An issue is in the wrong category: a broader category higher up may be catching it. Move the more specific category above it.

  • A category shows zero issues: check spelling and spacing. Letter case doesn't matter for Is one of and Contains one of, but it does for regex. Jira Components aren't a rule field. If the field shows "This field has no synced data," resync your Jira integration.

  • Changes aren't showing yet: a Jira change waits for the next sync (about every 2 hours) and the next processing run (about every 3 hours), so allow up to about 5 hours. A rule change shows after the next processing run.

Related articles

How is work classified in the Labeled Investment report?

Allocation overview

Workstreams: AI-Powered Allocation, for teams without consistent Jira tagging

Jira Integration

Need help?

Contact your Span account team or reach out to support@span.app.