Projects View
To review and manage a specific project or phase, navigate to its profile. In the Projects list, you can use the "Go to Project View" button to access the Project page, which includes the Overview, Phases, Tasks and Project financials tabs, plus a Members drawer opened from the page header. Alternatively, you can go directly to a Project or Phase page by clicking on its name in the Project List.
Overview Tab
The Overview tab provides a centralized summary of a project’s key information, structure, and administrative controls. It is designed for both visibility and quick management by users with the appropriate roles. Budgets Section If the Budget module is active for your organization, you can manage the project's relationship with budgets within the Overview tab. This section lists all budgets connected to the project. A project can be connected to multiple budgets. Budgets cannot be edited directly here, but:
- Clicking a budget tile redirects you to its Budget Details page.
- Clicking “Go to budget” takes you to the page with Budgets list.
You can remove a budget assignment by clicking the ❌ on the tile. To connect a Project/Phase with a Budget, click the "Add New" button in the top right corner of the Budget section and select from the list of existing budgets. Once saved, the budget will appear in the section.
Note: Projects and Phases can be connected to different budget. Additionally, if you want each project phase to be connected with the same budget as parent project, you will have to do it manually for each project phase. Notes Section A single common note can be added per project. Click “Add note” to provide the note initially. To edit an existing note simply click into the field, make your changes, and press Enter to save. When no note exists yet, an empty-state visual appears with the message “No notes for the project.”
Members Drawer
Project members are no longer managed from a tab. Instead, a Members drawer opens from the project page header and lists everyone assigned to the project. Old bookmarks or links to a "members" tab still work: they are redirected automatically to open this drawer. To add a member:
- Click on the "Add employee" Button: Opens a form to select and assign an employee.
- Select the Employee: Choose the employee from the list.
- Assign a Role: Specify the role of the employee in the project.
- Save: The employee will appear in the list.
Note: You can assign a role to an employee only once. However one employee can have multiple roles in the same project (e.g. 1 employee can be Accountant manager and Tech lead at the same time). If a role has already been assigned to an employee, it will no longer appear in the list of available roles.
Once saved, the employee will appear in the member list within the drawer. You can also modify a previously selected role by clicking "Edit employee" button and remove a member from the project by clicking the Bin button and confirming the choice.
When a project has nobody on it
Membership is what makes a project visible to the people doing the work, so a project with an empty roster is not merely unstaffed — it is hidden from everyone except those whose permissions cover all projects. The Team tile in the project header says so directly, reading No team members — only managers can see this project, and carries an Add members action that opens the Members drawer with the Add member form already open. The report and the fix are the same click; you do not have to go looking for the drawer yourself.
A phase or sub-project that takes its team from the project above it is not treated as unstaffed. Its Team tile still shows its own count — the number is never inflated with people it borrowed — but it explains that the team is inherited from the parent project instead of warning, and offers no Add members action. Nothing is wrong with a phase staffed at the parent level, and it is not prompted as if there were.
Where Flowtly cannot see the whole chain of parent projects, it says nothing in either direction: no warning, no explanation of inheritance, and no action. A project that might be perfectly staffed higher up is never announced as invisible on the strength of a roster that could not be checked.
When someone cannot be added yet
A person can only be added to a project while an agreement covers today. Someone whose agreement has lapsed, or who has never had one on file, still appears in the picker — dimmed, listed among everyone else by name, and carrying the reason they cannot be selected.
They are shown rather than left out on purpose. A name that is simply missing from the list gives you nothing to act on: you cannot tell whether the person is absent because of a fixable condition or because they are not in the organization at all. The row states which it is:
- No agreement covers today. Last one ended
— the agreement lapsed, and the row offers to Renew agreement. - No agreement covers today. Never had one on file — the row offers to Create agreement.
- No agreement covers today — the plain form, shown when your permissions do not let you read that person's agreement history. The reason is real, but the detail behind it is not yours to see.
The fix does not cost you the task you came to do. Taking the offer opens the agreement screen with its own required fields — a position, dates, a rate — and a banner naming the project you were adding someone to. Saving the agreement returns you to the project with the Members drawer and the Add member form reopened, the person now selectable and already picked out. Cancelling returns you the same way, having created nothing. Either way the search you had done is not something you have to repeat.
Creating an agreement needs the Agreements Manager role. Without it the row is marked restricted and explains that an administrator has to create the agreement — everyone else on the list can still be added in the meantime.
Phases Tab
A Phase in Flowtly is a separate entity within a parent project. It operates with the same functionality as a project but maintains its own settings, such as:
- Independent Budgets – Each phase can have its own budget allocation.
- Distinct Start & End Dates – A phase can run on a different timeline than its parent project.
- Separate Employee Assignments – Employees can be assigned either to a specific phase or parent project.
Phases allow for better organization of complex projects by breaking them down into manageable sections while keeping all related work under one main project structure.
How to create a Phase
There are two ways to create a phase inside a project:
1. Creating a Phase from the Project Page
- Navigate to the dedicatedProject page.
- Go to the Phases tab.
- Click "Add project phase".
- Fill in the following form details:
- Name (Required)
- Type (Fixed price, Internal, Not billable, Time and Material)
- Date From (Optional)
- Date To (Optional)
- Click Save.
Once saved, the phase will appear under the parent project in the Projects List.
2. Creating a Phase from the Projects List page
- Click "Add project" on the top-right corner of the Projects List page.
- Fill out the project creation form as usual.
- Navigate to the Project edit mode of the newly created project.
- Select a Parent project for it.
- Save the changes.
Now, the project will become a phase of the selected parent project.
Employee Access & Time Logging
Employee assignments and time logging depend on whether the phase was created from scratch or converted from an existing project.
1. When a new Phase is created under a parent project
- All employees assigned to the parent project will be automatically attached to the phase.
- Employees can log time under both the parent project and the phase.
2. When a separate Project becomes a phase of another Project
- Employees assigned to the parent project will be granted access to the phase.
- Employees who were assigned only to the phase before the assigning will not gain access to the parent project.
3. When an Employee is added only to a Phase
- The employee will be able to log time only under that phase.
- The employee will not be displayed as attached to the parent project.
4. When an Employee is added to the parent Project
- The employee will automatically gain access to the parent project and all of its phases.
- They will be able to log time under both the parent project and any of its phases.
Key Takeaways
✅ Phases function as independent units but inherit employee access from the parent project.
✅ If an employee needs to work across all phases, assign them at the parent project level.
✅ If an employee should only work on a specific phase, add them directly to that phase.
By using phases correctly, you can better structure complex projects and ensure smooth collaboration among teams while keeping billing and resource management efficient.
Tasks Tab
The Tasks tab tracks the project's task lists and individual tasks, letting you break project work into trackable items with their own status and recurrence. See Project Tasks for details.
Project financials
The former Profitability tab is now Project financials, which follows the project's money from plan to actuals across several sub-tabs:
- Initial budget – what the project is planned to bill and to cost, line by line.
- P&L over time – planned vs. actual profit-and-loss charts.
- Budget realization (preview) – a per-tag rollup of planned, contracted, and invoiced amounts; only shown once an Initial budget exists.
- Plan vs Actual (preview) – a table of planned vs. actual revenue, cost, and net per month; also requires an Initial budget.
- Related costs – every project transaction (and transaction assignment) linked to the project.
Each sub-tab is addressable via its own URL segment (/projects/:id/financials/:subTab), so a specific sub-tab can be linked or bookmarked directly.
Wherever these sub-tabs break actual figures down by month, a cost is counted in the month its document relates to rather than the month it was paid. See Budget P&L & forecast for the full rule and how it affects monthly comparisons.
Initial budget: billed, cost and the margin between them
Each line of the Initial budget carries both sides of the plan on one row: Billed, what you expect to charge for it, and Cost, what you expect it to cost you. Both are edited in place and saved when you leave the field, the same way as the other cells in the table.
A read-only Margin column sits between them, showing the difference. It is calculated by Flowtly from the two amounts on the row rather than typed in, so it cannot disagree with them.
A blank margin is not a zero. The margin is only meaningful when both sides are filled in, so a row with only one of them shows a labelled dash saying which side is present — cost only or billed only — instead of a figure. That distinction matters: a pure overhead line has a real cost and nothing billed against it, and printing 0,00 there would report a loss the project has not made. A line that is billed as a flat retainer, with no cost tracked separately against it, reads the same way from the other direction.
A negative margin is a different state from a blank one, and is shown as such: a line that genuinely costs more than it bills is marked as the problem it is, rather than being flattened into the same dash as a line that simply has one side missing.
A new, still-empty row shows the dash with no reason beside it — there is nothing yet to say which side is missing.
Related costs shows each cost's tags
Every row in Related costs carries a Tags column listing the categorization tags on the cost itself. A row is left blank when its cost carries no tags, so an empty column is a statement that nothing is tagged rather than a sign the column is not working.
The tags shown are the ones on the underlying document, and the two kinds of cost are tagged in different places:
- an invoice cost shows the tags on the incoming invoice,
- a bank transaction cost shows the tags on the transaction.
So a cost that appears here untagged is tagged where that document lives — on the incoming invoice, or on the transaction in Transactions — not on the project. Tagging it there makes it appear in this column, and in the tag rollups under Budget realization.
The Tags filter above the table follows the same rule and matches both kinds of cost, so filtering by a tag returns invoice costs and bank costs together rather than only one of them.
Where a tag was applied to only part of a document, the chip appends that share to the tag's own name — Marketing · 25% — because the cost is split across several categories rather than belonging wholly to one.
Every amount states its tax basis
Budget realization labels the tax basis of each column, so you do not have to infer it. Planned and contracted amounts are always net of VAT. The invoiced column states its own basis, because that is the one that can vary: it reads net, gross, or mixed when the invoice lines behind it were not all recorded on the same basis.
Flowtly settles the invoiced basis when an invoice line is recorded rather than when it is displayed. A line that arrives carrying gross values is converted to net before it is stored, so the figure you read has a known basis rather than an assumed one. Structured e-invoices are the common case, because a document can state its line values either way.
That guarantee runs forward from 5 August 2026. Invoice lines recorded before that date were stored as the source document supplied them, so a project drawing on older documents can still include lines held at gross — which is what a mixed label is telling you. Flowtly does not convert them on its own, because how each line was originally supplied was not recorded at the time and cannot be recovered from the value alone: nothing about a figure distinguishes a gross amount from a net one. If an older invoiced total looks high by roughly its own VAT rate, check it against the net total on the source document.
Plan vs Actual, month by month
Plan vs Actual lays the project's months out in rows and compares each one against the plan: revenue, cost and net, with the variance between them. Each figure is shown as plan → actual, followed by how far the actual ran over or under.
Variance colour reads as better or worse than planned, not as up or down. Spending less than planned and earning more than planned are both shown as favourable, so a cost 10% under plan and revenue 10% over plan are coloured the same way — and revenue 10% under plan is not.
A dash and a zero mean different things. A dash means no plan was set for that month. A planned zero is shown as a figure, because deciding to spend nothing in a month is a plan, and not planning the month at all is not. Dashes therefore appear in the variance columns as well, since there is nothing to compare against. Reading a dash as "zero" would understate a plan; reading a zero as "no plan" would overstate it.
The trend line needs at least two months with activity before it is drawn. A single point cannot show a direction, so the table carries the figures and the chart says why it is not showing one.
How the chart draws plan against actual
The chart above the table uses two different treatments for the two kinds of figure, in both directions — income and expense:
- Planned amounts are drawn as a dashed outline, with nothing filled in.
- Actual amounts are drawn as a solid bar.
The distinction is what makes an unplanned month readable at a glance. A month with no plan has no outline at all, which is unmistakable against a month that has one. Had planned amounts been drawn as a faint fill instead, "nothing was planned" and "a little was planned" would differ only in how faint the bar looked, and the two would be easy to confuse — which is the confusion this sub-tab exists to prevent, in the chart as well as in the table's dashes.
A month is left without a planned bar rather than given a zero-height one, for the same reason a dash is not a zero in the table below.
Where the cumulative figure lives
Every row in this table is a month, and there is no total row beneath them. The question this sub-tab answers is one of pacing — whether the money moved when it was planned to — so it is read down the month axis rather than summed. A line at the foot of the table says where the cumulative figure is instead, and links to Budget realization.
The two sub-tabs are not two views of one number, which is why the total is not repeated here. Plan vs Actual compares each month against the amount the budget planner set for that month. Budget realization compares the project as a whole against the Initial budget, which is a single planned amount per tag with no month attached to it. A total on this table would restate a figure that is calculated elsewhere, from a different plan, and the two would not have to agree.
When the project has no plan
The sub-tab appears once the project has an Initial budget, but the figures it compares against come from the budget planner. These are two different things, so a project can open this sub-tab with nothing to compare. When that happens, a prompt names what is missing and links straight to the planner.
The prompt sits above the table rather than in place of it. An unplanned project still has real spend, and that is often the most useful thing on the screen — so the actuals stay visible and the plan side reads as dashes until a plan exists.
The monthly basis is the same everywhere
The months in this table are the same months used everywhere else in Project financials: a cost counts in the month its document relates to, not the month it was paid. See Budget P&L & forecast for the full rule.
That also means the awaiting/received split does not move an amount between rows here. Whether a cost has been settled is a separate question from which month it belongs to, so paying an old invoice does not change which month it lands in on this table.
Example use cases
- A Project Manager needs to quickly understand the budget status and key notes for a project before a client meeting.
- An Operations Manager needs to assign a new team member to a complex project and ensure they have access to all relevant phases for time logging.
- A Finance Controller wants to review the total labor costs and hours worked by employees on a specific project over the last quarter to assess profitability.
- A Business Analyst needs to break down a large, long-term project into distinct phases, each with its own budget and timeline, for better management and reporting.
- A Project Manager plans a project line by line, entering what each line will be billed at and what it will cost, and reads the margin between them before committing to the price.
- A Project Manager tries to add a colleague to a project, sees on the spot that no agreement covers them, creates one, and lands back on the member form with the person selected.
- A Finance Controller scans the Plan vs Actual chart for months with no planned outline at all, to find work that was done without ever being budgeted.
- A Project Manager opens a project set up before it was staffed, sees on the header that nobody can currently see it, and adds the team from that same tile.