What Is a Cost Center? Analytic Dimensions Beyond the Chart of Accounts
Why the chart of accounts should not encode departments or projects, how analytic dimensions work instead, and the combinatorial explosion they prevent.
A cost center is a part of the business you want to measure separately — a department, a location, a team, a machine. It answers "where did this cost occur?", while the chart of accounts answers "what kind of cost was it?"
Keeping those two questions apart is one of the highest-leverage decisions in setting up a ledger, and getting it wrong is one of the most common and least reversible mistakes.
The mistake it prevents
The tempting approach is to encode the department in the account code:
6209-01 Administrative expenses — Vilnius office
6209-02 Administrative expenses — Kaunas office
6209-03 Administrative expenses — Riga office
Now do it for salaries, rent, software, travel and depreciation, across three offices, four departments and a dozen projects. The chart multiplies: 20 expense accounts × 3 offices × 4 departments is 240 accounts, and adding a fifth department means creating 60 more.
The costs are worse than the count:
- Reporting breaks. Statutory financial statements map from account codes. A chart with department suffixes needs those suffixes stripped, by a rule someone maintains.
- Nothing is queryable across dimensions. "Total travel cost per department" requires parsing account codes as strings.
- The chart stops matching the national template, so every mapping to a VAT return or statutory layout becomes bespoke.
- It is irreversible in practice. Years of history are posted to those codes, and comparatives depend on them.
Dimensions instead
The alternative is to keep the chart clean and tag each ledger line with dimensions:
| Account | Cost center | Project | |
|---|---|---|---|
| Salary, Vilnius dev team, Project A | 6204 | VLN-DEV | PRJ-A |
| Salary, Kaunas support, Project A | 6204 | KNS-SUP | PRJ-A |
| Travel, Vilnius dev team, Project B | 6209 | VLN-DEV | PRJ-B |
One salary account. Any combination of questions answerable: cost by account, by center, by project, or any intersection — without a single new account. Adding a fifth department adds one cost center, not sixty accounts.
The general rule: the chart of accounts should reflect the nature of the transaction and the statutory reporting requirement. Everything organizational belongs in dimensions.
Cost centers, profit centers, projects
- Cost center — a unit that incurs costs and is measured on efficiency: IT, HR, finance, a warehouse.
- Profit center — a unit with both revenue and costs, measured on contribution: a product line, a branch, a subsidiary.
- Project — a time-bounded effort spanning departments, measured on total cost against budget or against the revenue it earns.
They are not alternatives. A salary can belong to the support cost center and to a customer project simultaneously, which is exactly why they are separate dimensions rather than a single field.
Allocation is the follow-on question: shared costs like rent or IT sit in a cost center that produces no revenue, and management reporting often pushes them out to revenue-generating units by headcount, floor space or usage. Allocation is a management-reporting exercise; it does not change the statutory accounts, and it is worth keeping the allocated view clearly separate from the posted one.
How Nordlet implements dimensions
Two independent dimensions are available on every ledger line: cost center and project. They are properties of the journal entry line, not of the account, so the same account can carry any combination.
Cost centers are managed through POST /v1/ledger/cost-centers/create and can be organized into cost center groups, which gives one level of grouping — useful for rolling up departments into functions.
Projects are a separate dimension with their own lifecycle, so a project can be reported on across its whole life regardless of which departments touched it.
Dimensions flow from documents down to entries: invoice lines and purchase invoice lines carry cost center and project, and the values propagate into the journal entries when the document posts. That means tagging happens where the context is — at the document, by the person who knows why the cost exists — rather than as a bookkeeping afterthought.
Reporting is available through POST /v1/reports/cost-center for the cost-center view, project reporting for the project view, and /v1/reports/gl-detail for filtered ledger detail.
Two honest limits. Cost centers are flat apart from group membership — there is no arbitrary-depth hierarchy, so a three-level organizational structure needs to be modelled with groups plus naming conventions. And there are no distribution keys: allocating shared overhead from one cost center to others is not automated, so an allocation is a manual journal entry moving cost between centers.
FAQ
What is a cost center in accounting?
A distinct unit of the business — department, location, team — used to track where costs occur. It is recorded as a dimension on ledger lines, separately from the account that records what kind of cost it is.
What is the difference between a cost center and an account?
The account records the nature of the transaction (salaries, rent, travel) and drives statutory reporting. The cost center records where it happened. Mixing them into account codes multiplies the chart and breaks statutory mapping.
Should I put departments in my chart of accounts?
No. Use dimensions. Encoding departments into account codes causes the chart to grow multiplicatively, makes cross-dimension reporting impossible without string parsing, and is effectively irreversible once history is posted to those codes.
What is the difference between a cost center and a project?
A cost center is a permanent organizational unit; a project is a time-bounded effort that usually spans several of them. Both are dimensions, and a single transaction can carry both at once.
Can a transaction belong to more than one cost center?
A single ledger line carries one cost center, but a transaction can be split across several lines with different centers. Where a cost genuinely belongs to several units, either split it at entry or allocate it afterwards through a separate entry.