Dimensions

Dimensions are accounting classification categories that your entity needs for reporting and ERP integration. They represent the analytical tags that are not printed on the document but are required for proper accounting — such as cost centers, VAT codes, posting accounts, and project codes.

How dimensions work

Each dimension contains a list of values. For example:

  • Dimension: "Cost Center"
  • Values: "Administration," "Sales & Marketing," "Infrastructure Services," "Office," "Tools," "Travel," etc.

When the AI processes a document, it reads each line item and assigns the most appropriate value from each configured dimension. It uses the line item description, partner context, and document content to make these assignments.

Each AI assignment comes with a plain-language explanation of the reasoning, plus what your own validated documents say about that value: whether your records agree, how many times you have recorded it before, and what your records hold instead when they disagree. Hover over the assigned value in the Document View to see it.

When the AI leaves a dimension empty, it explains that too. An icon appears on the empty field in the Document View — hover over it to see why no value was assigned, for example because none of the dimension's values apply to this document, or because the extracted code is not one of the dimension's values.

Partners

Every entity is given one dimension named Partners. It holds the companies you do business with — suppliers, vendors, customers — and it works exactly like every other dimension. Its values are managed the same way, imported the same way, and appear on documents the same way.

Alongside a value's name and reference id, the Partners dimension carries four columns:

  • Registration number
  • VAT number
  • Legal address
  • Bank accounts

You can add your own columns to it, or remove ones you do not use, exactly as you can with any dimension.

How a document is linked to a partner

When Finpilo processes a document, it reads the counterparty's details and looks for the matching value in your Partners dimension. Out of the box it matches on registration number or VAT number — either one is enough.

Name and address are deliberately not used. They match poorly in practice: spelling, punctuation, word order and company-type abbreviations differ between what is printed on a document and what is in your list, so a name comparison finds the wrong company as often as the right one.

Matching on registration number or VAT number is what every entity starts with, and it is not something you change from the app today.

Name, address and bank accounts are compared but never matched on. On a document you see whether each of them agrees with the partner record you are linked to — a tick, a cross, or nothing to compare against — and bank accounts are checked one account at a time. They are shown so you can spot a mismatch before you pay; they never decide which partner is chosen.

When no partner is found

If nothing matches, the document's partner is left empty and the reason is shown on the document. That is the ordinary case for a company you have not traded with before — add them to the Partners dimension and the next document finds them.

If two values match the same document, Finpilo does not guess. It leaves the partner empty and tells you the match was ambiguous, so you can correct the duplicate.

Re-processing a document

Re-processing reads the document again from scratch. If the partner it finds has changed, the link changes; if it now finds nothing, the link is cleared. The partner behaves like every other field the AI fills.

Viewing dimensions

  1. Navigate to Entity Management and click on an entity.
  2. Select the Dimensions tab.

The dimensions list shows all dimensions for this entity with the following columns:

  • Dimension Name — the name of the dimension category.
  • Values — the number of values defined.
  • Created By — who created the dimension.
  • Created — the creation date.

Creating a new dimension

Admin or Owner role required.

  1. Click the Add Dimension button in the top-right corner.
  2. Fill in the dimension details:
    • Dimension Name (required) — a descriptive name (e.g., "Cost Center," "Department," "VAT Rate").
    • Description — an optional description explaining how this dimension should be used. This description is provided to the AI to help it make better assignments.
    • Reference ID — an internal reference. If left empty, it is auto-generated (format: DL-00001).
  3. Click Create.

After creating the dimension, you will be taken to the dimension detail page where you can add values.

Writing effective descriptions

The dimension description is provided to the AI when it assigns values. A clear, specific description improves assignment accuracy. For example:

  • Good: "Classifies each expense line item into the functional area of the business that incurred the cost. Used for internal cost tracking and P&L analysis across operations, delivery, sales, and infrastructure."
  • Poor: "Cost center" (too vague — the AI already knows the name).

Managing dimension values

Click on a dimension in the list to open the dimension detail page. Select the Values tab to see all values.

Adding a value

  1. Click the Add Value button in the top-right corner.
  2. In the Add Value dialog, fill in:
    • Name (required) — the display name (e.g., "Marketing").
    • Description — an optional description that helps the AI understand when to assign this value. Be specific about what types of expenses belong here.
    • Code — your own short code for this value, such as the account or cost centre code it has in your accounting system. It is optional, and two values may share one. This is what people see when they choose the value on a document, which reads "Marketing (5310)".
    • Reference ID — an internal reference. If left empty, it is auto-generated (format: DIM-00001).
  3. Click Add.

Code and Reference ID are not the same thing. The Reference ID identifies the value for imports and for your accounting system's sync, so it is unique within the dimension and cannot be left blank once the value exists. The Code is yours to choose, change and repeat, and it is the one shown to people.

Importing values from a file

If you have many values to add, you can import them from a file instead of adding them one at a time.

  1. On the dimension detail page, open the Values tab and click the Import button.
  2. In the import dialog, click Download Template to get a CSV file with the correct columns.
  3. Fill the template with your values. Each row is one value, with these columns:
    • referenceId (required) — the internal reference for the value. Unlike adding a value manually, the Reference ID must be filled in when importing.
    • name (required) — the display name.
    • description — an optional description that helps the AI.
    • code — your own short code for the value. Leave the column out, or a cell empty, and the value keeps whatever code it already has.
  4. Save the file as CSV and select it in the import dialog. You can import up to 10,000 values per file.
  5. Click Import. When it finishes, the dialog shows how many values were created, how many were updated, and how many rows failed.

Updating with import: if a row's referenceId already exists in this dimension, the import updates that value instead of creating a duplicate. This means you can re-import a corrected file to update values in bulk.

If some rows fail (for example, a missing name), the valid rows are still imported — only the failed rows are skipped, and they are listed so you can fix and re-import them.

Values added through import are not attributed to an individual user, so they do not show a name in the Created By column.

Editing a value

Click on any value in the list to open the Edit Value dialog. Modify the name, description, code or reference ID, then click Save. Changing a code updates it on the documents already coded to this value, so they never show an old code.

Deleting a value

Open the Edit Value dialog for the value you want to remove, then click Delete at the bottom-left of the dialog.

What happens next depends on whether the value is in use.

  • Nothing uses it — it is deleted outright.
  • Documents are assigned to it — it is archived instead. The value disappears from the dropdowns, stops being matched automatically, and is removed from what the AI is offered. Documents already classified with it keep showing it exactly as before.

Archiving is how a value is retired without rewriting history. A cost centre you closed last year still has to make sense on last year's invoices.

To bring an archived value back, add it again with the same reference ID — from the register screen or from your accounting system's sync. It returns to the dropdowns and to matching, with the documents that referenced it untouched throughout.

Writing effective value descriptions

Value descriptions tell the AI what kinds of expenses or transactions should receive this value. Specific descriptions significantly improve AI accuracy. For example, for a "Cost Center" dimension:

Value Good description Poor description
Administration Accounting, legal, management fees and related services. Admin stuff.
Infrastructure Services Hosting, compute, and API services that run company products — Azure, Hetzner, Google Cloud. IT costs.
Transportation Local travel: buses, Bolt rides, short-term car rentals. Excludes fuel (fuel → Benefits). Getting around.

Deleting a dimension

On the dimension detail page (General tab), scroll to the Delete Dimension section at the bottom. Click Delete This Dimension to permanently remove the dimension and all its values. If the dimension is used in documents, deletion may fail.

Member role access

Members can view the dimensions list and values but cannot add, edit, or delete dimensions or values. When a Member clicks a value, it opens in a read-only "Value Details" view.