FlowParse
Project accounting 10 August 2026 15 min read

Project cost tracking from invoices

A great deal of what looks like project overspend is not overspend at all. It is cost that never reached the project it belonged to, because it arrived on an invoice organised by supplier rather than by project — and nobody split it. FlowParse pulls those invoices apart line by line so the allocation becomes possible at all.

FlowParse
flowparse.io

Extract a supplier invoice now

Upload one PDF — every line comes back with description, quantity, unit price and total, checked against the invoice total.

Loading quota…

Upload a document

or import from cloud
Smart Merge — drop many PDFs and combine them into one Excel (up to 5 files)

Free: 10 pages / month · Upgrade for more

Files encrypted in transit · auto-deleted after processing · GDPR compliant

The project that came in over, except it did not

A project finishes. Someone adds up the costs attached to it, compares them to the fee, and the margin looks acceptable. Six weeks later the quarterly numbers land and the business is less profitable than the sum of its projects suggested.

The gap is not fraud and it is rarely poor estimating. It is unallocated cost: real money spent on real projects that ended up in general overhead because the document it arrived on did not say which project it was for.

That is a document problem before it is an accounting problem, and it is fixable — but only if the invoice can be taken apart into the pieces that belong to different places.

Where the cost actually leaks

Five leaks account for most of it, and none of them involve anyone doing anything careless.

LeakWhy it happensWhere it ends up
One invoice, several projectsThe supplier bills by month, not by projectCoded to one project or to overhead
No project reference on the documentNobody asked the supplier for oneGeneral expenses
Cost arrives after deliveryThe project was already closedNext period, unattached
Small amounts below anyone's thresholdNot worth splitting individuallyOverhead, in aggregate significant
A licence or tool bought for one jobRecurring, so treated as generalOverhead forever

The first row is the structural one. A supplier invoices you the way it suits their billing cycle, and that is almost never one invoice per project of yours. Splitting is not an optional refinement; it is the only way the numbers can be right.

The fourth is the one that surprises people when it is measured. Individually trivial amounts, none worth the effort of allocating, adding to a figure that would definitely have been worth allocating had it arrived as a single line.

This is not about paying the right amount

Worth separating early, because the two get confused and the confusion is why the second one rarely gets done properly.

Approving an invoice asks: is this correct and should we pay it? That control is usually well established, and our three-way match page covers it.

Project costing asks something else entirely: whose cost was this? An invoice can be perfectly correct, properly approved and promptly paid, and still leave your project numbers wrong — because approval never required anyone to say which project consumed it.

The same document feeds both questions. The first is answered by the total; the second needs the lines. That difference is the whole reason this page exists separately.

FlowParse
flowparse.io

Why line level is not optional here

A total is a single fact about a supplier relationship. A project needs facts about pieces of work, and those live in the lines.

Consider a media invoice covering three campaigns, a print bill covering two clients, or a freelancer’s monthly invoice listing four engagements. Each is one payable and several project costs, and the only thing that distinguishes them is the line detail.

Without it you face a bad choice: attribute the whole invoice to one project — which overstates it and understates the others — or push it to overhead, which understates all of them. Both are wrong and the second is more common because it feels neutral.

Extraction that returns lines rather than totals is therefore the enabling step, not a nicety. Our line item extraction page covers how the table on a document becomes rows, including on scanned invoices where there is no structure to read at all.

Invoices that span several projects

The normal case in agency and professional services work, and the one that decides whether the whole exercise is trustworthy.

When the lines map cleanly, allocation is mechanical: each line names its campaign, job or client, and the split follows the document.

When they do not, you need a basis — hours, units, an agreed percentage — and the basis should be recorded against that supplier rather than decided afresh each month. A split that drifts is worse than a crude split that holds, because only the second is comparable over time.

When the invoice genuinely covers something shared, say so explicitly. A tool used across every project is overhead, and forcing it onto projects by an arbitrary rule produces numbers that look precise and are not.

The single most effective improvement is upstream, though: ask suppliers to put your project reference on the line. Most will, it costs them nothing, and it converts a monthly judgement into a lookup. The tagging mechanism that carries the result through the data is on dimension tagging.

Cost arrives after the work does

A structural feature of project accounting that catches people out, and the reason so many projects look better at the end than they turn out to have been.

Work is done in March. The subcontracted portion is invoiced in April, the print bill arrives in May, and a licence renewal that was bought for the job lands in June. The project was reported as finished and profitable in March.

Closing a project for costing purposes at delivery therefore guarantees an optimistic final figure. Everything that arrives afterwards is genuinely that project’s cost and is now homeless.

The fix is unglamorous: keep projects open for costing for a defined period after delivery, and have a rule for what happens to anything arriving after that. Even a rough accrual at closure is better than nothing, because it makes the tail visible instead of silent — which is the same logic as the month-end close applies to periods.

How it works

1 · Upload the invoices

A month or a quarter, up to 100 files at once. Scanned and photographed documents go through OCR first.

2 · Lines extracted

Description, quantity, unit price and line total, read by meaning rather than by fixed position — so a new supplier needs no template.

3 · Totals checked

The sum of the lines is compared with the invoice total. If they disagree, something was misread and the allocation would be built on it.

4 · Allocate

By line where the document says, by recorded basis where it does not, and to overhead where that is the honest answer.

5 · Tagged and traceable

