SAC Stories
SAC / Dataspherebeginner

SAC Stories Fundamentals: Purpose, Page Types, and Building Blocks

Understand what an SAC Story is, why it exists as the consumption layer of SAP Analytics Cloud, and the core building blocks (pages, widgets, models) used to construct one.

Explanation

An SAP Analytics Cloud Story is the artifact business users actually see and interact with: a collection of pages containing visual widgets—charts, tables, geo maps, text, images, KPIs, and planning-specific controls—bound to one or more data models. Stories sit on top of the modeling layer (dimensions, measures, hierarchies defined in Analytic or Planning models, or live-connected sources such as SAP BW, S/4HANA, or SAP Datasphere) and translate that structured data into something a finance manager, sales lead, or plant supervisor can read, filter, and act on without touching the model itself. Why this matters: in most SAC implementations, the model is built once by a small technical team, but dozens of stories are built and rebuilt on top of it by business analysts, power users, and consultants. If you do not understand story architecture, you either bottleneck all dashboard work through IT, or you end up with dozens of inconsistent stories that break every time the underlying model changes. Understanding stories properly means understanding the separation of concerns: models hold structure and data; stories hold presentation, layout, and interactivity. SAC offers two page structures. Grid pages behave like a spreadsheet canvas with a fixed cell-based layout, historically used for planning-heavy, table-dense content and legacy Analysis for Office-style layouts. Responsive/Canvas pages (the modern default) use a flexible container-based layout that adapts to screen size, supports drag-and-drop widget placement, and is recommended for new development, mobile consumption, and any story where layout consistency across devices matters. Optimized Responsive pages (newer canvas mode) further improve rendering performance and design consistency; new stories should generally start here unless a specific grid-only feature (like certain classic planning table behaviors) is required. Every widget in a story—chart, table, or geo map—is bound to a data source, which is either a model created in SAC's modeler (Analytic model for reporting, Planning model for input-enabled scenarios) or a live data connection (BW, HANA, S/4HANA embedded analytics, Datasphere). Import connections copy a snapshot of data into SAC's in-memory engine; live connections query the source system in real time on every interaction. This choice, made at the model level, has direct consequences for story performance and data freshness that story builders must understand even though they don't configure the connection themselves. A story can contain multiple pages, each with multiple widgets, each widget bound potentially to a different model. Cross-model widgets on the same page do not automatically filter each other unless you explicitly configure linked analysis or use blending—a distinction beginners frequently misunderstand, assuming all widgets on a page behave as one dashboard by default. Finally, stories carry their own layer of metadata: filters at story, page, and widget level; input controls (dropdown/list filter widgets end users can manipulate); variables (for prompting values, especially in planning); and threshold/conditional formatting rules. None of these modify the underlying model—they are story-level presentation logic, which is why the same model can support many differently filtered, differently formatted stories simultaneously.

Real project scenario

A retail analytics rollout has one shared Planning model for sales forecasting used by finance, regional sales, and merchandising teams. Each team requested their own story: finance wanted a grid-heavy variance table, regional sales wanted a canvas dashboard with geo maps and trend charts, and merchandising wanted a mobile-friendly summary with KPIs. Because all three stories point to the same underlying model, when the modeling team added a new version dimension for a rolling forecast, all three stories needed only local filter and widget updates—no rebuild of the model—demonstrating the value of separating model logic from story presentation.

Common mistakes

• Assuming all widgets on a story page automatically filter each other without configuring linked analysis or a shared filter • Building new stories on classic Grid pages by default instead of evaluating Optimized Responsive pages first • Treating story-level filters as if they change the underlying model data for other consumers • Mixing live and imported data sources on one page without understanding the differing refresh and performance behavior • Not distinguishing between Analytic models (reporting only) and Planning models (input-enabled) when choosing what a story can support

Best practices

• Default to Optimized Responsive canvas pages for new stories unless a specific classic feature requires grid pages • Keep model changes centralized; use story-level filters and variables for presentation-specific slicing • Document which stories consume which models before making structural model changes • Clarify live vs import connection behavior with the modeling team before committing to a story design that assumes real-time data • Avoid overloading a single story with too many unrelated models; consider splitting into multiple focused stories

Interview angle

Interviewers commonly ask candidates to explain the difference between a model and a story, and why SAC separates them. A strong answer covers reusability (many stories per model), governance (central model changes propagate without touching every story), and the practical implication for change management in multi-team rollouts. Be ready to explain grid vs responsive/canvas pages and when each is still relevant.