Skip to content

Projects

Projects represent work initiatives with timelines, resource requirements, and cost tracking. They are the primary unit for answering the question: "What are we spending engineering capacity on, and how much does it cost?"

What a Project Represents

A project in Flowstate is any piece of work that consumes engineering resources over a defined time period. This could be a product feature, a platform migration, a compliance initiative, or an internal tooling effort. Projects have start and end dates, a status that tracks their lifecycle, and financial data that captures both estimated and actual costs.

FieldTypeDescription
namestringThe display name of the project (e.g., "Billing V2")
descriptionstringFree-text description of the project scope and goals
startDatedateWhen the project begins (ISO 8601: YYYY-MM-DD)
endDatedateWhen the project ends, or null for open-ended work
statusstringCurrent project status (see below)
estimatedCostdecimalBudget estimate for the project
ownerUserIdstringThe Flowstate user responsible for this project
lifecycleStageIdstringCurrent stage in the project lifecycle

Project Status

Every project has a status that reflects where it stands in its lifecycle. Status is a simple enumeration that you set explicitly -- Flowstate does not automatically advance projects through statuses.

StatusMeaning
planningThe project is being scoped. Resources may be tentatively assigned.
activeWork is underway. Resource allocations are firm and costs are accruing.
completedThe project has been delivered. No further cost accrual.
on_holdWork is paused. Existing allocations remain but may not be active.
cancelledThe project has been abandoned. Allocations should be removed.

TIP

Use the planning status for projects that are in the proposal or budgeting phase. This lets you model the cost impact of future work without mixing it into active spend reporting.

Lifecycle Stages

While status tracks the operational state of a project, lifecycle stages provide a more granular view of progress within the active phase. Lifecycle stages are a configurable entity -- your organization defines the stages that match your delivery process.

A typical lifecycle stage configuration might look like:

Planning --> Discovery --> Development --> Testing --> Deployment --> Completion

Each project points to a single lifecycleStageId at any given time. As the project progresses, you update this field to reflect the current stage.

See the Lifecycle Stages configuration for setup instructions, or the API reference for managing stages programmatically.

Resource Allocation

Projects consume resources through two allocation mechanisms:

Indirect Allocation (Team-to-Project)

The most common pattern is to allocate team capacity to a project. When the Payments Team assigns 0.5 FTE to "Billing V2", every employee and contractor on that team contributes a proportional share of their cost to the project.

Payments Team (8 engineers)
  --> 0.5 FTE allocated to Billing V2
  --> 0.3 FTE allocated to Payments Maintenance
  --> 0.2 FTE allocated to Tech Debt

This is efficient for teams that split their time across multiple projects, because you manage allocations at the team level rather than per individual.

Direct Allocation (Person-to-Project)

Individual employees and contractors can also be allocated directly to a project, bypassing their team. This is useful for:

  • Specialists who contribute to a project outside their team's normal scope
  • Cross-functional work where an individual from one team supports another team's project
  • Short-term engagements where a full team allocation does not make sense

Both allocation types contribute to the project's total cost calculation.

WARNING

Be careful not to double-count. If an employee is allocated to a team that is allocated to a project, and that same employee is also directly allocated to the same project, both allocations will contribute to the project cost.

Project Cost Calculation

Flowstate computes project cost by summing all resource allocations that flow into the project:

Project Cost = Sum(team-to-project allocations x team cost %)
             + Sum(direct employee allocations x employee cost)
             + Sum(direct contractor allocations x contractor cost)

For team-to-project allocations, the team's total cost is prorated by the FTE fraction allocated to the project. For direct allocations, the individual's cost is prorated by their FTE on the project.

All costs are converted to the organization's reporting currency before summation. See the Exchange Rates guide for how currency conversion works.

Value Streams

Projects can be grouped into value streams -- strategic categories that represent the business capabilities your engineering organization supports. Examples might include "Customer Growth", "Platform Reliability", or "Compliance & Security".

Value streams let you answer questions like: "How much are we spending on growth-related projects vs platform work?" They provide a layer of strategic grouping above individual projects.

See Value Streams configuration for setup instructions.

Cost Centres

Projects can also be linked to cost centres for financial categorization. Cost centres typically align with your finance team's chart of accounts -- for example, separating CapEx (capitalizable development) from OpEx (operational maintenance).

A single project can be split across multiple cost centres through project-cost-centre bindings. For example, a project might be 70% CapEx (new feature development) and 30% OpEx (maintenance of existing functionality).

See the Cost Attribution guide for how cost centres interact with the broader cost calculation chain.

Project Drivers

Drivers are business justifications that explain why a project exists. They represent the strategic rationale behind resource allocation -- compliance requirements, revenue targets, customer commitments, technical debt reduction, and so on.

Projects can have multiple drivers tagged to them, and a single driver can be associated with multiple projects. This many-to-many relationship lets you answer: "How much are we spending on compliance-driven work across all projects?"

See the Drivers API reference for managing drivers programmatically.

The Roadmap View

Flowstate's roadmap view displays projects on a timeline, grouped and filtered by status, value stream, team, or lifecycle stage. This gives engineering leaders a visual overview of what is in flight, what is coming up, and how resources are distributed across the portfolio.

The roadmap is read-only in the API -- it is a UI-level visualization built on top of project data. To affect what appears on the roadmap, create and update projects and their allocations through the API.

Next Steps

Flowstate Documentation