Project-Level Invoice Cost Tracking With Custom Fields

Chirashree Dan Marketing Team
| | 17 min read
Finance analyst reviewing project-level cost attribution across supplier invoices
TL;DR: The chart of accounts records what a cost was, never what it was for. Project, deal and mandate attribution needs a second dimension, and custom fields on the invoice supply it. The decisions that determine whether the data is usable are made at setup: line-item versus header placement, controlled lists rather than free text, extraction from the document where the supplier already prints a reference, and mandatory completion so unattributed spend cannot enter the ledger.

Why Can’t Standard Chart of Accounts Coding Track Project Costs?

A chart of accounts is a taxonomy of cost types. Legal fees, professional services, travel, software subscriptions. It answers one question precisely — what was purchased — and is structurally incapable of answering a second one that finance teams need constantly: what was it for?

Two invoices from the same law firm, identical in amount, post to the same account. One relates to a transaction that completed; one relates to one that collapsed. The ledger cannot distinguish them, and no refinement of account structure fixes it, because the distinction is not about the nature of the cost.

Teams respond by attempting to encode purpose into the account structure itself — creating accounts such as “Legal fees — Project Northwind” — and the result is a chart of accounts that grows without limit, breaks comparability across periods, and becomes unmaintainable within a year. Guidance from the Corporate Finance Institute on chart of accounts design is consistent on this point: the account dimension should stay stable and relatively small, with analytical dimensions handled separately.

The correct structure is two dimensions. The account says what. A project or cost-centre field says what for. Custom fields on the invoice record supply the second without touching the first.

What Are Custom Fields in Invoice Processing?

A custom field is a user-defined attribute attached to an invoice or to individual lines on it, captured during processing and carried into reporting and export. Unlike the chart of accounts, custom fields are configured by the finance team to match how the organisation actually thinks about its costs.

Typical fields in practice:

  • Project, deal or mandate code — the dominant use case for investment firms, advisory businesses and anyone operating a project P&L
  • Entity or subsidiary — where one payables function serves several legal entities
  • Cost centre or department — conventional internal allocation
  • Client or matter — for businesses that rebill costs onward
  • Contract reference — linking spend to a commercial agreement
  • Billable flag — whether the cost is recoverable from a client

The attribute that makes custom fields more than a note field is that they are structured, validated and reportable. A project name typed into a free-text comment is not data; a project code selected from a controlled list is. Work by the Institute of Management Accountants on management reporting treats this distinction as foundational: an analytical dimension is only useful if its values are constrained at the point of capture.

Invoice-Level vs Line-Item-Level Custom Fields: When to Use Each

This is the decision most often made carelessly and most expensive to reverse.

DimensionHeader (invoice) levelLine-item level
GranularityOne value per invoiceOne value per line
Best forInvoices wholly attributable to one projectInvoices spanning multiple projects
Typical usersUtilities, single-engagement professional feesAdvisory firms, consolidated monthly billing
Data entry effortLowHigher, unless extracted automatically
Reporting fidelityAdequate when splits never occurAccurate under all conditions
Risk if wrongly chosenSplit costs collapse to one project, permanentlyMinor redundancy when all lines share a value
ReversibilityCannot reconstruct splits retrospectivelyCan always aggregate upward

The asymmetry is the point. Choosing line-item level when every invoice happens to relate to one project costs you a small amount of redundancy. Choosing header level when invoices do span projects loses the allocation permanently, because the information needed to split the invoice existed only at the moment of processing and is gone once the record is approved.

For professional-services spend — legal, consulting, research — multi-project invoices are the norm rather than the exception. A law firm’s monthly bill routinely covers several matters as separate lines. If the project dimension lives only at header level, that detail is destroyed on entry.

The defensible default is line-item level with the ability to apply one value across all lines in a single action, which removes the effort objection while preserving the fidelity.

How Do You Get Project Codes Onto Invoices Without Manual Entry?

The reason project tracking fails is almost never conceptual. It fails because someone has to type the code on every invoice, and under volume that degrades.

