> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getnovaplan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dimensions

> Manage canonical dimensions, raw-to-canonical mapping, and entity reconciliation.

Dimensions are the axes your data rolls up by: department, entity, account, product, channel,
region, and revenue type. This is where admins define the canonical set and map raw source
values onto it, so every filter, group-by, and pivot across the platform agrees.

## Canonical dimensions

A canonical dimension is the single agreed-upon list Novaplan plans and reports against,
independent of what any one source calls things. Each source then maps its raw values onto that
list, so a department named one way in your HRIS and another way in your ledger still rolls up to
the same canonical department.

| Dimension       | What it organizes                                                     |
| --------------- | --------------------------------------------------------------------- |
| Department      | The org hierarchy headcount and spend roll up by                      |
| Entity / vendor | Legal entities and the vendors GL spend posts against                 |
| Account         | The canonical chart of accounts (see [GL Mapping](/admin/gl-mapping)) |
| Product         | Product and product-line groupings for revenue                        |
| Channel         | Self versus partner versus other go-to-market                         |
| Region          | Geographic grouping for plans and reports                             |
| Revenue type    | Recurring versus non-recurring revenue                                |

## Raw to canonical mapping

<Steps>
  <Step title="Define the canonical list">
    Maintain the canonical values for each dimension. This is the list everything rolls up to.
  </Step>

  <Step title="Map raw source values">
    For each source, map its raw values (a CRM stage, a source department name, a ledger entity)
    onto the canonical value. Mappings are stored in a registry, not hard-coded, so adding a
    source value is a configuration change, not an engineering one.
  </Step>

  <Step title="Reconcile entity names to IDs">
    External names (CRM accounts, HiBob employees, ledger vendors) reconcile to canonical IDs
    through a name-to-ID lookup that tries an exact ID match first, then a mapped name, then a
    confident fuzzy match. This is what keeps identity stable across syncs.
  </Step>
</Steps>

<Note>
  Identity resolves by ID, not by name. When a source renames a department or vendor, the mapping
  keeps your hierarchy stable instead of scrambling it. Each data page links back here through a
  "Manage mappings" entry point.
</Note>

## Common questions

<AccordionGroup>
  <Accordion title="A new source value is not rolling up" icon="sieve">
    It is unmapped. Add the raw-to-canonical mapping for that source, then re-run curation. Until
    it is mapped, the value will not roll up to a canonical dimension.
  </Accordion>

  <Accordion title="Two sources call the same thing differently" icon="arrows-rotate">
    Map both raw values onto the same canonical value. They then reconcile to one ID and roll up
    together everywhere.
  </Accordion>
</AccordionGroup>

## Troubleshooting

* **A filter or pivot shows a value twice:** two raw values are reconciling to two IDs. Map both
  onto one canonical value.
* **An account is missing from a report:** confirm its source-to-canonical account mapping in
  [GL Mapping](/admin/gl-mapping).
* **Numbers do not reconcile after a rename:** the rename should be absorbed by the ID-based
  mapping. If it is not, the source value is likely mapped by name; correct the mapping.
