How to import a CSV file into SAP Analytics Cloud Modeler
Importing a CSV file into SAP Analytics Cloud sounds straightforward — drag, drop, map, done. In practice, three silent errors account for nearly every failed or wrong import: the wrong delimiter, an aggregation set on a balance measure instead of a flow, and a time column that SAC cannot parse. Get these right and the import is genuinely fast; get them wrong and the model runs but the numbers are wrong — which is worse than a visible error. This guide walks the full path from preparing the file to validating the result.
Prepare the CSV before you import
SAC's CSV importer expects a specific structure: one header row at the top, one data row per observation, no merged cells, no sub-totals, no empty rows. Each column must have a unique name that will become a dimension or measure name in the model. Before you upload anything, open the file in a plain text editor (Notepad, VS Code) and check three things.
First, the delimiter: SAC accepts comma (','), semicolon (';') and tab. If your file was exported from a French or German system, the decimal separator may be a comma and the delimiter a semicolon — importing as comma-delimited will break every numeric column. Change the delimiter explicitly in the import dialog, or convert the file first.
Second, the date format: SAC needs dates in a consistent, unambiguous format — 'YYYY-MM-DD' or 'YYYYMM' are the safest choices. A column that says '04/07/2026' is ambiguous (4 July or 7 April?) and may be parsed incorrectly depending on your system locale. Convert to ISO format before importing.
Third, encoding: use UTF-8. Files exported from older Windows systems default to Windows-1252, which breaks accented characters and causes invisible errors in dimension member names.
Import and map columns
In the SAC Modeler, create or open a model, choose to import data from a file, and upload the CSV. SAC reads the header row and presents each column for mapping. Assign each text column to a dimension and each numeric column to a measure. Map the date column to the Date/Period dimension explicitly — this is what enables the time hierarchy (month to quarter to year). If a column contains numeric codes that should be dimension members (a cost-centre ID, an account code), map it as a dimension, not a measure, or SAC will sum the codes as if they were amounts.
For more detail on what the Modeler dialog looks like step by step, SAP's own import documentation at help.sap.com walks through each screen.
Set the aggregation correctly — this is the one that bites
For each measure, set how SAC rolls the values up across the time hierarchy. SUM for flows (revenue, units, costs, emissions): twelve months of revenue summed gives the annual revenue. LAST for balances (headcount, inventory, a capital figure): the year-end headcount is not the sum of twelve monthly headcounts, it is the closing figure. Calculated measure for ratios (margin %, cost per unit): never store a rate as a plain measure or it will give nonsense when aggregated. This single setting is the most common cause of "the import worked but the year total is wrong." If you are unsure, read how to choose the right aggregation in SAC before you save.
Validate before you build
Before building a Story on top of the imported data, run three sanity checks. First, does the grand total match the source file's total (after removing any sub-totals you stripped)? Second, does the time rollup make sense — does Q1 equal the sum of January, February and March for flow measures? Third, are all dimension members spelled consistently — no "France" vs "FRANCE" vs "FR" in the country dimension? Five minutes of validation here saves an afternoon of debugging later.
Common mistakes
- Wrong delimiter — one column instead of many, or garbled numbers. Fix: check the raw file in a text editor.
- Ambiguous dates — wrong period assignment. Fix: use ISO format (YYYY-MM-DD).
- SUM on a balance — totals four times too large. Fix: set LAST on stock and headcount measures.
- Numeric codes as measures — account codes summed as amounts. Fix: map as dimension.
- Inconsistent member names — phantom members in the hierarchy. Fix: normalize before importing.
Skip the setup
Our ready-made templates download as CSVs (or .xlsx or SAC packages) already structured with correct dimension names, aggregations and sample data. They import through exactly this procedure with zero preparation — the structure is already what SAC expects. For multi-sheet Excel workbooks, see importing a multi-sheet Excel workbook into SAC.
64 SAP Analytics Cloud templates for 16 industries, already structured following these best practices.
Explore the catalog →