Extending Your Semantic Model via Composite Models
Field Parameters, Calculation Groups, What-If Parameters, Custom Calendars - objects that create composite model connections for departmental and report-specific extensions.
Understanding where objects belong in your Power BI architecture
When to share extensibility objects vs keeping them report-specific
Create a single composite model PBIX that connects to the core semantic model and adds departmental-specific objects. Other reports connect to THIS model, getting both core and departmental features.
When a report needs extensibility objects that don't make sense to share across the organization - scenario analysis for one executive, a specialized field parameter for a specific dashboard, experimental calculations, or one-off analysis requirements.
If multiple reports need the same object, use departmental
Testing something new? Start with single-report
Departmental requires shared ownership
Each of these adds powerful functionality at the cost of model complexity
Lets users switch which measure or column appears in a visual via slicer. One chart, many metrics on demand.
Applies transformations (YTD, Prior Year, % of Total) to ANY measure automatically. One definition, universal application.
Creates numeric sliders for scenario analysis. Users adjust values (growth rate, discount %) and see impact in real-time.
Adds specialized date tables for fiscal years, retail calendars, or custom period logic not in the source model.
Standalone tables for slicer options, configuration values, or lookup data without relationships to the main model.
Visual Calculations are report-scoped DAX calculations that work entirely within a single visual - without creating a composite model. Perfect for running totals, rankings, percent of parent, and moving averages when you only need the calculation in one visual.
Limitation: Visual Calculations only exist within the visual where they're created - they can't be reused in other visuals or referenced by other measures.
Key differences at a glance
| Feature | Field Params | Calc Groups | What-If | Custom Cal | Disconn. Tables |
|---|---|---|---|---|---|
| Works in Excel | No | Yes | No | Yes | Usually1 |
| Built-in to Desktop | Yes | Yes | Yes | Yes | Yes |
| Can have relationships | Yes | No | No | Yes | N/A |
| Requires DAX/M code knowledge | Basic | Moderate | Basic | Moderate | Basic |
| Code Language | DAX | DAX | DAX | DAX or M | M2 or DAX |
Benefits vs. considerations when creating composite models
Understanding the query cost of each object type
Field Parameters simply switch between existing measures - no additional query complexity since the underlying measures already exist.
What-If Parameters and simple Disconnected Tables have no model relationships. They just pass a value to a measure via SELECTEDVALUE() - negligible cost.
Calculation Groups modify query behavior by wrapping measures. Simple time intelligence (YTD, PY) adds minimal overhead. Complex DAX or poorly structured items can increase cost. In rare cases, CGs can create unexpected many-to-many patterns causing timeouts.
Complex Disconnected Tables with heavily nested SWITCH statements accumulate overhead from the complexity routed through them, not the table itself.
Custom Calendars introduce actual model relationships. Performance depends on relationship type (single vs bidirectional), cardinality, and interaction with existing date logic.
Nesting Composite Models compounds DirectQuery overhead. Each layer adds latency. Avoid chains where Report A connects to Composite B which connects to Composite C.
Match your scenario to the appropriate extensibility object
Users need to toggle between measures, columns, or time calculations without multiple visuals.
What-if analysis and sensitivity testing where users adjust numeric parameters in real-time.
Custom calendar periods, fiscal years, or time intelligence not available in the core model.
Slicer options, Top N selectors, or lookup values that only apply to this specific report or analysis.
Users need to analyze data in Excel PivotTables - these objects break Excel connectivity.
Other reports will DirectQuery connect to your composite - creates fragile dependency chains.
The calculation defines universal business rules - it belongs in the semantic model, not extensions.
Test new patterns in a single report first. Promote to departmental only when proven and others need it.
Create a diagram showing Core Model, Departmental Models, and Report connections. Helps teams understand dependencies.
After adding objects that create composite models, test refresh and verify all features still work as expected.
If you find yourself copying the same object to multiple reports, it's time to create a departmental model.
Use a dot prefix to sort calc groups and field parameters to the top of the field list where users find them easily.
Use a clear pattern like ".Calc Group - Time Intelligence" or ".Parameter - Metric Selection" so users know what each object does at a glance.
Pitfalls to watch out for when working with extensibility objects
If another report connects to your composite model via DirectQuery, your field parameters won't be available to them. They only work within the report where they're defined.
When multiple calculation groups are applied simultaneously, precedence rules determine the order of evaluation. This can cause unexpected results if not planned carefully - test thoroughly.
User selections on What-If parameter sliders don't persist between sessions. Each time a user opens the report, the slider resets to its default value.
If the source semantic model already has a date table marked as a date table, adding another calendar can create ambiguous or conflicting relationships. Plan your relationship strategy carefully.
Selections from disconnected tables don't automatically filter data. You must use SELECTEDVALUE() or similar functions in your measures to respond to user selections.
Local model data (like disconnected tables) and remote semantic model data may have different refresh schedules, potentially leading to data inconsistency during certain windows.