Skip to content

Flowstate Updates

All notable changes to the Flowstate platform are documented here. For API-specific changes, see the API Changelog.

2026-07-27

The thing we heard most this month: R&D work doesn't stop neatly at the year you happen to be standing in, but the claims screen insisted it did. You can now claim across any period — one financial year or a run of them — and have the eligibility scan look back up to three years for work nobody claimed at the time.

The rest is largely your bug reports, including a very detailed one about Copy last week that turned out to be two faults rather than one. Please keep sending them.

R&D tax claims

  • Claim across more than one year: Pick any period — a single financial year or a range spanning several — and both the claims list and the headline figures follow it, filed under year and quarter headings. Previously you could only look at the year you were in.
  • The scanner can look back: The eligibility scan can now consider up to three prior financial years, so work that was never claimed at the time still gets found.
  • Suggestions for projects that already have a cost centre: Project analysis now reviews assigned projects too and raises a suggestion when work looks like it belongs in a different category — either "we think this is capital" or "we don't think this is". Confidence is shown as a simple band, and choosing "later" defers the question rather than losing it.

Fixes

  • Copy last week works on the first click: It previously took two or three attempts, and could overwrite a row's own CapEx or OpEx classification. Both fixed.
  • Projects you have show up in timesheet search: Searching for a project on a timesheet no longer hides matches that exist.
  • Confirmations stop getting stranded: A week's status is now read against that week's team roster, so a confirmation can't be left attached to someone who has since moved.

2026-07-20

Two long-standing asks land together. R&D tax relief gets a proper home — a scan that proposes claimable projects with a plain-English reason, a narrative you draft in Flowstate rather than in a separate document, and a submission-ready pack at the end. And AI spend is split into the two numbers several of you asked us to stop conflating: what the provider billed you, and how much of that we can actually account for. The gap between them is now shown rather than quietly averaged away.

AI insights has been rebuilt around what you told us you open it to find out — which, it turned out, was almost never "both spend lines at once". Thank you for being specific about that.

R&D tax claims

  • A workspace for R&D relief: A quarterly overview shows potential relief, likely return, claims in flight, credit already recovered, and anything falling due — with each claim's cost split across employees, contractors and AI spend.
  • Flowstate finds the candidates for you: An eligibility scan reviews your projects against the legislative framework you've chosen and proposes the ones that look claimable, each with a plain-English explanation of why it qualifies and an estimated value. Suggestions appear inline to accept or dismiss.
  • Scanning on your terms: Turn the scan on or off, choose weekly, fortnightly or monthly, and see when it last ran and what it found.
  • Code counts as evidence: The assessment reads the pull requests behind a project, not just its tickets, so the technical substance of the work informs the verdict.
  • Accepting a suggestion starts the real work: Accepting creates a draft claim, moves the project onto your R&D cost centre, and begins drafting the written justification straight away. Rejecting it puts the cost centre back where it was.
  • Write the claim narrative in Flowstate: A document-style editor drafts each required section, asks you targeted questions where it needs more detail, and lets you select any passage and have it rewritten — then accept or reject the suggestion.
  • From draft to outcome: Submit for review, approve, request changes or reject with notes, mark as submitted to the tax authority, then record the outcome and the credit received. Deadlines are editable per claim, and you're notified when one is approaching, when a new suggestion is ready, or when the narrative needs you.
  • A submission-ready pack: Export a cost workbook with methodology and quarterly workings that reconciles to the summary, plus the written rationale as a Word document. Select several claims to export one combined narrative or one combined workbook.
  • R&D reported in its own right: R&D cost centres are now reported separately from CapEx across the capitalisation overview, its charts, comparisons, drill-downs and exports.

AI spend — Reported and Attributed

  • Two tiers, one clear question each: Reported spend answers "what are we spending?", straight from the provider's bill. Attributed spend answers "on what, by whom, and is it safe?", by matching that spend to individual sessions, people and projects. Both sit side by side, so the gap between them is visible rather than hidden.
  • Every AI bill in one place: A consolidated Reported band brings all your provider invoices together, with the health of each connection shown alongside, and a clear starting point when nothing is connected yet.
  • Thirteen providers now report real money: Billing is pulled directly from Anthropic, OpenAI, Cursor, GitHub Copilot, Windsurf, Gemini, AWS Bedrock, Azure OpenAI, Google Vertex, Fireworks, Mistral, ElevenLabs and Intercom Fin — including several that previously reported only token counts, or nothing. Providers with no billing interface are no longer listed as though they were an option.
  • Connecting a provider just works: The connect panel asks for exactly the credentials each provider needs, and starts pulling your history the moment you connect.
  • Spend per API key: Break Reported spend down by individual API key, not just by provider or person.
  • Spend to a spreadsheet: A one-click export gives you a summary, a daily time series, Reported spend by provider, person and API key, and Attributed spend by project.
  • Connect a cloud without handing over keys: AWS, Google Cloud and Azure can now be connected using short-lived, per-workspace trust instead of long-lived static keys — nothing sensitive to store, rotate or leak. Existing key-based connections keep working.

AI insights, rebuilt

  • A dashboard you can read at a glance: The landing page is now charts only — the headline figures across the top, then six charts — so you can see spend, trends and coverage without wading through a table.
  • How much of the bill can we explain?: Two side-by-side spend lines are replaced by a single Share accounted for line — the percentage of each month's provider invoice that traces back to logged sessions. Months with no bill are left out rather than drawn as zero.
  • Spikes are pointed out for you: The spend trendline shades any period it detects as unusual, so an unexpected jump is visible instead of something you have to hunt for.
  • Breakdown is where you slice: The old "Spend insights" tab becomes Breakdown — table only — so the two tabs no longer duplicate one another.
  • One "aggregate by" control: On Breakdown, group spend by providers, models, team members, teams, API keys, systems, projects, initiatives or objectives from a single control. The dashboard carries the same control for projects, initiatives and objectives, and every chart, ticker and table figure agrees on the same numbers in the same currency.
  • Alerts you configure: Create named alerts with your own triggers, thresholds, severity and recipients, rather than only seeing what the system chose to flag.
  • An alert tells you once: A condition that keeps holding raises one alert and tracks how often it has recurred, instead of notifying you on every re-check. If it clears and later returns, that correctly opens a new one.
  • Alerts reach where your team already works: Deliver them to Microsoft Teams, a webhook, incident.io or PagerDuty — and in PagerDuty and incident.io they group and resolve in step with Flowstate, rather than piling up as separate incidents.
  • Charts that suit the period you picked: Daily, weekly or monthly grouping is chosen from your date range, so a ninety-day view no longer draws ninety unreadable slivers.
  • Familiar controls: AI insights now uses the same saved views, filters and period control as the rest of the product.

A model catalogue that keeps itself current

  • Prices stay current on their own: The AI model catalogue and its pricing refresh daily from the live public source, so a new model or a price change appears without waiting for a Flowstate release.
  • No more silent zeroes: Where a model has no price yet, the agents list says "Awaiting price data" instead of quietly showing nothing.
  • Sessions priced even when the tool sends only tokens: Usage that arrives without a cost is now priced from the catalogue, so those sessions no longer roll up as zero.

Fixes

  • Forecast exports respect a team's own trim: Where a team shortened a role that was extended more widely, the team's version now wins in the exported workbook, as it does on screen.
  • Whole-percent effort spans: Fractions of a percent that displayed as "0%" no longer appear in the unattributed breakdown.

2026-07-13

"Team assignments +1" told nobody anything. That came back to us more than once, so the budget change list now writes out what actually happened: who is affected, what changed, when it takes effect, and roughly what it costs for the year.

The other thing we kept hearing was that the forecast figure at the top of a page and the total in the table underneath could disagree. They are now the same number, computed once. Thanks for pressing on that — it was harder to defend than it was to fix.

Budgets — a change list you can read

  • Changes read as sentences: Instead of "Team assignments +1", the change list now tells you who is affected, what happened, when it takes effect and roughly what it costs for the year — a person moving team on a given date, with the cost leaving one team and landing on the other. The scenario overview uses the same list.
  • Move people between teams during planning: A manager can propose moving a person or an open role to another team inside a budget, and the receiving manager accepts or declines. On acceptance the headcount and its cost move across properly, so both teams' budgets stay honest.
  • Stalled transfers can always be cleared: A proposed move into a team whose budget has since been approved can now be declined or withdrawn by whoever raised it, with a message naming the team and its status, instead of wedging both submissions.
  • Proposed and approved, labelled and filterable: Each line on a request's change list is marked as proposed or approved, with a filter, so reviewers can see what is already committed versus still in flight.
  • Conflict checking covers pay, allocations and custom fields: Salary, bonus, contractor-rate, allocation and custom-field changes are included in the pre-approval conflict check, so "keep the central value" genuinely sticks — including in deep team hierarchies.
  • Approved budgets stop moving: Once a team's budget is approved it is locked to further edits and must be formally reopened, so approved figures can't quietly drift afterwards.
  • Redesigned headline figures: Employees, contractors and vacancies now lead with the year-end count plus an explicit joiners-minus-leavers bridge that adds up from today's actual figure. Cost and average FTE sit alongside, and clicking any number opens a breakdown of how it was derived.