Every row keeps its source document and page, so any allocated figure can be opened back to the invoice it came from.

6 · Export

Excel or CSV with fixed columns, ready for your ledger or for a project report.

FlowParse
flowparse.io

Committed but not yet invoiced

The largest blind spot in any invoice-based view, and worth naming plainly because no extraction can solve it.

An order placed with a supplier is money spent from the project’s point of view, even though no invoice exists. A project manager reading only invoiced cost can be substantially over budget while the report shows room.

Nothing in a document tells you this, because the document has not been created yet. What works is a short commitments list kept by whoever places the orders — what, roughly how much, roughly when — reconciled as invoices arrive.

For most projects that list is a handful of lines. For anything with long lead times it is the more important half of the picture, and a process that ignores it will produce a surprise near the end of every large job.

Internal time is the other half

This page is about external cost, and it is worth being clear that it is half the picture rather than the whole of it.

In a services business, people are usually the largest project cost and they do not arrive on an invoice. Time tracking is a separate system with separate problems, and no amount of document extraction substitutes for it.

The two halves fail differently, though, and that is the useful observation. Time is usually tracked and often inaccurate; external cost is usually accurate and often unallocated. Most businesses have invested heavily in the first and not at all in the second.

Which is why the external side often gives the faster improvement: the data is already correct, it simply is not attached to anything.

Reading margin before the end

Final margin is a post-mortem. What changes decisions is cost-to-date against budget, while there is still work left to influence.

NumberWhere it comes fromHow reliable
External cost to dateAllocated invoice linesHigh — it is documented
Internal cost to dateTime trackingDepends entirely on the habit
Committed, not invoicedA manual listAs good as the list
Percentage completeThe project managerA judgement, and known to be

Showing the reliability column alongside the numbers is worth more than it looks. A margin figure built from one documented input and three estimates should be read as an estimate, and labelling it that way keeps people from acting on precision that is not there.

How often to do it

Monthly for the allocation, weekly for the exception check on active projects. That split matches how the information actually arrives.

Invoices come in over the month and there is no benefit to allocating them daily. What does benefit from a weekly glance is the small number of projects that are close to budget, because that is where a week of delay changes an outcome.

Do the allocation as part of the same routine that processes payables, not as a separate exercise. A project-costing task that lives on its own is one that gets skipped in a busy month, and one skipped month contaminates the year.

FlowParse
flowparse.io

Six mistakes

Allocating whole invoices to one project

Overstates one project and understates the others, and the error is invisible because the total is right.

Pushing anything ambiguous to overhead

Feels neutral and understates every project at once. Overhead should be a decision, not a default.

Closing projects for costing at delivery

Guarantees an optimistic final figure, because the tail of late invoices is real and now homeless.

Ignoring committed cost

A project can be well over budget while the invoiced view still shows room.

Re-deciding the split basis every month

The allocation drifts, and only a stable basis makes projects comparable to each other.

Never asking suppliers for a reference

The cheapest improvement available, and almost nobody makes the request.

What the first month actually looks like

Worth setting expectations, because the first month is the one that decides whether there is a second, and it does not look like the steady state.

More of it is manual than you expect. No rules exist yet, so a large share of the documents need a decision. That share falls sharply in month two and again in month three as the rules accumulate — the first month is the investment, not the running cost, and judging the method by it is like judging a commute by the first day in a new city.

The unassigned bucket will be embarrassing. A quarter of spend or more, on a first pass, sitting against no project at all. This is not a failure of the exercise; it is the exercise working. That number was always this size and was simply never visible, and watching it fall over three months is the clearest evidence that anything is improving.

One number will look wrong, and might be. A project with far more cost than anyone expected is either a genuine finding or a misallocation, and the only way to tell is to open the invoices behind it. Do that before mentioning it to anyone — a first-month figure presented as a conclusion and then retracted costs more credibility than it buys.

Do not restructure anything yet. One month is a snapshot with timing artefacts baked into it. The findings that survive into month two and three are the ones worth acting on, and they will still be there.

A realistic target for a first pass is that most spend reaches a project, the rules for the ten highest-volume suppliers are written down, and one question has been raised that nobody could previously have asked. That is a good month.

Who this is for

Agencies billing by project or retainer

Media, print, freelance and production costs arriving on invoices that span several clients.

Professional services firms

Where recoverable costs on an engagement determine what can be billed on.

Anyone quoting fixed fees

If the price is fixed, cost allocation is the only thing that tells you whether the work was worth taking.

Finance teams supporting delivery

Producing project numbers people trust enough to act on before the job is finished.

The full agency workflow — who allocates, when, and what gets reviewed — is on project accounting for agencies, and the supplier-side detail on supplier invoices by project.

What this is not

It is not project management. It does not track tasks, schedules or progress, and it has no opinion about whether a project is going well.

It does not track internal time. That is the other half of project cost and it lives in a different system entirely.

It does not decide your allocation policy. It applies the basis you choose, consistently, and records what was applied — which basis is fair for your business remains a management judgement.

And it does not know your projects. The mapping from an invoice line to a project comes from a reference on the document or from you; where neither exists, the honest output is a line waiting for a decision rather than a guess.

Frequently asked questions

Start with one month of supplier invoices

Extract them, allocate the lines, and compare the total that reached projects with the total that went to overhead. That ratio is usually the surprising part.

Related