Three mechanisms reduce or remove the manual step.

Extraction from the document. Professional-services suppliers frequently print the reference themselves — a matter number, engagement code or project name — because their own billing systems require it. Where that is true, extraction can be configured to read the field and populate the custom field directly. This converts the most labour-intensive case into the most automated one.

Derivation from the vendor. Where a supplier works exclusively on one engagement, the project can default from the vendor master. The default remains editable, but the common case requires no action.

Inheritance from context. Where invoices arrive through a project-specific capture address or carry a consistent reference in the subject line, the value can be assigned at intake.

What remains manual is genuinely ambiguous attribution, which is correct — that is a judgement, and it should be made by a person. Our guide to format-agnostic invoice processing covers how extraction handles inconsistent supplier layouts, and email-based invoice processing delays addresses the intake path.

What Project Cost Data Should You Capture?

More fields is not better. Each mandatory field adds friction, and a field completed inconsistently is worse than one that does not exist, because it produces reports that appear complete and are not.

FieldPriorityValidationWhy
Project or deal codeEssentialControlled list of active codesThe primary analytical dimension
EntityEssential in multi-entity structuresControlled listDrives statutory reporting and intercompany allocation
Cost centreHighControlled listConventional internal accountability
Billable to clientHigh where rebilling occursBooleanDetermines recoverability
Contract referenceMediumFree text or listLinks spend to commitment
Phase or stageLowControlled listUseful only where project phasing drives decisions
Approver noteLowFree textContext, not reporting data

The validation column carries most of the weight. Free-text entry produces variant spellings — “Project Northwind”, “Northwind”, “NW-2026” — that fragment every report built on the field. A controlled list of active codes, maintained as projects open and close, keeps the data aggregatable. The maintenance effort is real and is the price of usable reporting.

One related rule: when a project code changes, retire the old value and map to the new one rather than renaming in place. Renaming rewrites history and makes prior-period reports irreproducible, which becomes a problem the first time an auditor asks why last quarter’s figure has moved.

How Do Custom Fields Change Approval Routing?

Once a project dimension exists on the invoice, it becomes available as a routing condition — and this is where the value compounds beyond reporting.

Invoices can route to the owner of the project they are charged to, rather than to a generic approver who has no basis for judging whether the cost was warranted. A project owner knows whether the advisory work was commissioned; a finance approver does not. The same field that enables cost reporting enables materially better approval decisions.

It also improves the approval request itself. Surfacing the project code in the notification means an approver sees what the spend relates to without opening the record, which is the difference between a decision made on a phone and one deferred to the next time they sit at a desk. Research from Gartner on finance technology identifies decision context in the approval request as a stronger determinant of cycle time than the number of approval steps. Our analysis of AP approval workflow automation and approval workflow bottlenecks covers how notification context affects approval latency.

A caution: routing by project only works while the project list is maintained. An invoice coded to a closed project with no active owner stalls silently. Closing a project should include reassigning approval responsibility, not just removing the code from the list.

What Breaks When Project Tracking Lives in Spreadsheets?

The default alternative is a parallel spreadsheet in which someone records which invoice belonged to which project. It works at low volume and fails predictably as volume rises.

Failure modeCauseConsequence
Drift from the ledgerSpreadsheet updated separately from invoice processingProject totals stop reconciling to the general ledger
Missing recent spendUpdate lag between processing and recordingProject reports understate committed cost
No line-item granularityMulti-project invoices recorded as one rowAllocation approximated, then treated as exact
Single-owner dependencyOne person maintains the mappingReporting stops when they are unavailable
No audit trailCells overwritten without historyCannot evidence why a cost was attributed as it was
Retrospective reconstructionAttribution inferred months laterGuesswork presented as allocation

The last row is the real damage. Retrospective attribution — working out in month three which project February’s advisory invoice related to — produces numbers that look authoritative and are substantially estimates. Decisions get made on them. Research from APQC on cost allocation practice finds that organisations capturing attribution at transaction time report materially higher confidence in project profitability than those reconstructing it in reporting cycles.

