Sign in

Blog · How-to guides

How to map a spreadsheet's columns to a roll-up: a guide to the data map

What a data map is and how to build one from any sales export: the six roles a column can play, region, team, person, account, product, value, plus date, how to tell which column is which when the headers do not say, the columns to drop, the roll-up check that proves the map is right before anything is computed, and the mistakes that produce a map that looks fine and rolls up wrong.

The short answerA data map assigns each column in an export to a role: one of the four hierarchy levels, region, team, person and account, plus product, date and value. Region, team, person and account nest, so every row rolls up through them and the value column sums identically at each level; product and date are dimensions that cut across the hierarchy. Map the value column first, then account, then upward, drop the columns with no role, and run the roll-up check: the sum by region equals the sum by team equals the sum by person equals the sum by account equals the total. A map that passes is right; a map that looks right and fails is not.

An export has twenty columns and a coverage report needs six of them, in the right roles. The data map is the step between: which column is the account, which is the value, which are the levels above, and which are noise. This guide sets out the roles, how to identify each column, the drop list, and the check that proves the map before anything is computed.

The roles

Role Kind Rule
Region Level 1 Every team belongs to one region
Team Level 2 Every person belongs to one team
Person Level 3 Every account belongs to one person
Account Level 4 Every row belongs to one account
Product Dimension Cuts across accounts; not a level
Date Dimension Sets the period
Value Measure The amount that sums

Levels nest. Dimensions cut across. The value sums.

Identifying columns when headers do not help

Column looks like Probably Check
Numbers with decimals, sums to a plausible total Value Matches the control total
Dates, one format Date Parses; range is the period
Codes with few distinct values, one per person Team or region Each person under one of them
Codes with many distinct values, one per row or few rows Account Each under exactly one person
Names of things sold, repeating across accounts Product Appears under many accounts
Free text, notes, addresses Drop No role

The order

  1. Value: the column that sums to the control total.
  2. Account: the finest identifier every row has.
  3. Person, team, region: upward, each nesting the one below.
  4. Product and date: dimensions.
  5. Everything else: dropped, and counted.

The roll-up check

Σ value by region = Σ by team = Σ by person = Σ by account = total

And the nesting checks: no account under two people, no person under two teams, no team under two regions. A map that passes all of them describes a hierarchy. One that fails has a column in the wrong role, and the failing level says which.

A worked map

Export: 18 columns.

Column Role Note
InvoiceValue Value Sums to $4,182,400; matches control
CustomerID Account 1,204 distinct
SalesRep Person 24 distinct; every customer under one
SalesTeam Team 6 distinct; every rep under one
Territory Region 3 distinct; every team under one
ProductCode Product 310 distinct; appears under many customers
InvoiceDate Date March 2026
CustomerName, RepName, Notes, Address… Dropped 11 columns, no role

Check: $4,182,400 at every level; no nesting failures. Mapped.

Where it goes wrong

Product as a level. The roll-up has one row per product per account and the person level double-counts.

Amount as a level. One row per amount.

Two columns for one role. Rep code and rep name both mapped as person; nothing nests.

Map saved without the check. It looked right. Run the identity.

Once, then every month

Mapped once and checked, the same export maps the same way every month, and the roll-up check runs before any measure does. Covirage's data map does this on upload, guesses each column's role, and refuses the ones that cannot hold it. The Excel analysis solution describes the setup, and the roll-up hierarchy guide covers why the levels nest and product does not.

Questions people ask

What if the export has no region column?

Then the hierarchy has three levels and the map says so. Missing levels are allowed; a level mapped to the wrong column is not. Region can be derived later from a person-to-region lookup uploaded as a second file.

Can a column be numeric and a level?

Only if it is an identifier that happens to be numeric, like an account number. A column of amounts cannot be a level, and a map that assigns one produces a roll-up with one row per amount. The map should refuse it.

What is the difference between product and account in the map?

Account is a level: every row belongs to exactly one account, which belongs to one person, one team, one region. Product is a dimension: the same product appears under many accounts, so it cannot sit in the hierarchy. Mapping product as a level is the commonest way a roll-up goes wrong.