# Mapping Categories

This article explains how to map imported rows into reporting categories and why this matters for P\&L, Balance Sheet, Cashflow and custom reports.

You will learn:

* What categories are and what they are not.
* How categories relate to variable types.
* How to design a simple but powerful category structure.
* How to update categories after import.

***

## What categories are

Categories are labels used to organise variables in reports and dashboards. They control:

* Which section of the P\&L a variable appears in.
* How costs are grouped under headings such as `Marketing` or `Operations`.
* How assets and liabilities are grouped in the Balance Sheet.
* How different flows appear in the Cashflow Statement and Cashflow Waterfall.

Categories do **not** change the underlying accounting behaviour. That is controlled by the variable type.

***

## Categories versus variable types

Variable type answers: **what is this financially?**

* Revenue, COGS, Opex, Staff, Tax, Asset, Liability, Equity, Dividend.

Category answers: **where does this sit in my reports?**

* Revenue - Subscriptions.
* Revenue - Services.
* Opex - Marketing.
* Opex - Technology.
* Assets - Property.
* Liabilities - Bank Debt.

Two variables with the same type can have different categories. For example:

* `Opex - Marketing` and `Opex - Rent` are both Opex type, but show under different P\&L lines.

***

## Designing a category structure

A good category structure is:

* **Simple** enough that stakeholders can read it easily.
* **Consistent** across models and branches.
* **Stable** over time to avoid breaking reports every year.
* **Flexible** enough to support the level of detail you need.

Typical P\&L categories:

* `Revenue - Subscriptions`
* `Revenue - Services`
* `COGS - Direct Costs`
* `Opex - Marketing`
* `Opex - Product`
* `Opex - Operations`
* `Opex - G and A`
* `Staff - Salaries`
* `Staff - Contractors`

Typical Balance Sheet categories:

* `Assets - Cash`
* `Assets - Receivables`
* `Assets - Property`
* `Assets - Other`
* `Liabilities - Trade Payables`
* `Liabilities - Loans`
* `Equity - Share Capital`
* `Equity - Retained Earnings`

You can extend these lists as needed but avoid overly granular category lists where every variable has a unique category.

***

## Mapping categories during import

When you map imported rows you will usually see:

* A proposed category based on the row label and type.
* A drop down list to choose another category or create a new one.

You should:

* Confirm categories for material lines.
* Use existing categories whenever possible to keep reports parsimonious.
* Reserve new categories for genuinely new types of items.

You can always refine categories later once you see the statements and custom reports using them.

***

## Updating categories after import

{% stepper %}
{% step %}

### Change categories for variables

Open the variable or the Data Library view for a set of variables.
{% endstep %}

{% step %}

### Edit the category

Change the **category** field to the new desired value.
{% endstep %}

{% step %}

### Save changes

Save the changes.
{% endstep %}

{% step %}

### Refresh reports

Refresh any reports or dashboards that depend on the category structure. All statements and reports that use categories will update automatically to reflect the new grouping.
{% endstep %}
{% endstepper %}

This makes it possible to improve your reporting structure over time without starting again.

***

{% hint style="info" %}
Practical tips

* Start with a relatively small set of categories and expand only when you have a clear use case.
* Keep category naming consistent across models and workspaces.
* Align categories with how you present results to management, boards or investors.
* Document your category scheme so your team uses it consistently.
  {% endhint %}

***

## Related articles

* [Capex Program Modelling](/use-cases/capital-projects-and-infrastructure/capex-program-modelling.md)
* [Build a Budget vs Actuals Model](/how-tos/scenarios-and-planning/build-a-budget-vs-actuals-model.md)
* [Aggregate Categories](/help/building-your-model/aggregate-categories.md)
* [Using Drivers in Formulas](/syntax/drivers-syntax/using-drivers-in-formulas.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.modelreef.io/help/importing-and-data-inputs/mapping-categories.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
