Documentation

Classifying engineering time as capex or opex

How SquadBear tags projects and work items so finance can turn logged hours into evidence

How SquadBear tags projects and work items so finance can turn logged hours into per-person, per-project evidence for R&D capitalization and tax relief (e.g. IAS 38, Poland's ulga B+R / IP Box, UK R&D relief, US §174).

How SquadBear models it

Classification runs on a single, tenant-defined axis of time categories. A new workspace starts with none; the Time categories card on Workspace settings → Time tracking adds your own, or seeds a ready-made pair with one click - CAPEX / OPEX is one preset (Billable / Non-billable and R&D / Routine are the others). Everything below uses the CAPEX/OPEX preset as its running example, but the mechanism is identical whatever categories you define.

A category applies in two places: a project-level default (a category, or unset) and an optional work-item-level override that can also be left unset, in which case it inherits the project's default. Set the project default on Workspace settings → Projects when you create or edit a project (field "Default time category"); set a work item's override on that project's Work items tab, one select per row. Both are admin-only surfaces.

Categories are never deleted, only archived - an archived category stops appearing for new assignment but keeps labeling the hours already logged against it, so historical reports stay intact.

Every project is created with a General time work item. Time logged against a project without naming a work item lands in that project's General time bucket; time logged with neither lands in the workspace default project's. General time inherits its project's default like any other work item and can carry a category of its own; otherwise its hours report as Unclassified.

Classification never blocks logging - hours record against whatever project and work item is open, classified or not, and tagging is a separate step. Classification is resolved when the report runs, not stamped on the time entry: reclassify a work item and every hour ever logged against it, past and future, reports under the new category.

At review time, Reports → Time groups by Category as well as Person, Project and Work item. Reports is a top-level nav entry, open to managers and admins.

Month-end workflow

  1. Open Reports → Time.
  2. Set Group by to Category and Bucket to Month. The window spans twelve months, one column per month; Previous/Next and Today move it.
  3. Apply the Team, Project or Category filter if finance wants one slice - the Category filter offers every active category plus Unclassified.
  4. Export CSV - the link appears once the report has rows, and the file carries the same grouping, filters and window as the table.
  5. Hand the file to finance.

Worked example

In July, Northlake's engineers logged 1,000 hours combined: 700 on "Platform v2" (of which 90 were on the "Bug triage" work item, overridden to OPEX - the rest, 610 hours, inherits Platform v2's CAPEX default) and 300 on "Maintenance & support" (OPEX, the project's default). Grouping the July report by category gives 610 CAPEX hours and 390 OPEX hours - 61% of July's engineering hours under the CAPEX default.

Scope

SquadBear classifies and exports hours. Rates, capitalization policy and tax filings sit outside its scope - a time report carries hours only, never money.