Capturing the dimension at the point of processing, when the invoice and its context are both in front of someone, is the only point at which the attribution is actually known.

How Peakflo Helps

Peakflo supports custom fields at both invoice and line-item level, configured by the finance team without engineering involvement or change-request fees. Fields can be defined as controlled lists so project codes stay consistent, set as mandatory where attribution is non-negotiable, and marked for extraction so that where a supplier prints a matter or engagement reference on the invoice, the value is read from the document rather than typed.

The same fields feed the rest of the process. They appear in approval notifications, so approvers see what the spend relates to without opening the platform; they operate as conditions in approval rules, so invoices can route to project owners rather than generic approvers; and they export alongside coding and approval history into reporting or an accounting system. For multi-entity structures the entity field works the same way, which is covered further in our guide to AP anomaly detection across multi-entity finance teams. Teams rebilling costs onward can combine the project field with a billable flag, as described in billable client expense rebilling automation. To see field configuration against your own project structure, request a demo.

Our Verdict

Project cost tracking is treated as a reporting problem and is actually a data-capture problem. Every organisation that cannot report project profitability reliably has the same root cause: the attribution was never captured at the point the invoice was processed, and everything after that is reconstruction.

The decisions that determine success are made once, at configuration, and are difficult to revisit. Put the field at line-item level unless you are certain invoices never span projects. Validate against a controlled list rather than accepting free text. Enable extraction wherever suppliers already print the reference. Make it mandatory, because optional attribution fields are completed when convenient and the gaps are exactly where the interesting spend sits.

Be restrained about field count. Three well-maintained fields produce better reporting than eight inconsistently completed ones, and each additional mandatory field is friction applied to every invoice forever.

Where this matters less: organisations whose costs are overwhelmingly general overhead with little project-attributable spend. There the chart of accounts genuinely is sufficient, and adding a project dimension creates maintenance without insight.

Conclusion

The gap between what a ledger records and what finance is asked to explain is where project cost tracking lives. Account codes describe the nature of spend; they were never designed to describe its purpose, and no amount of account proliferation makes them do so.

Custom fields close that gap cheaply, provided the setup decisions are made deliberately. Line-item granularity, controlled vocabularies, automatic extraction where the data already exists on the document, and mandatory completion are what separate a project dimension that supports decisions from one that produces plausible-looking reports nobody fully trusts.

Frequently Asked Questions

Why can’t the chart of accounts track project costs?

The chart of accounts records the nature of a cost, not its purpose. Legal fees post to a legal fees account whether they relate to one deal or another. Tracking by project requires a second dimension alongside the account code, which is what a custom field provides.

Should project codes sit at invoice level or line-item level?

At line-item level if a single invoice can span multiple projects, which is common with advisory and professional-services billing. Header-level fields are simpler and sufficient only where each invoice relates wholly to one project. Choosing header level when splits occur loses the allocation permanently.

Can project codes be extracted from the invoice automatically?

Yes, where the supplier states them. Many professional-services firms print a matter or engagement reference on the invoice, and extraction can be configured to read that field and populate the custom field without manual entry.

How many custom fields is too many?

The constraint is data quality rather than a numeric limit. Every mandatory field adds friction at entry, and fields that are inconsistently completed are worse than absent because they create reporting that looks complete and is not. Start with project, entity and cost centre, and add only when a specific report requires it.

What happens when a project code changes mid-engagement?

Retire the old code rather than renaming it, and map historical records to the new one through a documented relationship. Renaming in place rewrites history and makes prior-period reports irreproducible, which is a problem during audit.

Can custom fields be used to route approvals?

Yes, and it is one of the stronger reasons to implement them. Routing an invoice to the owner of the project it is charged to puts the decision with someone who can judge whether the cost was warranted. Control guidance from IFAC favours routing authority to the person accountable for the budget being consumed.

Chirashree Dan

Marketing Team

Read more articles on the Peakflo Blog.