Documentation

Classify 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 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 Time tracking → Projects when you create or edit a project (field "Default time category"); set an activity's override on that project's Activities tab, one select per row. Both are admin-only. Issue-backed work items are not listed on that tab: they inherit the project's default unless an admin sets their override through an agent (update_work_item).

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 groups time 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 → Logged 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.