Introduction to Cost Capitalization

Last updated: March 17, 2026

Cost capitalization helps you understand which engineering projects qualify as innovation (capitalized) versus infrastructure and maintenance (non-capitalized).
This distinction matters because companies can receive R&D tax credits for capitalized, innovation-related work.

Traditionally, Finance teams ask Engineering Managers (EMs) to classify work manually—usually with spreadsheets—into capitalized vs. not capitalized categories, which can be time consuming and painful.


Those classifications are later translated into FTE (Full-Time Equivalent) costs to understand how much time and money go toward innovation versus “keep-the-lights-on” (KTLO) work.

With Span, this process becomes easier, more consistent, and more transparent. Span streamlines this process by connecting real engineering activity — commits, PRs, tickets, calendar data — to cost and classification logic, producing structured, auditable capitalization data.

Key Benefits

Benefit

Description

Automated Classification

Ties real engineering work to project classifications — no manual input required

R&D Tax Credit Support

Produces auditable capitalized vs. non-capitalized breakdowns for tax compliance

Cost Transparency

Shows FTE costs disaggregated by project, team, and person

Consistency & Auditability

Rules-based classifications replace manager-dependent spreadsheets

Finance-Ready Reporting

Downloadable reports structured for accounting and finance review

Privacy-Preserving

Individual salaries are never exposed — costs shown as aggregated averages

How Cost Is Calculated

Span estimates costs using job level/title salary benchmarks configured by an admin. The simplified formula is:

Capitalized Cost =
  (Annual Salary / 250 FTE days)
  × Assigned FTE Days
  × Capitalization %
  × OOO Adjustment (if applicable)

FTE days are inferred from actual work signals: commits, PRs, code reviews, and tickets.

Core Features

1. Work Classification Sources

Work can be classified and organized through three methods:

  • Jira Epics / Initiatives — map directly to capitalization status via a Jira field

  • AI-Inferred Workstreams — Span automatically groups work based on observed activity patterns, which can then be mapped to actual projects

2. Capitalization % (Partial Capitalization)

Each project/epic can have a custom capitalization percentage (default: 100%). Finance teams can configure these by job level, project maturity, or internal policy — e.g., "only 80% of QA work is capitalized" or different rates for ICs vs. managers.

3. Start/End Date Windows

Capitalization windows can be defined per Epic via Jira field mappings — for example, only capitalizing work after a project reaches GA.

4. Excluded Work Handling

When work falls outside the capitalization window (by % or date), three strategies are available (configurable in your cost Cap Settings)

Strategy

Behavior

Uncapitalized (recommended)

Excluded FTE days reclassified as non-capitalized

Redistribute, otherwise uncapitalize

Redistributes days to overlapping projects; remaining is uncapitalized

Redistribute, otherwise hide

Same redistribution, but unallocated time is hidden entirely (not recommended)

Redistribution windows can be set at day, week, month, or quarter granularity. Week-level redistribution achieves ~90% success rate.

5. OOO Time Handling

OOO time from HRIS or calendar integrations is factored in automatically. If a person has both OOO time and productive work on the same day, Span rescales upward — the full day's salary cost is attributed to the actual work rather than being artificially reduced.

Integrations

Integration

Purpose

Jira / Linear

Epics, Initiatives, project hierarchy, custom capitalization fields

GitHub / GitLab / ADO

Commits, PRs, reviews → inferred FTE allocation

Calendar

OOO time and holidays for FTE adjustments

HRIS

Job levels/titles, OOO/vacation data for cost estimation

Operational Workflow

  1. Setup — Admin configures salary benchmarks by job level, maps Jira fields (status, start/end dates), and selects exclusion method and redistribution window

  2. Classification — Work is automatically classified based on Epics, Workstreams, or Initiatives; exclusion rules applied

  3. Review — Engineering Managers or Finance can review and override classifications or adjust capitalization %

  4. Reporting — Download Finance-ready reports showing FTE days, costs, and capitalization status by

