Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 3 of 6

Modeling for performance and usability

10 min

Listen to this lesson

0:00 / 6:40

An SAC model defines what users can ask. Good models make stories fast and obvious; poor models make every story a workaround. This lesson covers the building blocks: dimensions, measures, accounts, hierarchies, currency and data access, using Contoso's margin model as the example.

Building blocks

ElementWhat it isContoso margin model
MeasuresNumeric values with aggregation (sum, average, exception aggregation)Quantity, net revenue, COGS
Calculated measuresFormulas on measuresMargin = net revenue - COGS; margin %
Account dimension (optional)A structured list of accounts with types and hierarchyUsed in the planning model (revenue, COGS, gross margin lines)
DimensionsWho, what, where, whenCustomer, product, company code, plant, profit center, date
HierarchiesParent-child or level-based roll-upsCustomer groups (fleet, aftermarket); product families
Version and datePlanning models always have themActual, Plan 2027, Forecast; months
CurrencyConversion settings and rate tablesUSD for 1710 and 1810; MXN for 1910 when it joins
Data access controlRow-level read and write rights per dimension memberCompany code and profit center restrictions

The parts of an SAC model, with Contoso's choices.

SAC's newer model type, available since 2021, is measure-based: it has a dedicated measure dimension, and the account dimension becomes optional. You choose at creation whether to use an account dimension and which one drives structure (aggregation, scale, decimals). SAP's learning material explains that the account dimension is mandatory in an account-based model and optional in a measure-based one. Contoso uses a measure-based model for margin analysis and an account-based structure for the planning P&L, where finance thinks in account lines.

Contoso's margin model: one fact with six dimensions. Plant 1720 derives the Aftermarket profit center by design, which the model must reflect.
The Sign-Off Table · thesignofftable.com/academy/sap-dap-201

Design rules that save trouble

  • Model the question, not the table. Keep only the dimensions and measures the stories need; every extra column slows imports and confuses users.
  • Use business names. "Net revenue (USD)" beats NETWR; add descriptions for every measure with its definition and source.
  • Calculate once. Put margin and margin % in the model, not in each story, so every story uses the same formula.
  • Mind aggregation. Margin % must be calculated from summed revenue and COGS, never summed across rows.
  • Decide currency early. Agree source currency, rate type and translation date with finance before building.
  • Secure by design. Define data access control on company code and profit center from day one.

Building the model, step by step

The order matters: definitions first, security last but never skipped.
The Sign-Off Table · thesignofftable.com/academy/sap-dap-201

Dimension and hierarchy maintenance is a recurring task, not a one-off. When a new fleet customer such as Northern Plains Coach Lines is created in SAP S/4HANA, it must appear in the customer dimension and in the right customer group before its first invoice, or its revenue lands under “unassigned”. For imported models, that means the master data import runs before the transaction import; for live models, the hierarchy comes from the source. Currency needs the same care: Contoso’s USD company codes need no translation, but when company code 1910 (MXN) joins, the model must translate with the rate type and date finance uses for management reporting, and the rate table must be loaded before the plan or actual data that uses it.

What would you do?

In testing, margin % for the Fleet customer group shows 74%, although Dan expects about 37%. Revenue and COGS totals for the group are correct. What is the most likely cause?

Fast and simpleIdeal for management stories
Wide but smallWatch usability; hide unused dimensions
Deep but narrowAggregate before import, or go live on Datasphere
Wide and deepRedesign: split models or model in Datasphere
Model size drives performance. Large, detailed data usually belongs in Datasphere with SAC connected live.
The Sign-Off Table · thesignofftable.com/academy/sap-dap-201

Data access control deserves its own test design because it is easy to get half right. Contoso restricts read access by company code and profit center, and write access in planning models by plant and channel. The test matrix has four users: a finance analyst for 1710 only, an aftermarket analyst limited to CMC-AFTMKT, a planner for plant 1720 only, and Dan with full access. Each user opens the same story and the same Excel workbook, and Priya checks totals against what that user is allowed to see. A user who should see only CMC-AFTMKT must see Chicago sales (plant 1720 derives that profit center) and nothing from CMC-FLEET.

Key points
  • Models define what users can ask: measures, dimensions, hierarchies, versions, currency and security.
  • SAC's measure-based model type makes the account dimension optional; planning P&Ls often still use accounts.
  • Calculate ratios from aggregated components; calculate once in the model.
  • Large, detailed data belongs in Datasphere with a live SAC connection.

Check your understanding · not graded

Lesson check

  1. 1. In SAC's measure-based model type, what is true of the account dimension?

  2. 2. How should margin % be aggregated?

  3. 3. Why put calculated measures such as margin in the model rather than in each story?

  4. 4. A product sits under two parents in a hierarchy. What test result would you expect?