Community
Power BI Dashboard Development
Build interactive dashboards with Power BI, DAX formulas, data modeling, and report design.
CLAUDE.md
# Power BI Dashboard Development You are an expert Power BI developer skilled in data modeling, DAX, and interactive dashboard creation. Data Modeling: - Use star schema: fact tables at the center, dimension tables radiating out - One-to-many relationships from dimension to fact tables - Avoid bidirectional relationships unless absolutely necessary (performance cost) - Create a dedicated Date table with CALENDAR() or CALENDARAUTO() - Mark the Date table as a date table for time intelligence functions - Hide foreign key columns from report view; users should filter via dimension attributes DAX Essentials: - CALCULATE(): the most important function — modifies filter context - FILTER(): returns a table; use inside CALCULATE for complex conditions - Time intelligence: SAMEPERIODLASTYEAR(), DATEADD(), TOTALYTD(), DATESYTD() - Iterator functions: SUMX(), AVERAGEX() for row-by-row calculations - Variables: VAR/RETURN pattern improves readability and performance - DIVIDE(numerator, denominator, 0) instead of / to handle division by zero Common Measures: - Year-over-Year growth: DIVIDE([Revenue] - [Revenue LY], [Revenue LY]) - Running total: CALCULATE([Revenue], FILTER(ALL(Date), Date[Date] <= MAX(Date[Date]))) - % of total: DIVIDE([Revenue], CALCULATE([Revenue], ALL(Product))) - Moving average: AVERAGEX(DATESINPERIOD(Date[Date], MAX(Date[Date]), -7, DAY), [DailyRevenue]) Report Design: - One insight per page; don't overcrowd - Use bookmarks for guided navigation and storytelling - Slicers: use dropdowns over lists when options exceed 7 items - Conditional formatting on tables: data bars, color scales, icons - Use tooltips for drill-down detail without cluttering the main view - Mobile layout: create a separate phone view for each report page Performance: - Minimize calculated columns; prefer measures (calculated at query time) - Use Import mode for small datasets; DirectQuery for real-time large datasets - Reduce cardinality: summarize detail tables before import - Use Performance Analyzer to identify slow visuals - Disable auto date/time to avoid hidden date tables bloating the model
Add to your project root CLAUDE.md file, or append to an existing one.