🧭 What You Can Do in Span

Span lets you view and classify work directly from your connected data sources:

  • View projects by Project, Team, or Person

  • Mark work as Capitalized or Non-Capitalized

  • Download reports for Finance to calculate cost and ROI

Span uses the Cost Estimates defined in your Settings, based on:

  • Job Level or Job Title

  • Average annual salary (entered by an admin)

Note: Span does not expose individual salaries — cost data is shown as aggregated averages to provide directional ROI insights, and you can hide cost data from certain personas in your roles and permissions settings.

💡 Why This Matters

Before Span, teams rely on “back-of-the-napkin” calculations because consistent, structured data is hard to maintain.


Span automates this process by tying together real work artifacts (commits, PRs, tickets, etc.) with cost and classification logic.

A Step by Step Guide to Cost Capitalization Settings:

You can populate your Cost Capitalization table in two ways:

  1. Through Epics from your project management system (e.g., Jira)

  2. Through Initiatives from your project management system (e.g. Jira)

  3. Through AI-Inferred Workstreams, which Span automatically groups based on observed activity

Handling Excluded Work

In some cases, not all work on a project should be capitalized. Span provides two adjustment methods in the Cost Capitalization Work Table:

1. Capitalization %

By default, this is set to 100%, but you can override it to reflect partial capitalization.
Finance teams often set these rules based on:

  • Job Level

  • Project maturity or GA status

  • Internal capitalization policies

2. Start and End Date Exclusion

You can exclude work from capitalization based on Epic start/end dates — for example, only capitalizing work after a project reaches GA.

Note: Date-based exclusion is configured at the Epic level.

🧮 Options for Handling Excluded Work

When work is excluded in the Work Table (either via % or date filters), Span gives you three options:

  1. Uncapitalized (Recommended)
    Excluded FTE days are reclassified as non-capitalized work.

  2. Redistribute where possible, otherwise show as non-capitalized
    Excluded FTE days are redistributed to overlapping projects when possible; otherwise, they appear as non-capitalized.

  3. Redistribute where possible, otherwise hide
    Same redistribution logic, but any remaining excluded time is hidden entirely.

    We don’t recommend this option, as it can obscure your total work picture.

🔄 Redistributing Excluded Work

If you choose to redistribute excluded time, Span lets you define how far back or forward to look for overlapping work:

  • By Day

  • By Week

  • By Month

  • By Quarter

This setting determines the timeframe Span uses to identify overlapping projects for redistribution.

🧱 Epic Configuration

If your Jira projects already use a “Capitalization Status” tag, you can map that field in Span. Span will then automatically recognize which Epics are capitalized versus not.

Capitalization Start and End Dates

You can also define which fields in Jira determine the start and end of capitalization for each Epic.

🤖 Classifying Work with AI-Inferred Workstreams

If you’re using Workstreams instead of Epics for Cost Capitalization, all the same exclusion and redistribution options apply.

You can calculate FTE days in two ways:

  1. Inferred from observed events
    (commits, PRs, reviews, tickets, etc.)
    → Requires mapping AI-inferred Workstreams to your actual projects.

  2. Supervisor-Approved FTE Days
    Engineering Managers review and validate project allocations, overriding percentages or reassigning days if needed.

Note: If Workstreams haven’t been mapped to projects, Span defaults to classifying work by Jira Epics.

Q&A

Q: Can I map work by Initiative instead of Epic?
A: Yes. In Investment → Cost Cap, click the Display button and choose Show Jira Initiatives.
This adds a column for Initiatives in the Work Table, which you can sort or filter as needed.

Summary
Cost Capitalization in Span brings together your engineering activity, financial estimates, and project metadata to create a consistent, auditable view of R&D investment.


By automating data ingestion, classification, and exclusion logic, Span replaces spreadsheets and guesswork with structured insight.