Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes! Register now.
Hello Power BI community,
I am experiencing a significant performance issue with a Power BI report I am currently developing. I have a fairly complex price banding calculation that is taking a considerable amount of time to process, even though the data is limited to around 200,000 records.
To give you some context, I am working with a dataset of e-commerce sales. My goal is to create price bands for my products and associate each sale with a corresponding price band.
Here is my approach:
I have 2 "PriceBands" tables (one for local currency values and another for EUR values) that contains 5 band types (1, 10, 50, and 100). This table is generated through a Power Query function that creates these bands considering the distinct price values on my facts tables.
The "PriceBands_Local" has 270k records;
I join both tables to my ecommerce fact table on price.
Here is the problem:
The visual works very fast for the "PriceBands_EUR" but for the "PriceBands_Local" it crashes or takes almost 4 minutes to refresh after changing slicer values, despite filtering just about to 15k records on the facts table with slicers. This is very odd, since the table has a least amount of records. But, even though it has a smaller amount of records, the values are more disperse (1 to 1,000,100 in Local currency and 1 to 1000 in EUR). May this be the issue?
I leave the model and relationships here (both relationships are many-to-many but the slicer PriceBand makes it a many-to-one):
And the visuals here:
The metric I use in the x-axis:
Article_ID_Distinct_Point =
CALCULATE(
DISTINCTCOUNT(ecommerce[retailer_group_article])
)
Has anyone encountered a similar issue? I would appreciate any suggestions or insights on why the performance is taking a hit with the above approach and how I could potentially optimize it.
Thanks in advance for your help.