IBCS + SVG + UDF = PowerofBI.IBCS
The International Business Communication Standards (IBCS) are practical proposals for designing business reports, presentations, and dashboards in terms of their conceptual design, visual perception, and semantic notation. The IBCS proposals formed the basis of the ISO 24896 standard notation for business reports (under development).
While there are paid custom visuals (with an additional per-user subscription fee), Power BI doesn’t provide a native way to build IBCS-guided data visualizations. But, in recent years, Power BI expanded SVG support in Table, Matrix, Card, and Image visuals, as well as Button and List Slicers. And we can use SVGs to customize core visuals for clarity and impact. The goal of good customization is not to decorate and randomize (e.g., using AI to generate as many “cool” templates as possible), but to streamline and unify BI reports, and that’s where IBCS guidelines become useful.
I speak about turning slicers into charts at the Power BI & Fabric Summit 2026
Day 2, Room 2. Andrzej Leszkiewicz, The Real Power of the New Slicers: Turn Your Slicers into Charts.
And with user-defined functions (UDFs) introduced in September 2025, report unification through customization is easier than ever. Free open-source UDF libraries let you embed charts into the core visuals just by calling a function. UDFs let you package DAX logic and reuse it like any built-in DAX function. DAX Lib is a free, open-source repository of DAX functions that you can easily import and use in your models. DAX Lib allows you to discover and download libraries of user-defined functions, as well as share your own functions with the community.
Among other useful applications, UDFs can be used to generate SVG images and create reusable custom data visualizations. I’ve published the PowerofBI.IBCS DAX Lib package with UDFs that generate IBCS (International Business Communication Standards)-guided visualizations for embedding into Power BI core visuals that support SVG images (Table, Matrix, New Card, Image, Button, and List Slicers).
The best core visual for embedding SVG visualizations is, surprisingly, the Button Slicer. Core visuals don’t support interactivity in SVG images, but embedding each bar of a bar chart into an individual button allows the use of hover, selected, and other button states to show different SVGs (e.g., to change the background color of the selected button). Table and Matrix visuals work well for multi-tier charts and for mixing text and numeric columns with embedded charts.
Examples of charts embedded into core Power BI visuals
Matrix visual with an embedded 3-tier bar chart
🔥 This is an interactive visual (Matrix) in a Power BI report embedded into this page using Power BI Embedded
Column “% AC” generated by PowerofBI.IBCS.Extras.PieChart.PctOfTotal function.
Column “AC, PY” generated by PowerofBI.IBCS.BarChart.AbsoluteValues function.
Column “ΔPY” generated by PowerofBI.IBCS.BarChart.AbsoluteVariance function.
Column “ΔPY%” generated by PowerofBI.IBCS.BarChart.RelativeVariance function.
Button slicer with an embedded bar chart
🔥 This is an interactive visual (Button Slicer) in a Power BI report embedded into this page using Power BI Embedded
Generated by PowerofBI.IBCS.BarChart.WithAbsoluteVariance function. This function will be available soon in version 0.7.0 of the package.
Button slicer with an embedded column chart
🔥 This is an interactive visual (Button Slicer) in a Power BI report embedded into this page using Power BI Embedded
Columns 1-12 generated by PowerofBI.IBCS.ColumnChart.WithAbsoluteVariance function.
Button slicer with an embedded column chart (wide variance bars version)
🔥 This is an interactive visual (Button Slicer) in a Power BI report embedded into this page using Power BI Embedded
Generated by PowerofBI.IBCS.ColumnChart.AbsoluteVarianceWide function.
Matrix visual with embedded bar and pie charts
🔥 This is an interactive visual (Matrix) in a Power BI report embedded into this page using Power BI Embedded
Column “% of Total” generated by PowerofBI.IBCS.Extras.PieChart.PctOfTotal function.
Column “Amount” is a measure that calls PowerofBI.IBCS.BarChart.AbsoluteValues function.
Button slicer with an embedded 3-tier chart
🔥 This is an interactive visual (Button Slicer) in a Power BI report embedded into this page using Power BI Embedded
Slicer “buttons” generated by PowerofBI.IBCS.ColumnChart.WithWaterfall function.
Button slicer with small multiple column charts
🔥 This is an interactive visual (Button Slicer) in a Power BI report embedded into this page using Power BI Embedded
Slicer “buttons” (small multiple bar charts) generated by PowerofBI.IBCS.ColumnChart.SmallMultiple function.
Matrix visual with a waterfall chart (for P&L reports)
🔥 This is an interactive visual (Matrix) in a Power BI report embedded into this page using Power BI Embedded
Columns PY and AC generated by PowerofBI.IBCS.Waterfall.Vertical function. This function will be available soon in version 0.5.0 of the package.
Column ΔPY generated by PowerofBI.IBCS.BarChart.AbsoluteVariance function.
I’ll be adding more functions to the package, testing and updating the existing ones.
Where to get the functions?
You can get the package on DAX Lib and install the functions into your data model in Power BI Desktop using one of the following methods:
1) TMDL view in Power BI Desktop (copy-paste the code)
2) DAX Package Manager in Tabular Editor 3 (click “Install”)
3) Natural language chat with AI using Visual Studio Code and Power BI Modeling MCP Server. Ask AI to find functions that work best for your purpose, install the entire package or chosen functions, explain the functions, add comments, and provide usage examples.
If you have any problems or proposals, feel free to create an Issue or Pull Request at https://github.com/avatorl/dax-udf-svg-ibcs. I made the functions free and open source, and your contribution would be beneficial for the whole community.
Read more
UDFs made this method more convenient
I published a few videos about how I use DAX-generated SVG images to embed IBCS-guided data visualization into Power BI reports and presented this approach at Power BI & Fabric Summit 2024. But when I started this project in 2023-2024, there were no UDFs, and the only solution for code reusability was to use calculation groups. But calculation groups do not support parameters, so while they provided a certain level of reusability (only one calculation item per chart type), it was a bit cumbersome to reuse them for embedding charts into multiple visuals within a report. Now you can just call a function. And you can install functions from a centralized library. It makes embedding IBCS-guided data visualizations using SVGs more convenient, with reduced development and maintenance costs.
Accessibility
I’m also planning to post more about the accessibility of the SVGs embedded into core visuals. I’ll explain why the colors on the above charts are not exactly green and red (they are more like green-blue and orangish). I’ll also cover how to make the SVGs compatible with high contrast mode (Left Alt + Left Shift + PrtSc on Windows). Additionally, I’ll explain how to add alt text and make the SVG charts compatible with screen readers. I’ve already made a few posts on this subject on LinkedIn, but the plan is to compile everything into an article on this website.
“IBCS? It looks weird and confusing”
The charts based on IBCS notation may initially look confusing, just like sheet music or circuit diagrams to someone who has never learned the notation. The purpose of unified notation is to convey complex data faster and with fewer errors in a way that requires some learning at first, but ultimately makes the information easy to understand internationally, in any country, company, or department.
If it takes a user a few minutes to read a legend on each new dashboard, they’re probably not the best dashboards. If it takes a user a few minutes to learn unified notation that will then be used in multiple reports within an organization (and then between organizations and internationally), and it becomes easier to understand any reports, it’s a well-working standard. That’s why ISO 24896 is already under development.
Is it just about visual notation?
No, implementing IBCS in your organization is more than just starting to use IBCS-styled charts. To better understand IBCS, start by reading the standards (IBCS version 1.2), and I recommend reading the following book:
