Set Instructions
Set instructions are built-in operations you apply to a dimension set to control how its members are selected, ordered, formatted and displayed within a Workview. They let you shape a set declaratively - sorting and grouping members, applying number formats and styles, suppressing empty rows, inserting calculated members, and more - without changing the underlying data.
A set is built by writing a sequence of instructions rather than typing out a fixed list of elements. A short example:
- Include the
All Productselement - Expand it to show all descendants
- Remove any consolidation elements (parents)
The result is every leaf-level product, however many there are and however the hierarchy is structured. When new products arrive in the dimension, the instructions resolve to include them automatically - no manual update needed.

Why this matters: reports that stay current on their own
The real payoff shows up after the report is built. A set assembled from instructions doesn't hardcode a list of elements, so it keeps resolving correctly as the model changes underneath it - without anyone going back to edit it.
Time dimension. A column set built from All Time, expanded once to show its immediate children, doesn't name 2024, 2025, 2026 individually - it just expands whatever All Time currently contains. As new periods are added to the Time dimension, whether by an overnight process or a user loading a new period, every Workview built on that set picks up the new period the next time it renders. Nobody needs to open the set editor and add the new year to every Workview that uses it.
Account dimension. The same idea applies to a dimension fed by an external system. Say new GL accounts arrive on a schedule from an ERP or accounting platform integration, added automatically into the Accounts dimension - either under their mapped parent, or under a catch-all like Unmapped Revenue Accounts when the integration can't resolve one yet. A set built as All Accounts → Expand All → Remove Consolidations includes every account the moment it lands in the dimension, unmapped ones included, without a report owner needing to notice the account exists and add it to a list.
A hardcoded element list is exact today and stale the moment the model changes. A set built from instructions costs a little more thought upfront, but then keeps working as the dimension grows - which is the trade-off the rest of this section is about. See Common Patterns for the instruction sequences that make this work in practice.
Where you'll use this
The same editor and the same instructions are reused across most of MODLR's reporting surfaces, which is what makes learning them once worthwhile:
- Workviews - every dimension placed on rows or columns has at least one set. Dimensions on rows and columns can carry multiple stacked sets, each with its own instructions.
- Cards - any component with an Instructions property uses set instructions: Tables (Row/Column Instructions), Lists, Tree Graphs, Charts (Plot/Series Instructions), and Selectables.
- Mappings - set instructions define which elements appear on the left side of a mapping.
- The Excel Add-in - both the
SetInstructionformula function and Live Workviews use the same instructions, through a layout adapted to Excel's UI (see below). - Dashboard selectables - the dropdowns that update context across multiple Dashboard widgets are driven by set instructions too.
Some instructions only do something in certain contexts - Enable Drill Down, for example, only affects a web Workview; in a Card chart or an Excel CubeGet formula it's simply skipped. This means you can author one set with mixed-context instructions and each surface applies only the ones it understands.
How instructions execute
Instructions run in order, top to bottom, against a working list. Each instruction either adds elements to that list or manipulates what's already there (expanding, sorting, removing, formatting). Once an instruction runs, the working list is whatever it left behind - the next instruction operates on that result, not on the original selection.

This is why instruction order changes the outcome. Expand All followed by Remove Consolidations leaves a flat list of leaves; the same two instructions in reverse order remove the only element in the list before the expansion ever runs, leaving nothing. See Common Patterns for worked sequences and the ordering mistakes that trip people up most often.
The Set Instructions editor
The editor has three panels, and opens the same way everywhere on the web - from a Workview row/column header, a Card component's Instructions property, a Mapping, or a Dashboard selectable.

Left panel - Dimension Hierarchy Explorer. Your view into the dimension's structure: a hierarchy selector dropdown, a tree you navigate to find elements, an alias selector for browsing by friendly names instead of codes, a limit control (default 500 elements, raisable to 15,000 for large dimensions), and a search bar. Double-click an element (or drag-select several and click Add) to add it to the applied instructions list.
Middle panel - Applied Instructions. The ordered list that defines the set, top to bottom. Element selections and instruction blocks both appear here as entries you can drag to reorder or click to delete. This is also where the Set X of Y navigation appears when a Workview axis has multiple stacked sets - see Common Patterns for what stacked sets are used for.
Right panel - Available Instructions. Every instruction you can apply, searchable, and grouped under the same category names used throughout this documentation - Set Formatting, Set Manipulation, Data Formatting, and Advanced Functions. Double-click an instruction to add it to the bottom of the applied list.
Preview, Save, Cancel sit along the bottom. Preview resolves the instruction stack as it currently stands and shows you the result - use it early and often rather than guessing at what a stack of instructions will produce.
The editor in the Excel Add-in
The Excel Add-in uses the same hierarchy explorer and applied-instructions panels. The one difference: there's no right-hand panel: available instructions are reached through a toolbar dropdown instead, which adds to the applied list the same way double-clicking does on the web. Everything else - the instructions themselves, their execution order, their effects - is identical.
Categories
Each set instruction is listed in the sidebar, organised into categories:
- Set Formatting - control indentation, expansion, drill-down and the position of subtotals.
- Set Manipulation - sort, group, and remove members within the set.
- Data Formatting - apply number formats to the values displayed in the set.
- Advanced Functions - formula-driven labels and styles, header and cell styling, element insertion, variance calculations, and suppression.
The documentation for each instruction includes its purpose, usage and related help content, making it easy to learn how to use each one effectively. For end-to-end examples of instructions used together, see Common Patterns.