One forecast number

  • The headline and the table agree by construction: The forecast figure at the top and the total in the table are now the same number, computed the same way. Team budget views are the real, fully drillable forecast table.
  • Headcount reads the same at every zoom level: FTE is now a day-weighted average, so someone joining on the 20th counts as part of that month, and monthly, quarterly and yearly views agree.
  • Change indicators on the Total column: Every row's total, and the footer, now carry the same comparison indicator as the individual period columns — and it always adds up to the sum of those columns.

AI that classifies your projects

  • Cost centres can be set automatically: The project analysis agent can now assign a cost centre rather than only suggesting one. Choose the behaviour per question in Settings → Finance → Project analysis: Off, Suggest (the default, and today's behaviour) or Auto-apply with your own confidence threshold.
  • It never overwrites a person: Automatic changes only ever fill a blank nobody has set. A cost centre a human chose is left alone.
  • Taking capital treatment away always needs a human: If the agent thinks a project in a capital cost centre is really routine upkeep, that is raised for review and never applied automatically, however confident it is.
  • You can always see why, and undo it: Every automatic change is recorded with a plain-English reason, the confidence and the model used, shown as a "set automatically" marker with a timeline on the project — and reversible in one click.
  • Post-completion cost centres too: The agent also predicts where a project's costs should flow once it's finished, with an editable column on the projects list and the same accept and dismiss controls on the project itself.

Rolling out the desktop agent

  • One credential, no certificates: Rolling out the desktop agent is now a person's email plus a single organisation-wide token, which the agent exchanges for a short-lived credential by itself. The old per-device certificate scheme is retired, and there is no key for anyone to copy around. Installing it yourself is install and sign in.
  • A managed-fleet profile that installs on a new device: Settings → AI → Cloud proxy generates a ready-to-install macOS profile with everything the agent needs. It now installs cleanly on a brand-new device, where previously the profile could be rejected outright and no settings would land.
  • Allow your own AI endpoints: Add your own AI service hostnames — private endpoints, or custom Azure OpenAI domains — in cloud proxy settings, and they take effect without any involvement from us.

Smaller things

  • Service status where you'll see it: The sidebar shows a banner when there's an incident, degraded service or upcoming maintenance affecting your deployment specifically, with a link to the detail. It shows nothing when everything is healthy.
  • Fixes: Quarterly capitalisation charts include their first month in every timezone; someone's team and project history stays visible even with no current allocation; and a further round of forecast export corrections so the workbook matches the screen for people whose records were edited inside a plan.

2026-07-06

Most of this release came from watching finance teams try to finish a budget cycle, and finding we had made the last mile harder than it needed to be. You can now close a finished request or delete an abandoned one, and the people, vacancies and contractors it was holding return to the live view — so the next cycle starts clean instead of blocked by the last one.

You reported both of the other big ones. Where a central admin and a team manager had both changed the same figure, approval used to quietly pick one; it now stops and asks you, field by field. And budget pages that took fifteen to thirty seconds to open now paint immediately — the same numbers, just none of the waiting. Thank you for putting up with that far longer than you should have had to.

Budgets

  • Conflicting edits are caught before sign-off: When a central admin and a team manager have both changed the same figure, approval now pauses and asks the reviewer to keep either value, field by field, rather than silently letting one overwrite the other.
  • A cycle can be closed and cleared out: Finance can close a finished budget request or delete an abandoned one, and the people, vacancies and contractors it was holding return to the live view — so a new cycle starts clean instead of being blocked by the last one.
  • Team budgets roll up into one agreed plan: Approved team budgets consolidate into a single accepted plan for the cycle. Re-approving the same budget no longer stacks duplicate changes, and reopening or reversing an approval leaves the plan consistent.
  • Managers of several teams can switch between their budgets: My Budget gains a team selector, and leaving the plan returns you to the exact team and cycle you were editing rather than guessing.
  • Choose whether pending budgets are counted: The request forecast has a scope control — approved budgets only, or everything still in flight — with a count of how many pending budgets are folded in.
  • Dates default to the budget's own year: While editing a financial-year budget, the forecast period and the start dates on new vacancy, employee and contractor forms open on that year rather than today, and a vacancy can't start before the year begins.

Speed

  • Budget pages open in under a second: Pages that took 15 to 30 seconds now paint immediately, with the headline figures filling in behind a placeholder, and return instantly once cached. The numbers are unchanged — only the waiting is gone.
  • Switching budget tabs is instant: Overview, Changes and Forecast now read data the page already has instead of re-running the heaviest query each time. Your edits still appear immediately.

Capitalisation and exports

  • Cost is priced at the rate in force on the day: Actual cost is now worked out day by day, so a mid-year pay rise no longer overstates a project, a project's dates never discard effort, and the per-project export adds up to the figures on the charts to the penny.
  • The workbook matches the screen: Contractors on monthly rates are no longer costed as though the rate were daily, cancelled vacancies cost nothing, and people who joined, left or converted mid-year are counted only for the months they were actually there. An ongoing check now compares the generated workbook against the on-screen figures, so this can't drift again.

Effort reporting

  • Forgotten tickets stop absorbing people's time: A ticket left in progress and untouched now stops accruing effort after a short grace period, instead of quietly splitting someone's whole day across dead work for weeks — and capitalising it.
  • Time spent in review counts: Effort now recognises time a ticket spends in review, which had been ignored entirely for teams whose tools label that stage differently.
  • Undo your own submission: Team managers can withdraw a report they've just submitted, where the button previously appeared to do nothing.

Fixes

  • A contractor's final month is costed in full: Contract dates are stored consistently, so the last month is no longer under-counted.
  • Backfills you can watch: A GitHub backfill now shows how far through it is, can't be started twice, survives a restart, and skips only the metrics a missing permission blocks — the moment an owner approves it, the rest flows in.

2026-06-29

Some of you run teams whose branch names don't carry ticket keys, and told us Engineering Intelligence was therefore showing a cost of zero against every pull request. It now works the cost out from the commits themselves, which for those teams is the difference between nothing and a real figure. The section also grows beyond cost, into flow, AI impact and delivery metrics.

Also on your prompting: a contractor can be made permanent in one step rather than terminated and rehired by hand; re-pricing a whole list of people is now its own permission, so being able to edit a scenario no longer implies being able to re-price everyone in it; and team subtotals plus No Team now add up to the full payroll, because they didn't and you spotted it.

Engineering Intelligence

  • A new section, beyond cost: Code delivery becomes Engineering Intelligence, adding Flow, AI impact and DORA views — per-pull-request cycle and coding time, size, rework after opening, review and deployment metrics. Available on request.
  • Cost per pull request that isn't zero: A pull request's cost is now derived from the commits in it — each contributor's daily cost split across what they actually committed to that day — instead of needing a ticket reference in the branch name. For teams whose branches don't carry ticket keys, this is the difference between nothing and a real figure.
  • Coding agents counted as contributors: Commits written by coding agents are recognised as such, linked to the person who operates them, and their cost and effort attributed to that person — so "what are the agents doing, and what do they cost?" has an answer.
  • Azure DevOps work items link up: Pull requests and commits now link to Azure DevOps work items from references and branch names, not just Linear keys. For teams tracking work in Azure DevOps this unlocks project attribution and commit-based effort that previously produced nothing.
  • Percentiles across your whole history: Flow percentiles are calculated across everything you have, rather than a capped sample, so they aren't skewed on busy repositories.
  • Financial columns properly protected: Cost columns on the pull-requests and overview screens are now restricted to people with financial permissions, while counts, lines and person-days stay visible to everyone.
  • People and teams, mapped properly: The old data-mapping page is replaced by User attribution and Team attribution — every third-party user across every connected system, grouped into matched and unmatched, searchable, with one Sync button and a marker in the navigation when someone is unmatched.

Effort reporting

  • Day-accurate effort from commit history: A new opt-in setting rebuilds days that have commits from when the work actually happened, falling back to ticket movement on days without any. It only ever affects the draft timesheet — submitted and approved weeks are never recalculated — and it's off by default, with a clear warning that it changes effort, capitalisation and R&D figures.
  • Approve with a small correction: An approver can adjust a submitted timesheet and approve it in one action, rather than bouncing it back for the team lead to resubmit.
  • Team leads own their own week: Resetting a week back to Flowstate's estimates no longer needs an organisation-wide permission.
  • Coverage, not just status: Each week now shows what proportion of the team is actually accounted for, so a signed-off week only some people filed is visible rather than reading as complete. Contractors count alongside employees.

Workforce

  • Convert a contractor to an employee: One action internalises a contractor from a date you choose — the contract ends the day before, the employee starts the next day with the same team and project assignments, and the forecast never double-counts the handover.
  • Cleaner records and forms: Employee email is genuinely optional, so no more placeholder addresses; people with a single name can be hired; team pickers show the real hierarchy; retired job roles no longer appear in dropdowns; and required-field markers match what's actually required.
  • Less friction day to day: Filter the contractors list by role — and target a bulk rate adjustment at exactly that filtered list — and organisations using one currency see it as a fixed prefix rather than a selector to click through.

Who can see and change what

  • Bulk pay changes need their own permission: Re-pricing a whole filtered list of people, contractors or vacancies is now a dedicated permission, so being able to edit a scenario no longer implies being able to re-price everyone in it. Editing pay inside a plan is likewise its own grant.
  • Team-scoped budget access: Managers can work their own teams' budgets in the full budget experience without being given visibility of every other team's request — this was previously all or nothing.
  • Permissions behave the same inside a plan: Add, edit, move, delete, convert and compensation controls now appear only where the viewer can actually perform them, including transfers, adding people to a team, and editing a vacancy's role.
  • A focused sidebar while editing a plan: Inside a budget or scenario the navigation narrows to what's relevant — a clear exit, which team and financial year you're in, the steps to completion, and for finance, how many team budgets are submitted and approved.

The numbers reconcile

  • Unallocated cost is no longer lost: People who are employed but not yet, or only partly, assigned to a team now show under No Team, so team subtotals plus No Team equal the full payroll. A £100,000 salary also stops reporting as £99,996.
  • Changes stopped going missing: End-date edits and extensions, new vacancies, allocation date changes, contractor rate adjustments, people leaving, and centrally-made bulk pay edits all now appear in the relevant team's change list, attributed to whoever made them. Someone leaving reads as a departure rather than a team movement.
  • One forecast total: The request forecast, the change list and the team views report the same total for the same period, and rejected proposals no longer feed a request's figures.

Fixes

  • The assistant can answer far more: Effort gaps, uncosted effort, submission standings, CapEx and R&D breakdowns, declared versus claimed, and budget drift are all now things you can just ask for.
  • Smaller corrections: The build cost centre stays visible after a project completes rather than being replaced by the post-completion one; a scenario's name shows in the navigation instead of "Unknown"; and vacancy start dates can't be set before the financial year they belong to.

2026-06-22

We got the roadmap wrong, and you told us so. Putting the cost centre on the initiative took it away from the project — and the project is the thing your teams actually deliver, resource and classify. We have put it back. An initiative is now where you read the rolled-up picture, not where anything is configured. If you built around the arrangement we described on 8 June, we're sorry for the churn; the note below says exactly what moved.

Away from that, and also at your request: effort reporting is now a single workbench instead of a dashboard and a separate timesheet, and the table used across the whole app was rebuilt so column headers stop drifting out of line with the rows beneath them — a small thing that a lot of you mentioned.

The Effort Workbench

  • One page for reporting effort: Submission health, your team's standing, the timesheet itself and the review panel now sit together on one full-width workspace, replacing the split between a dashboard and a separate timesheet.
  • A year of submissions at a glance: A colour-coded grid of the team's financial year shows every week as submitted, overdue or not applicable. Click a square and the timesheet and review panel both jump to that week.
  • A team-by-week review calendar: Teams down the side, weeks across the top, and a click on any cell opens that team's report for that week. The period selector spans the whole financial year, so a week in January is still reachable in July.
  • Nothing overdue hides from you: The outstanding-reports list runs from the start of the financial year, oldest first, rather than only the last few weeks.
  • Route a stray ticket from the timesheet: Attribute an unattributed ticket to a project without leaving the report. The CapEx and OpEx summary updates immediately, and the attribution sticks.
  • Submitted weeks stay submitted: Automated recalculation can no longer overwrite a week that has been submitted or approved.
  • Your edits survive the refresh: An edited cell is protected in its own right, while untouched cells keep refreshing from the underlying ticket data. You're warned before navigating away with unsaved changes, and you can reset any person's week back to Flowstate's own estimate.

Roadmap — projects at the centre

We've changed our mind about where finance belongs on the roadmap. Setting money on the initiative meant a project's own cost centre was taken away from it, which turned out to be the wrong way round: the project is the thing people actually deliver, resource and classify.

  • Projects are the primary entity: The roadmap opens on Projects. Resourcing, the agentic AI workforce, finance and the cost centre all live on a project, which now has a description-first page with an editable property band, a forecast-versus-actuals chart, links to the matching Jira epics, Linear projects or Azure DevOps items, and three tabs: Overview, Team plan and Agentic workforce.
  • The cost centre is set on the project: This replaces the arrangement described in the 2026-06-08 note, where a project inherited its cost centre from the initiative above it. An initiative no longer has a cost centre of its own.
  • Initiatives report on the projects beneath them: An initiative is where you read the combined picture — its status, progress, people, resourcing, actual cost, forecast, variance and capitalisation are all rolled up from its child projects. It's still the layer finance reads; it's no longer the layer anything is configured on. Initiative-level check-ins, initiative resourcing commitments and the initiative cost centre are gone.
  • CapEx and R&D eligibility follows the cost centre: Whether work can be capitalised or claimed is determined by the category of its cost centre, not by a mode set on the initiative. Finance Mode now does one job: deciding whether an initiative shows a customer-billing budget and target margin.
  • Drag-and-drop team planning on a project: The Team plan tab plans people, teams, contractors and vacancies on a schedule — drag to resize dates, edit an allocation in place, with conflict detection and a per-person view.
  • A per-project AI workforce: AI tooling, workflows and embedded agents, with their token and cost economics, now sit on the project rather than the initiative.
  • Linear keeps the description in step: Where a project tracks exactly one Linear project, that description mirrors in and stays in sync. Projects linked to several are never overwritten.

Tables you can actually work with

  • One finance-grade table across the app: The shared list table was rebuilt on proper table foundations, which fixes the long-standing problem of column headers drifting out of line with the rows beneath them. Dozens of pages benefited at once.
  • Columns you can size like a spreadsheet: Drag a column boundary and it follows your cursor in both directions, with the space taken from or given to the far-right column so the table stays glued to the window instead of leaving a grey gap. Your widths and column order are remembered.
  • Columns sized to their content: Columns are measured against what's actually in them, so status pills and names no longer wrap onto two or three lines while one column hogs the space.
  • Headers that stay put: Column and group headers stay pinned as you scroll instead of being painted over by the rows.
  • Values read as data, not buttons: Editable properties look like plain text and only reveal that they're editable on hover, which makes dense tables much easier to scan. Date editing now goes through one consistent picker everywhere.

Budgets

  • Any change can be undone: Every change in a budget can be reverted from the list — not just newly added rows, but edits reset to the live value and removals restored to the budget, each behind a confirmation.
  • Filter the forecast to your own area: A team filter scopes the forecast table, its drill-downs and its export to a chosen team and its sub-teams — which also makes it much quicker to open than the whole organisation. Your choice is remembered.
  • Cleaner vacancy handling: Filled vacancies no longer clutter the forecast or its exports, and a hire can be compared against what was budgeted for the role.

AI

  • Agent sessions read like every other list: The AI sessions screen was rebuilt on the standard table, showing who ran the session, which tool, its category with a capital or operating explanation, project, provider and model, tokens, cache usage and cost.
  • A rough carbon figure: An estimated CO₂e impact for AI usage appears on the AI insights dashboard and on each project, with the method explained on hover.
  • Spot capitalisation risk from the roadmap: An optional Suggested cost centre property and a needs-review filter on the projects list surface work that should be capitalised but isn't, and work parked in a capital cost centre that looks like upkeep — explained in plain English, deliberately free of finance jargon.

Fixes

  • Capitalisation loads reliably: Each chart on the capitalisation screen now loads on its own and the page fills in progressively, rather than the whole screen waiting on the heaviest part of it.
  • Scenario end dates are respected: Contractors and employees offboarded inside a scenario stop costing after their end date, and opening an offboarded contractor or terminated employee in a scenario no longer says "not found".
  • Exports respect your access: A manager exporting the forecast receives their own teams, not the whole organisation.
  • Reviewers are told: Effort submissions and approval hand-offs create the reviewer's inbox item, not only a chat message.

2026-06-15

This one is mostly an apology. Managers set through the normal team-manager control were seeing every team in the organisation and none of their own people, and sub-team managers saw nothing at all. Thank you to everyone who reported it, and for bearing with us while we scoped team and people lists to the real manager relationship rather than hiding the extra rows in the browser.

Also yours: an in-year pay rise now applies from the date it takes effect instead of across the whole year, and foreign-currency salaries convert at today's rate rather than the oldest one on file — so the salary panel and the forecast finally agree with each other.

Access

  • Team managers see their teams and their people: Managers set through the normal team-manager control were seeing every team in the organisation but none of their own employees, contractors or vacancies, and sub-team managers saw nothing at all. Team lists are now correctly scoped, people lists come from the real manager relationship, and managers can read custom fields on records they can see.
  • A new "List all teams" permission: A manager can be given the ability to see and select any team — so cross-team moves are possible — without also being given visibility of every team's people and costs.
  • Effort and budget views scoped properly: Effort views now return only the teams a person is allowed to see, rather than fetching everything and hiding it in the browser. Inside a team's budget request, every team-scoped view narrows to that team and the teams beneath it.

Money on the right date

  • Pay rises apply from the date they take effect: An in-year salary or rate change now steps through the forecast and the historical actuals from its effective date, instead of being applied across the whole year.
  • Salaries convert at today's rate: Foreign-currency salaries, vacancies, AI spend and effort cost convert at the exchange rate in force now, rather than the oldest one on file — so the salary panel and the forecast agree.

Exports

  • Custom fields in your exports: Choose which custom attributes to include when exporting.
  • Budget spreadsheets: Budget requests and budgets can both be exported to Excel.

Elsewhere

  • The assistant stays where you left it: The assistant is now a side panel that keeps your conversation when you close it, carries on working in the background, and marks the navigation icon when a reply arrives. It opens on a "what can I ask" screen with examples filtered to what you're allowed to do. For organisations with external access enabled, there's a guide for connecting Flowstate as a data source to Claude or ChatGPT.
  • Post-completion cost centre on Projects: Set it inline beside the build centre, with whichever centre is currently in effect shown prominently and completed projects still missing one flagged.
  • Committed hires: A new committed vacancy status sits between open and filled for an approved hire, contributing to the forecast exactly as an open one does.
  • A project's people, week by week: The per-project people view groups everyone by the team they logged effort under and expands into a weekly breakdown of effort, cost and source.
  • Link contractors to people: Contractors and people can be linked to one another, with a warning where their dates overlap.
  • Choose which region collects your AI usage: An AI provider connection now carries a region, and that region does the collecting — so AI usage data is gathered where you want it held.

Fixes

  • The date picker reaches future years: Year navigation was limited to the past and couldn't reach future years at all, which broke vacancy start dates and any forward planning.
  • Adding a person from the side panel works again: Adding someone to a team, or a team allocation to a person, from the global side panel failed on every route.
  • Offboarding without an existing end date works, and vacancies are no longer zeroed for months before the current one.

2026-06-14

A new Code delivery view that turns your connected GitHub account into the cost behind each feature, plus improvements to the roadmap, notifications, date ranges, and navigation.

Code delivery

  • See the cost behind what you ship: A new view under Delivery → Code delivery brings your GitHub pull requests together with cost. See pull-request throughput, the person and AI cost behind each merged PR, cost per merged PR, and how that spend lands across your initiatives — sliced by team or repository.
  • Connect your GitHub account: Connect your organisation's GitHub from Settings → Integrations to switch it on. Until it's connected, the view shows a short connect step instead of data.
  • People vs automated code: Lines are split between people and automated utilities, so changes written by bots and tooling are never counted as person cost.
  • Sharper effort tracking: Code activity from GitHub now feeds effort tracking as an extra signal, blended with your ticket activity in Azure DevOps, Jira, or Linear — so where effort went reflects what was actually shipped, not tickets alone.

Roadmap

  • Faster portfolio: The portfolio tree loads faster, especially with a lot of initiatives. Initiative variance and project status rollups now come from precomputed data instead of running a separate query per row.
  • Initiative status from project activity: An initiative's status now follows the projects under it. Each project's status comes from its ticket activity in Azure DevOps, Jira, or Linear, so the initiative updates as the work moves instead of someone setting it by hand.

Notifications

  • Grouped inbox: Notifications about the same thing are grouped under one heading, such as several effort reports for one team. Open a group to see the individual items. A notification on its own stays ungrouped.
  • Snooze and dismiss: You can snooze a notification to a later date and it comes back then, or dismiss it so it stops appearing. Snoozed, completed, and dismissed items each have their own tab.
  • Email digest by default: Most email notifications are now batched into a digest instead of sending one per event. Budget items still send straight away. The digest schedule is set per organisation.

Date ranges

  • Fiscal year aware: The date range picker now uses your organisation's fiscal year. Quarter to date and year to date follow your fiscal year start, and you can step through fiscal quarters and full years.
  • Custom ranges: You can still pick a custom start and end date. The range is stored in the URL, so a shared link opens on the same dates.
  • Budgets: The Budgets section now opens on your actual budgets, with budget requests on a separate tab. Existing budget links still work.

2026-06-12

AI insights is rebuilt to better highlight what your spend is buying, the roadmap now treats initiatives as the anchor that finance and delivery share, and the AI cost story runs end to end — from a usage rule, to an estimate, to a line in your forecast. Plus a reorganised main menu and our new integrations marketplace.

Agent insights — see what your AI spend is buying

Insights → Agent insights has been rebuilt around one question: you're spending this much on AI, so what are you getting for it?

  • Value-first overview: The page opens with your AI spend and what it produced, instead of burying the numbers under charts. Provider, model, and top-spender breakdowns are all a glance away.
  • Spend mapped to initiatives: AI cost is attributed up through projects to the initiative funding it, so you can answer "which initiatives is our AI budget paying for?" — not just "who spent it."
  • Savings made visible: We surface the money saved by prompt caching and by routing work to cheaper, equally-capable models, so the efficiency wins sit next to the spend.
  • Clickable insights: Insight cards link straight into the explore-and-remediate path, so a finding becomes an action.

Agentic workforce — usage rules that keep pace with the models

Resourcing → Agentic workforce:

  • Redesigned Rules screen: Start from ready-made templates, follow each rule through its lifecycle, and close the loop with alerts.
  • Tier-aware rules: Target tiers of models — frontier, workhorse, and lighter models — rather than naming every model by hand, with the model catalogue kept current as new models ship.

AI cost, end to end

  • AI spend estimate wizard: Estimate a project's AI cost even before full telemetry is flowing, surfaced as a project property.
  • AI in the forecast: Projects and initiatives carry an AI-usage row in the cost forecast, with an initiative-level rollup and model-mix, so projected AI spend sits alongside people cost.

Roadmap — initiatives as the new anchor

AI has changed the way we think about projects and initiatives. Teams are spending less time breaking down work into discrete tickets, and more time delivering a project. With this in mind, we've updated our roadmap to reflect this shift. You can bring your OKRs into Flowstate to track project progress and how AI is helping you deliver value.

  • Initiative-anchored portfolio: Projects roll up into initiatives, giving finance and delivery a shared view from strategy down to individual tickets.
  • Delivery status from your PMS: A project's delivery status is derived from its real ticket activity in Azure DevOps / Jira / Linear, instead of a status someone has to remember to update.
  • Report by project or initiative: Effort and cost can be sliced along either dimension, with cost centres derived from the initiative where appropriate.

Forecast & Budgets

  • Initiative breakdown in the cost forecast, matching the roadmap's finance spine.
  • Budgets: Linking to forecasts and initiatives, with drift surfaced and a guided correction flow when the numbers move.

Settings

  • Regrouped settings: Settings is now organised into eight groups that mirror the main app navigation, so things are where you'd expect them.
  • Integrations marketplace: A new Settings → Integrations marketplace to discover and connect everything Flowstate talks to.

Smaller things

  • Clearer plans: Tidier landing pages for features that aren't part of your plan.
  • More reliable PMS sync: Sync and webhook delivery are sturdier, with alerts on authentication failures.
  • Fixes: Overdue reports link to the correct timesheet week; the navigation no longer reloads when moving between your workspace and personal pages; and a round of chart polish — aligned baselines, denser legends, and total labels that no longer get clipped.

2026-06-08

Note: the finance model described below changed on 22 June 2026. The cost centre is now set on the project, and an initiative reports on the projects beneath it rather than owning their finance. See the 2026-06-22 entry above.

The initiative is now the finance anchor. The roadmap is no longer a flat list of projects that each carry their own money. An initiative is the thing a human funds — it owns the cost centre, the budget, and the governance — and projects are the delivery work your project management tool syncs in underneath it.

Initiative as finance anchor

  • Projects roll up into initiatives: Finance — cost centre, CapEx/R&D eligibility, budget — now lives on the initiative. A project inherits it: the initiative's cost centre wins, falling back to the project's own.
  • Synced projects are inert until you anchor them: A project pulled from Jira, Linear or Azure DevOps carries no financial signal — it can't inflate your CapEx or your forecast — until a human gives it a cost centre or adopts it into an initiative. Adoption is lossless: detach later and the project's own cost centre is restored exactly as it was.
  • Finance Mode per initiative: Each initiative either capitalises and claims R&D, bills a customer against an agreed budget and target margin, or is pure run-cost. One platform now serves product teams and services teams without bending the model.
  • Forecast versus actual is the headline: Planned commitment — committed FTE plus AI budget — sits on the initiative, effort and actuals roll up from its projects, and the variance between them is front and centre.

Strategy above, classification across

  • Objectives and key results sit above initiatives — the "why" and the measure — so the tree reads objective, then initiative, then project.
  • Portfolio lens classifies each initiative as keeping-the-lights-on, revenue, cost-reduction or compliance, so you can answer "how much of the portfolio is keeping the lights on versus generating revenue?" against the layer that holds the money.

CapEx claims, pull-based

  • Claims pull their own evidence: Raise a CapEx or R&D claim anchored at an initiative and Flowstate pulls its child projects in as evidence — or raise an ad-hoc claim over a hand-picked set. One claim per project per period is enforced, so the same work can never be capitalised twice.

Operating model

  • Relabel the nouns: Settings → Resourcing → Operating Model lets a workspace call them "engagements" or "programmes" if you prefer, and pick a preset for your kind of organisation. It's labels and defaults only — the model underneath is the same.

2026-06-06

A small release focused on access and speed.

  • AI Viewer role: A new role and AI-only account type for people who should see AI insights without access to the rest of your workforce data.
  • Faster team report cards: Opening a team's week is now quick even for larger teams, and the report card no longer holds up Submit.
  • Per-person AI attribution: AI usage captured on a device is now tied to the individual who ran it, so spend and fluency land against the right person.
  • Effort polish: A clearer "Missing cost centre" prompt on the workbench where one needs setting.

2026-06-05

A big batch of effort-reporting and capitalisation fixes, plus ready-made justification templates.

Capitalisation

  • The numbers reconcile: Holiday and genuinely non-project time now count as OpEx instead of quietly inflating capitalised effort, and the overview, breakdown, and no-team views all tie out to the same totals.
  • Switch reporting source: Toggle between Flowstate's estimate and what teams actually submitted, including in the export.
  • Drill into what's unclaimed: The unattributed-effort breakdown is now a drillable page organised by what you'd do to fix it.

Budgets

  • One budget view: My Budget and the scenario overview are now a single plan view, with a review mode for proposing and signing off changes.

Effort Reporting

  • Durable change log: The drawer's change log reads from the permanent audit trail, so the full history of submissions, edits, and approvals is always there.
  • Instant classification: Adding a new project classifies its effort as CapEx or OpEx immediately — no refresh.
  • Submissions that stay put: Submissions are confirmed per team so they can't orphan off the team, and submitted reporting counts only what was actually submitted.
  • Cleaner unattributed list: Remove or dismiss unattributed tickets one at a time.

Built-in justification templates

  • A library for every org: CapEx and R&D justification templates now ship centrally, so every organisation starts with a usable set rather than an empty list.

Fixes

  • Deleted comments disappear without a manual refresh.
  • The activity log shows plain-English action labels instead of raw codes.
  • Forecast per-team subtotals add up to their drill-downs.

2026-06-04

Capitalisation rebuild, a new Settings security area, and a security pass.

Capitalisation

  • Rebuilt to reconcile: The headline number now ties out to the detail beneath it, with an answer-first overview, reorganised tabs (Overview · Targets · Teams · Projects · Unclaimed), and no more phantom duplicate rows.
  • Cost lands in the right period: Effort is classified by the date it actually happened, so editing a quarter-end date can't shift cost into the wrong quarter.
  • Excel export overhaul: Exports group by cost centre with sub-totals and a CapEx / OpEx / Unallocated summary, are available on every tab, and include an untracked-staff-cost sheet.
  • Targets drill-in: Click a CapEx target to see the filtered list with per-team cost and contractor columns, and per-person project detail.

Settings & security

  • Settings → Security and Activity Log: A dedicated security area plus an activity log of workflow actions.
  • Security hardening: We closed a set of findings from a third-party penetration test, and removed a third-party analytics script that didn't meet our content-security-policy standard.

Fixes

  • Roadmap project search now searches all your projects with no hidden default filters.
  • Dismissed effort tasks no longer reappear in your inbox on the next sweep.

2026-06-03

A smaller release — sync reliability and settings.

  • Data Synchronisation workbench: Sync settings are now a per-service tabbed workbench instead of one long page.
  • More reliable PMS sync: Credential failures now stop cleanly and raise an alert instead of failing quietly, with alerts on webhook errors too.
  • AI usage controls: Set an organisation-wide AI budget and assemble usage rules from a guided builder.
  • Tighter permissions: Assigning a project's cost centre now requires roadmap-project edit permission.
  • Fix: Restored empty AI Risk pages and deep-linking to "Needs your attention" items.

2026-06-02

Integrations, a new effort signal, and a server-side lists pass.

  • GitHub code activity in effort: Effort tracking now blends in GitHub code activity alongside your PMS tickets, giving leads more to go on when validating a week.
  • Unattributed PMS work, inline: PMS work that isn't matched to a project is surfaced in the workbench with one-click linking, and cost-centre badges are clickable.
  • Smoother GitHub & Slack connect: Installing handles ownership and timing edge cases gracefully and shows readable errors instead of raw responses.
  • Teams in custom integrations: Teams are now a first-class entity in integration hooks, so you can pull or push team structures directly.
  • Faster, correct lists: Grouped-and-filtered lists now sort server-side and paginate correctly past the first page.
  • Security pass: Per-resolver authorization is now enforced in CI, alongside tenant-isolation and cross-origin hardening.

2026-05-28

Effort Reporting gets a ground-up rebuild — the new Effort Workbench — plus team CapEx targets and a team standings dashboard so leads can see how they're doing and file their reports faster.

Effort Workbench (Effort Reporting → My Teams / All Teams)

We've rebuilt weekly effort tracking as the Effort Workbench: a fast, flat, spreadsheet-style grid that replaces the old sidebar-and-cards timesheet. Fill in a whole team's week the way you would in a spreadsheet, then submit for approval in the same place.

  • Pick a team and go: A team selector replaces the team-list sidebar; "My Teams" opens pre-filtered to the teams you lead.
  • Keyboard-first entry: Tab and Enter move cell to cell and flow on into the next person, so you can complete a whole team without touching the mouse.
  • Live CapEx / OpEx / leave / unattributed band: A running, person-weighted total recomputes on every keystroke and mirrors the same capitalisation rate Finance sees — you know where the week stands as you type.
  • PMS tickets in context: Expand any project to see its linked Jira / Linear / ADO tickets — status, days attributed, and when the status last changed — read-only, so the grid stays clean.
  • Smarter project search: Adding a project ranks matches by relevance and tolerates typos ("biling" finds "Billing Service"), surfacing the right project instantly instead of burying it.
  • Everything in one rail: A pinned side panel carries targets, the submit/approve/reject flow, a change log, and the team discussion thread.

Team CapEx targets (Cost Capitalization → Targets)

Managers can now set CapEx targets per team, turning the business's capitalisation goals into something each team is measured against — not a number that lives only in a finance spreadsheet.

  • Set a target per team, per year: Give each team a target CapEx% for the fiscal year, with a per-quarter breakdown. Set, edit, or clear it from the team's drawer.
  • Actual vs target at a glance: Every team shows its real CapEx% against its target, with an over/under delta — green when at or above goal, red when below.
  • Rolls up the hierarchy: A team without its own target contributes to its parent's, so a department's number stays meaningful without setting a target on every leaf team.

Team standings (Effort Reporting → Dashboard)

The Effort Reporting landing page is now a standings view that shows each team lead how they compare to their peers:

  • Overdue vs recently approved: What your teams still owe (the older it is, the redder), or a clean "you're up to date" with recent sign-offs.
  • Your team vs its target: Your team's CapEx against its goal across the week, quarter, and year, next to the company average.
  • CapEx leaderboard: The top teams ranked by capitalised effort.
  • Speed run: The first teams to file their reports. Be first and you make the board; one overdue report and you're off it.

Changes from watching how you use Flowstate

  • We removed project-specific ticket levelling: Looking at the usage, almost nobody was levelling effort ticket by ticket, so we've taken it out of the main flow. The ticket breakdown is still there, now as read-only detail under a per-project dropdown. If you relied on it, we're genuinely sorry for the disruption — tell us and we'll make it right.
  • Copying a prior report is now much easier: We know a lot of teams don't have effort that's predictable enough to type out fresh every week, so copying from a previously submitted report is now a one-click job you can adjust from there.

We'd love your feedback

We really want this to be as painless as possible for you. If there's anything we can do to improve it — anything at all — please reach out in the #flowstate channel in your company's Slack, or just email will@flowstate.inc directly.

2026-05-14

A big release. AI Fluency dashboards land for org, team, and person; the Flowstate macOS app is now available; and a new AI Governance surface in Settings gives admins control over agent policy, AI keys, spend, and alerts.

AI Fluency

  • Org, team, and person dashboards: See how AI tools are being adopted and how effective they are at the level you care about. Org-wide trends, team-by-team comparison, and individual sessions all share the same metrics so the numbers line up across views.
  • Session classification, frustration, and cost in the same place — drill from a top-line fluency score down to the sessions that drove it.

Flowstate for macOS (invite-only alpha)

The Flowstate macOS app is in invite-only alpha. If you'd like access, ask your CSM — we're rolling it out gradually while we shake out the last edges. What's in the alpha today:

  • Sign in once, stay signed in: The app holds a device-auth grant and survives restarts — no more re-authenticating every morning.
  • Offline shell: The app starts and shows your last-loaded workspace when you're offline, instead of blocking on a network round-trip.
  • Tab strip with native window controls: Switch between Flowstate workspaces in tabs without losing the macOS traffic-light buttons. The tab strip is rendered by the web app, so it picks up theme changes immediately.
  • In-app update prompts: When a release requires an update, you get a toast inside the app with a one-click action — no surprise full-screen blockers.
  • Download from the docs site (alpha channel): Alpha builds are listed at docs.flowstate.inc behind the invite gate, with the download button falling back to the latest beta when no stable build is published yet.

AI Governance (new surface under Settings)

A new Settings → AI section consolidates the controls finance and security teams have been asking for. Insights stays where it was; Governance moves under Settings.

  • Agent Policy: Define which AI agents and providers are approved for use in the org, with rule types covering provider, model, project, cost centre, and behavioural signal. Rules are versioned and auditable.
  • AI Keys: Admin-reviewable list of API keys in use across the org, with provider, owner, last-seen, and review status. Keys that haven't been used in the last 30 days are flagged for cleanup.
  • Spend: Dedicated page for AI spend by team, project, provider, and cost centre — split from the broader Insights view so finance can land directly on costs.
  • Providers: Per-provider configuration and status — which providers are connected, what's flowing in, and where pricing gaps remain.
  • AI Service Accounts: Non-human AI workloads (CI agents, batch jobs, scheduled pipelines, internal tools) are now modelled as service accounts separately from individual users. Production AI usage is attributed to the workload that ran it, not whichever engineer's key happened to be on the machine, so per-person fluency scores stay honest and service-account spend rolls up to the system or cost centre that owns the workload.
  • Data loss prevention: New signal types detect sensitive data flowing into AI tools — secrets and credentials in prompts, PII patterns, code from out-of-scope repos, and oversized payloads consistent with bulk exfiltration. Each signal can drive an Agent Policy rule (warn, block, require justification) and a real-time Alert.
  • Behavioural signals: Beyond DLP, Agent Policy also reacts to how a tool is being used — anomalous usage shapes, off-hours bursts from accounts that don't normally run them, and provider/model combinations outside the approved set.
  • Alerts: Redesigned alerts page with notification delivery across in-app, email, and Slack. Triage state (new, acknowledged, resolved) is shared across channels, so an alert closed in Slack is closed in the app too.

Documentation

  • /ai/ docs section: The former /ai-telemetry/ section is now /ai/, with 12 new pages covering the desktop app, agent policy, signals, service accounts, and the AI Keys review flow.

2026-05-11

A focused release on vacancies, forecasting, and analytics. Six customer-reported forecasting bugs are fixed and the vacancy fill workflow now distinguishes employees from contractors with explicit handling for the outgoing allocation.

Vacancies

  • Fill with employee or contractor, with explicit allocation handover: When filling a vacancy you now pick whether the fill is an employee or contractor, and how the vacancy's allocations transition — adopt them as-is, end them at the fill date, or replace them. Previously this was implicit and a vacancy could leave behind an allocation that overlapped the new hire.

Forecasting

Bug fixes

  • February sometimes disappeared from forecasts: A setMonth overflow on dates near month-end could silently drop February from the period list. Periods are now constructed with explicit year/month arithmetic.
  • Forecast cells didn't match scenario contractors: Scenario contractor allocations now contribute to forecast cells on the same rules as live contractors. Cell totals between forecast and scenario views agree.
  • AI costs scaled incorrectly outside the query window: AI cost contributions are now clamped to the overlap between the cost record and the user's query range, instead of being attributed to whichever period happened to contain the record's start date.
  • Five further customer-reported bugs across cost cells, vacancy contributions, and period rollups — see commit history for specifics.

Analytics

  • AVG aggregation now respects distinct resources: Averages across teams and projects are computed per distinct resource rather than per row, so a person on two teams isn't counted twice.
  • New dimensions: TEAM_PARENT and JOB_ROLE_FAMILY are now accepted in the analytics query input, so you can group by parent team or role family without writing a custom report.
  • Custom dimensions retained on report re-open: Reports no longer "forget" their custom dimensions when reopened from the saved list.

UI

  • Translated row menus: Row context menus across plan-list pages were partly hardcoded in English. They now route through the i18n layer and pick up the user's locale.

2026-05-07

Effort-tracking refinements driven by feedback from finance leads and team managers, plus a contractor rate-type cleanup and a custom-integration reliability change.

Effort Tracking

What we heard

  • "Recalculated" cells weren't visibly distinct from cells someone had edited — leads couldn't tell at a glance which numbers were the system's and which were a person's.
  • Auto-save was over-eager and produced noisy audit history; bulk-edits showed up as dozens of micro-events.
  • Orphan ticket rows showed ticket IDs but the links to ADO/Jira/Linear weren't clickable.

What's changed

  • Per-row staleness, derived live: Each row shows whether its numbers are based on the latest ticket data or on an older snapshot, with a plain-English explanation ("based on ticket activity through Wed 6 May"). Staleness is now derived at read time rather than stored on the row, so it can't drift.
  • Clearer system-vs-person attribution: Cells the system recalculated are visually distinct from cells edited by a person. A new Reset to recalculated action restores a row to system numbers in one click.
  • Diff-aware auto-save with grouped audit history: Auto-save now only writes when values actually change, and bulk edits within a short window are collapsed into a single audit entry with a recalc preview. The change timeline is readable again.
  • Correct review permissions: The review affordance now respects per-team permissions — users see the right button (submit, approve, reject, or none) for their actual role on the team.
  • Backfilled tickets respect their project binding: When a ticket is backfilled into a past week, it now lands in the right project row instead of in __unattributed__. Tickets that were stuck in unattributed sentinel cells from earlier backfills are surfaced into their bound project on next load.
  • Clickable orphan ticket URLs: Ticket links in the orphan row are now clickable and route through the right provider URL pattern — including the rewrite from ADO's API URL to the human-readable work-item URL.
  • No-team selection no longer overwritten: When a user explicitly picked "No team" as a filter, a stale fallback effect could overwrite it back to the default team. Fixed.

People

  • Salary sort orders by amount: The salary column on the People list was sorting by the count of salary-adjustment rows rather than by the current salary amount. Now sorts by amount.

Plan list pages

  • Sorts and groups across plan lists: Several plan-list pages were silently falling back to _count-based sorts when the requested sort key wasn't recognised, producing surprising orderings. All four affected helpers now use the right field and a contract test catches future regressions.

Contractors

  • Canonical rate-type set: Contractor rate types are now {daily, monthly, annually} with hourly kept in the canonical set. This standardises on the rates we see in customer data and clears up edge cases where non-canonical values weren't rendered correctly in the contractor drawer.

Reports

  • Split-scale stacked bar chart: Stacked bars with a dominant segment and a long tail are now readable. The chart can render the long-tail segments on a secondary scale so they're visible without losing the absolute values.

Custom Integrations

  • Full reconcile on every PULL: We've removed the per-record fingerprint cache from custom integrations. Every PULL now reconciles the full payload against the live state, which means a hook that re-emits a record with the same shape no longer silently no-ops if the upstream cache was inconsistent. PULL hooks are slightly slower in the steady state; correctness wins.

2026-04-29

Two changes this week. First, scenario plans now have an approval flow so non-approvers can model freely without ever touching live data. Second, a few cost-capitalisation fixes that came out of yesterday's review session.

Scenarios — approval flow

What we heard

  • Some teams want planners who can model what-ifs but should never edit live workforce data directly.
  • Approvers don't want to merge changes they themselves made.

What's changed

  • New Edit Scenario Plans permission separates scenario edits from live edits. Grant it to "planner" roles to let them work freely inside scenarios while keeping live data read-only for them.
  • Submit-for-review workflow: scenarios now move DRAFT → SUBMITTED → MERGED. The submitter picks one or more reviewers from the org, or leaves the list empty for an "open review" handled by anyone with merge permission.
  • Self-approval is blocked: the creator of a scenario cannot approve or reject their own submission. An assignee (or any user with merge permission, when the review is open) has to act.
  • Reject with a reason: rejected scenarios return to DRAFT with a banner showing the approver's reason, so the submitter knows what to address before resubmitting.
  • Edit reviewers without withdrawing: the submitter can add or remove reviewers on a SUBMITTED scenario; newly added reviewers are notified on the spot.
  • Notifications across channels: in-app, email, and Slack DMs go to assignees on submit and to the creator on approve / reject. Slack is best-effort and skipped silently when the org hasn't installed it.
  • Audit trail: every submit, withdraw, approve, and reject is recorded against the plan in the audit log with the actor and reason.

Cost Capitalization

What's changed

  • New filters on the Cost Capitalization view for narrowing down by project, period, and team.
  • Re-classify submitted time directly from the reporting view: move time entries onto a different project without going back to the original effort report.

2026-04-24

Yeah — we know it's a big release, and there's a lot to talk about. This one reworks effort reporting around how leads actually validate their teams' week, expands AI Workforce cost controls, launches Custom Integrations, and tightens analytics, allocations, CapEx recommendations, and security. Grab a coffee.

Effort Reporting

What we heard

  • Leads struggle to remember what everyone worked on across a week — a lot moves, and by Friday the detail is gone.
  • What people say they did and what they actually did often don't line up, so reports look off.
  • Re-allocating a ticket to the right project in ADO just to file an effort report is painful.
  • "Non-project work" has become a default dumping ground, which means capitalisable effort is going unreported.

What's changed

  • Tickets pulled straight from your project management system: Flowstate now shows the tickets each person worked on during the week, with our estimate of the % time spent on each one and the current ticket status (closed, in review, in progress). Sub-tickets are visible too, so leads see the full picture without hunting.
  • Drag and drop tickets between projects: Rebalance a week's effort by dragging tickets directly in Flowstate. No more jumping into ADO, Jira, or Linear just to re-attribute for a report.
  • "Non-project work" is no longer a silent default: Leads have to explicitly move tickets there before we accept it, so capitalisable effort gets attributed properly.
  • New "Unattributed" category: Tickets we couldn't match to a project — and the time against them — surface in their own row. Leads can't submit while anything remains unattributed.
  • Conversation and change timeline on the page: Review comments and the full history of submissions, approvals, and edits sit directly alongside the timesheet, not in a separate tab.
  • Weekly summary tiles at the top: Status, save-state, and totals at a glance before you scroll.

Bug fixes

  • Fixed a refresh loop that trapped some users on the Effort Reporting page.

AI Workforce

  • Finance wants real spend, procurement wants list price — now you can show both: Toggle between incremental (your actual spend) and market-rate (list-price equivalent) without rebuilding the view.
  • New models no longer silently report zero cost: When a model appears in telemetry that we haven't priced yet, we flag it on the page and prompt for a price.
  • Session and seat-level costs are easier to reconcile: Cleaner per-session cost breakdowns and a redesigned Seats view with per-seat usage detail.

Bug fixes

  • Total tokens consumed no longer returns as zero for larger sessions.

Analytics & Report Builder

  • Open up analytics without exposing salaries: Cost data is now gated by its own permission, so you can give the surface to more users without handing over sensitive numbers.
  • Slice analytics by team hierarchy and role family: Plus dashboard sharing with colleagues.
  • Faster queries: Chart and table loads that used to run into double-digit seconds on larger orgs are now substantially quicker.
  • Report builder polish: Tabbed configuration panel, cleaner chart previews, validation on empty filters.
  • New horizontal bar chart with reworked styling, plus % or value labels on stacked bars.
  • Retired chart types: Sankey and McKinsey 7S removed in favour of the redesigned bar and time-series charts.

Custom Integrations (Flowstate Hooks)

  • Integrate with anything, without hosting a sync service: Write JavaScript directly in Flowstate to pull data in or push data out of any third-party system, on a schedule you define.
  • Nested upsert: Create related records (a team and its members, a project and its allocations) in a single hook call, with relationships resolved automatically.

Allocations

  • See who's fully allocated and who has gaps at a glance: New Allocations view shows team member allocations across projects and time, with inherited team-level allocations rolled down to each member.

CapEx & R&D

  • Better AI CapEx recommendations: Improved accuracy, cost-centre-aware suggestions, and stale recommendations automatically superseded when a better one arrives.
  • "Accept All" button: Apply every recommendation in one click instead of going one by one.
  • Analysis findings improved: Findings now include structured title, impact, and evidence — and no longer include hallucinated cost figures.

Security hardening

  • Multiple dependency patches in line with our dependency management policy.
  • Additional permissions scoped closer to field-level for entities like employees and contractors.
  • Flexible session timeout configurable per organisation.
  • Passkey-type restrictions — admins can limit sign-in to, for example, hardware tokens only.

Forecasting

Bug fixes

  • Vacancies no longer back-fill forecast costs: When a vacancy is created with a start date in the past, the effective start is clamped to today.
  • Faster processing of forecasting queries.

That's the lot. Please keep sending us your feedback — the bulk of this release came directly from things customers told us were painful, and it helps us decide what to build next. Thanks for using Flowstate.

2026-04-08

This release introduces custom attributes, a unified list page experience with drag-and-drop, and takes analytics dashboards out of beta.

New features

  • Custom attributes: Define your own fields on employees, contractors, vacancies, teams, and projects. Custom attributes appear in list views, detail pages, and the analytics engine — so you can slice workforce data by any dimension that matters to your organisation. Available in the UI and the REST API.

  • Resource types: Work types have been renamed to resource types and now apply to both employees and contractors. Use them to classify the kind of work a person does — permanent, fixed-term, statement of work, managed service — regardless of employment relationship.

  • Analytics dashboards for all users: The analytics dashboards feature is now generally available. Every user with the appropriate permissions can build and edit dashboards with built-in chart types — no beta flag required.

  • Vacancy fill by employee or contractor: Vacancies can now be filled by either hiring an employee or engaging a contractor. Use the new fill endpoint in the REST API, or fill directly from the vacancy detail page.

Improvements

  • Unified list views with drag-and-drop: All nine list pages (People, Contractors, Vacancies, Teams, Projects, and others) now share a single DataView component with consistent kanban, timeline, and table layouts. Drag and drop items between groups to reassign teams, change lifecycle stages, or move project allocations — the mutation fires automatically.

  • Saved view selector: Save your preferred grouping, sort, and filter configuration on any list page and switch between views from the toolbar.

  • Notification management: Clear individual notifications or delete all from the inbox. The bell menu is now more compact and easier to scan.

Bug fixes

  • Search in menus: Fixed broken search in combobox dropdowns across the app. All searchable menus now use a consistent server-side search pattern with 300ms debounce.

  • PMS lifecycle stage mapping: Project status mapping now works across all PMS providers (Linear, Jira, Azure DevOps) using a single generic configuration, replacing the previous provider-specific implementations.

2026-04-01

Ahoy! In honour of International Talk Like a Pirate Day (arriving a few months early), Flowstate now speaks fluent maritime.

New features

  • Full maritime localisation: The entire platform has been translated into seafaring dialect. Navigate your Ship's Log (Settings), review the Crew Roster (People), manage your Fleet (Organisation), and track Treasure (Financials) — all in the language of the high seas. This is a one-day-only experience, so enjoy it while the winds are fair.

2026-03-23

This release adds a Slack integration that brings Flowstate notifications and approvals directly into your team's workspace.

New features

  • Slack integration: Connect your Slack workspace to Flowstate and receive direct messages for workflow events — effort submissions, CapEx and R&D approvals, unlinked project reminders, and AI recommendations. Set up once in Settings and the whole organisation is connected.

  • Effort reports in Slack: On your configured submission day, team managers receive a DM with a table preview of their team's weekly effort report. Accept and submit directly from Slack, or click through to Flowstate to make edits first.

  • One-click effort approval: When an effort report is submitted, approvers receive a Slack DM with an Approve button. No need to open Flowstate for straightforward approvals — reject still routes to the full UI where you can provide a reason.

  • Unlinked project nudges: When projects sync from Azure DevOps, Jira, or Linear but aren't linked to a Flowstate project, the responsible person (or their manager) gets a Slack DM. Link to an existing project or auto-create one without leaving Slack.

  • CapEx and R&D approval notifications in Slack: Every stage of the CapEx and R&D approval workflows now sends Slack DMs — rationale required, submitted for review, approved, rejected, changes requested, and completed. Reviewers get a direct link to the relevant page.

  • AI recommendation alerts: When Flowstate's analysis scanner identifies projects that may qualify for CapEx capitalisation or R&D tax relief, relevant users are notified in Slack with a link to review the recommendations.

Improvements

  • Organisation switcher: Users whose email appears in multiple organisations can now switch between them directly from the sidebar menu without logging out. Cross-tenant switching is also supported via a secure handoff flow.

  • PMS project owner deduplication: The owner filter on the PMS projects page no longer shows the same person twice when their email was resolved to an employee at different times. Contractors are now also resolved as project owners.

2026-03-20

This release introduces AI usage monitoring with telemetry collection, session-level insights, and a governed budget approval workflow.

New features

  • AI usage telemetry: Deploy the Flowstate telemetry service alongside your AI coding tools to collect session-level usage metrics and prompt data automatically. Every AI coding session — Claude Code, Cursor, Gemini CLI, and others — is captured with token counts, cost, duration, and the prompts themselves, then attributed to the person who ran it and the project they were working on. Prompt-level data enables deep analysis of how your team uses AI tools and what kinds of work they delegate.

  • Session classification and frustration scoring: Each AI session is automatically classified by work type — feature development, bug fix, refactoring, testing, debugging, architecture, documentation, or investigation. A frustration score highlights sessions where engineers struggled, so you can spot tool friction before it affects productivity.

  • AI spend in workforce analytics: AI costs now appear alongside employee and contractor costs in the analytics engine. Query AI spend by team, project, cost centre, provider, model, or individual — using the same metrics and dimensions as the rest of your workforce data. The AI Workforce dashboard surfaces six interactive charts: spend by project, session categories, usage by provider over time, frustration trends by model, cost by cost centre, and top individual spenders.

  • Session-level drill-down: Browse individual AI coding sessions with confidence scores, provider and model details, and project attribution. Switch between Sessions, Teams, and Individuals views to see the data at the level that matters. Filter by team to focus on a specific group.

  • Budget approval workflow: Create budget requests with headcount and cost targets, route them through designated approvers, and track status from submission to final sign-off. Approvers receive notifications and can approve, reject, or request changes — giving finance teams a structured path from planning to commitment.

Improvements

  • Daily and weekly chart granularity: AI charts adjust their time resolution automatically — daily bars for 7-day views, weekly for 30-day, monthly for quarter and year. A new 1-year time window is available for longer-term trend analysis.

  • Frustration chart auto-scaling: The frustration-by-model chart now scales its Y-axis to the actual data range instead of always showing 0–100%, making small differences between models easier to spot.

2026-03-18

This release adds AI-assisted justification writing for CapEx and R&D tax claims, a governed approval workflow, and improvements to support global teams.

New features

  • AI-drafted CapEx and R&D justifications: Open any project and start a justification for cost capitalisation or R&D tax relief. Flowstate checks project readiness — team allocations, dates, and cost data — then generates a structured draft. Refine it section by section, ask for suggested edits, or answer contextual questions to add project-specific evidence. Submit for internal review without leaving Flowstate.

  • Justification status on every project: Project detail pages now show the status of in-flight and completed CapEx and R&D justifications — Not Started, Drafting, In Review, Approved, Completed — so project leads and finance teams always know where things stand without chasing documents or people.

  • Governed approval for R&D claims: Admins can configure who must sign off on R&D claims before they are finalised. Under Settings → R&D Approval, designate approvers and a completion authority. Claims move through a fixed sequence — in review, approved, then closed with the actual credit received recorded — giving finance an auditable trail for each claim.

  • Export finalised justifications: Approved CapEx and R&D rationales can be exported to Word and Excel for submission to auditors, tax advisers, or internal finance sign-off.

  • Language selection in onboarding: New users choose their language during the welcome flow and the choice takes effect immediately — the rest of onboarding, and the app itself, appears in the selected language from that point on.

  • Tenant-wide default language: Admins can set a default language for the organisation under Settings → General. This controls the language shown on the login page before users sign in — useful for teams where English is not the primary language.

  • Fiscal year and accounting framework configuration: Admins can now define the organisation's fiscal year using a country preset or manual start date, and select the applicable accounting standard for CapEx (IAS 38, ASC 350, AASB 138, and others) and R&D tax relief framework. These settings flow into reports and justification documents automatically.

  • CapEx and R&D recommendation notifications: Users are notified when AI-generated project recommendations are ready. The notification menu now shows an unread count and a toggle to filter to unread items only.

  • Budget forecasts: Create named budget forecasts and compare them against the live forecast — see headcount, cost, and FTE side by side to evaluate hiring plans, restructures, or spending scenarios before committing.

Improvements

  • Amortisation captured at completion: When marking a capitalisation as complete, record the capitalised amount, amortisation period, and start date in a structured dialog — no separate spreadsheet required.

  • Stale draft alerts: If project data changes after a justification draft is generated — new people added, dates revised, costs updated — the draft is flagged as potentially out of date before it goes to review.

  • Settings grouped by domain: Finance and compliance settings now sit under dedicated groups — Finance Configuration and Insights & Reporting — making them faster to find.

  • Maritime localization: We’ve anchored some preliminary language support for high-seas dialects. Keep a weather eye on the platform as we approach the start of April.

2026-03-13

We've made effort tracking faster, more transparent, and harder to accidentally lose work — based directly on your feedback.

New features

  • Auto-save as you work: Your timesheet edits are now saved automatically in the background. If you close the tab, switch pages, or lose your connection, your work is still there when you come back.
  • See where your effort numbers come from: Hover any auto-calculated effort cell to see the exact tickets that make up that number, with direct links back to ADO, Jira, or Linear. No more guessing why Flowstate calculated a specific percentage.
  • Holiday and leave tracking: Record holiday and annual leave directly in your timesheet. Leave days are kept separate from project costs automatically — no need to create a dummy project.
  • CapEx linking health at a glance: Each project in the CapEx table now shows a quick colour indicator — green means fully linked, yellow means some gaps, gray means nothing linked yet. Hover for details so you can fix gaps before month-end.
  • Your allocated projects, front and centre: When adding a project to your timesheet, projects you're formally allocated to now appear right at the top — no more searching for projects you know you should be logging against.

Improvements

  • Safer discarding: The "Discard Changes" button now asks for confirmation first, so you won't accidentally wipe out your edits.
  • Faster timesheet entry: After adding a project, your cursor jumps straight to the first editable cell so you can start logging immediately.
  • Clearer "Non-project Work" guidance: A tooltip now explains when to use this line, helping you categorise effort more accurately.
  • Instant CapEx link updates: After linking a PMS project to a Roadmap Project, you'll see the status update immediately — no need to refresh.

Bug fixes

  • CapEx unattributed rows loading correctly: Fixed an issue where unattributed effort rows and PMS attribution breakdowns could appear blank or fail to load.
  • CapEx data no longer disappears on page load: Resolved an issue where project breakdown and unattributed effort data could intermittently vanish when the page loaded.
  • CapEx totals are now accurate: The footer Total row no longer incorrectly includes unattributed effort, giving you a cleaner picture of your project forecast costs.
  • Task email links work again: The "View All Tasks" button in task digest emails now takes you to the right page.
  • Auto-save respects permissions: Automatic saving no longer activates for users who don't have edit access to a team's timesheet.

2026-03-12

This release introduces MCP integrations, a public REST API, webhooks, and a broad set of new features and improvements across planning, forecasting, and admin experiences.

New features

  • MCP for Claude and ChatGPT (Beta): Connect Flowstate to Claude and ChatGPT via Model Context Protocol. Feature toggle with consent warning and rate limiting.
  • Documentation site: New documentation site at docs.flowstate.inc with guides, tutorials, and reference material.
  • REST API: Public REST API for programmatic access to Flowstate data. API key authentication with 90-day max lifespan.
  • Webhooks: Event-driven notifications for changes in Flowstate. Configure webhook endpoints from Settings.
  • CapEx cost reporting: Improved cost capitalization view with project-level breakdown table, ability to hide charts, and Excel export. Expandable project rows drill into individual employees, contractors, and AI agents, with further drill-down into PMS project effort attribution. An "Unattributed" row surfaces effort costs on PMS projects not linked to any roadmap project, with inline "Link to Roadmap Project" action to fix attribution.
  • Timesheet recent projects: The add-project popover in team timesheets now shows recently logged projects for quick access.
  • Tenant Admin role: New enterprise role for delegated administration.
  • AI workforce redesign: Redesigned AI agent section with line charts, pie charts, benchmark gauges, and S-curve adoption modeling.
  • Suspend/reactivate users: Admins can suspend and reactivate user accounts from Settings.
  • Line manager property: Added line manager field for employees and contractors.
  • Inline editable project names: Edit project names directly on the detail page.
  • Resource planner improvements: Redesigned resource planning tab with 3-step unified flow and conflict timeline.
  • Project cost tab redesign: Toggle between forecast/actual modes with resource cost breakdowns.

Improvements

  • EU region deployment: Full multi-region support for European customers.
  • PMS project filtering: Owner filtering, creator display, status filtering, and link-status filtering for PMS projects.
  • Approval flexibility: Any approver at a level can now undo approval, not just the original approver. "No limit" and "1 month" undo window options added.
  • Rejection comment preservation: Manually entered values preserved after rejection.
  • Analytics overflow prevention: Widened decimal casts to prevent numeric overflow in analytics queries.
  • Workforce analytics charts: Bench/gardening leave, project health matrix, and zombie cost charts now use dedicated GraphQL queries for better performance and independent loading.

Bug fixes

  • Email security scanner fix: Prevent security scanners from consuming magic link tokens.
  • Currency display fixes: AI costs now display in all modes; fixed currency formatting in project drawer.

2026-02-26

This release adds configurable undo windows for effort tracking, a PMS task drill-down, and a critical effort allocation bug fix.

New features

  • Configurable undo windows: Admins can now configure how long team leads and approvers have to undo their submissions and approvals. Options range from 1 hour to 7 days, or disabled entirely. Find this under Settings > Cost Review > Cadence.
  • PMS project task drill-down: Click any project on the PMS roadmap page to see its individual tasks, with status summary badges, search, filtering, and pagination.

Bug fixes

  • Phantom effort on closed projects: Fixed a bug where closed PMS projects could show ongoing effort indefinitely. Tasks whose normalized status didn't match the organisation's source-system status mapping were treated as still active, producing phantom effort percentages long after the project was completed.

2026-02-23

This release includes improvements and bug fixes.

Bug fixes

  • Unable to undo effort submission: Fixed a bug where team managers and approvers could not undo their effort submission.
  • Incorrect deltas in the forecast: Highlighting of the deltas is now correct when comparing scenarios to the base plan.

Improvements

  • Contractor view: A reporting view has been made accessible to Finance and Operations roles which allows approvers to see a summary of where contractors are contributing their efforts.
  • Project Management view inside Flowstate: You can now see Azure DevOps work items, Jira epics and Linear projects within Flowstate to see their mappings directly.

2026-02-13

This release includes improvements and bug fixes.

Bug fixes

  • In-view search: Fixed a bug where the character input was reversed while the search was processed.
  • Effort tracking date select: Fixed an issue where the dropdown menu would not open for some users.
  • Vacancies in forecast: Vacancies are now correctly included in the cost forecast table.

Improvements

  • Convert vacancy to employee: You can now fill vacancies by converting them to employees, preserving their allocations.

2026-02-12

This release is a broad UI and UX refresh across planning, forecasting, settings, and admin experiences, plus new release notes access and theming support.

New features

  • In-app release notes: Read release notes from the sidebar, with access to past releases and a dedicated public endpoint.
  • Theme toggle: Switch between light, dark, and system themes from the sidebar footer.
  • Quick org menu actions: The organization menu now surfaces Preferences, Organization settings (when permitted), and Log out.
  • Searchable week selector: Effort Tracking now includes a dedicated week selector with search and calendar view.

Improvements

  • Design language refresh: Updated palettes, typography (mono for numbers), elevation rules, and toast styling.
  • Scenario compare/merge clarity: Scenario visuals, headers, and comparison layouts refined for faster scanning and context.
  • Effort Tracking usability: Week navigation and team submission views refined for better status visibility.
  • Cost forecast tables: Forecast row layouts, expandable rows, and cost cells refined for readability.
  • Roadmap and projects: Project timeline and roadmap views refreshed for clearer project presentation.
  • Teams views: Team list pages now support parent team filtering and updated team cards.
  • Workforce analytics: Charts and report dashboards updated for clearer presentation and interaction.
  • Search: Substantially improved search relevance and result presentation across the app.

Fixes

  • Numeric readability: Numerical status values use mono styling for better scanability.
  • Projects not showing: Resolved an issue where some projects were not appearing in the project list.

2025-06-11

General improvements and bug fixes.

Flowstate Documentation