> ## 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.

# GL Mapping

> Map source GL accounts to canonical accounts, and understand derived postings.

GL Mapping is where admins map the raw accounts coming from your ledger onto the canonical chart
of accounts Novaplan plans and reports against. Because plan, actuals, and derived headcount and
revenue all post to the same canonical accounts, a correct mapping is what lets budget, actuals,
and forecast reconcile cleanly on every report.

## Source to canonical accounts

<Steps>
  <Step title="Map each source account">
    Map each raw GL account from your ledger to a canonical account. The mapping is by account
    identity, so a re-labeled source account keeps posting to the right canonical account.
  </Step>

  <Step title="Group into reporting categories">
    Group canonical accounts into the categories your P\&L uses (for example, headcount cost,
    operating expense, or revenue), so reports roll up consistently.
  </Step>

  <Step title="Keep it current">
    As your chart of accounts evolves, add the new source accounts here so nothing lands
    unmapped.
  </Step>
</Steps>

## Derived postings

Not every canonical account is fed directly from your ledger. Headcount and revenue plans
**derive into the GL**: the headcount engine posts a fully loaded per-employee cost into GL
accounts, and the revenue engine posts recognized revenue into GL accounts. These derived rows
are tagged with their source (for example, headcount-derived or revenue-derived) so you can
always tell a planned, derived posting apart from an actual ledger posting.

<Note>
  Derived postings target your canonical accounts too, which is exactly why one clean mapping
  makes actuals and forecast comparable on the same report. The derive step replaces only its own
  derived rows on each run, so it never disturbs your real ledger actuals.
</Note>

## Common questions

<AccordionGroup>
  <Accordion title="What happens to an unmapped source account?" icon="sieve">
    It does not roll up to a canonical account, so it can be missing from category-level reports.
    Map it, then re-run curation to fold it in.
  </Accordion>

  <Accordion title="Why does an account show planned and actual amounts together?" icon="building-columns">
    The actual amount comes from your ledger and the planned amount is derived from headcount or
    revenue plans, both posting to the same canonical account. The derived rows are source-tagged
    so the two are always distinguishable.
  </Accordion>
</AccordionGroup>

## Troubleshooting

* **Budget vs actual does not reconcile on an account:** confirm both the source-to-canonical
  mapping and the account's reporting category.
* **A derived posting looks duplicated:** derived rows are tagged by source and replaced on each
  derive run, so check you are not also reading a manually entered row for the same account.
* **An account is in the wrong P\&L section:** adjust its reporting category grouping here.
