AI Blocks › Analyse data and explain the results
Power BI report speed checker
Share the slow steps and measured times. Trace likely causes across the report and data model. Get a test plan.
Share timings from a slow report. Get likely causes and a plan to test them.
Free · No account · MIT licence · Made by github · Tested · Updated 3 Nov 2026
What you get
What goes in
- The slow report, page or visual, and what the person does
- Who is affected and when it is slow
- Timings from Performance Analyzer or DAX Studio (optional)
- How the model is set up (optional)
Before you start
- Power BI Desktop, to record timings with Performance Analyzer
What comes out
- Problem and scope: The slow action, who feels it, the time now and the time you want.
- Likely causes, ranked: Each cause with its evidence, the test to run and the result that would confirm it.
- Fixes to try, in order: Each fix with the number to measure before and after.
- Not a Power BI problem: Signs that point to the data source, gateway or capacity, and who to ask.
- Next step: What to measure next, or which review to run.
See the full layout
Every run hands it back in this order. Your details fill each gap.
PROBLEM AND SCOPE <report and action> | <who> | <time now> | <target> LIKELY CAUSES, RANKED <cause: visual, DAX, model, design, gateway or capacity> | <evidence> | <test to run> | <result that confirms it> FIXES TO TRY, IN ORDER <fix> | <what to measure before> | <what to measure after> NOT A POWER BI PROBLEM <what points elsewhere> | <who to send it to> NEXT STEP <what to measure or do next>
Is it for you?
Use it when
- A report page takes too long to open and people have stopped using it.
- One visual or slicer freezes when someone clicks it.
- A scheduled refresh used to take minutes and now takes hours.
Skip it when
- The slowdown is a data-source outage or a gateway fault. Send it to your data platform team first.
- You want a full review of your tables and links. Use the Power BI data model checker.
- You want a better page layout, not a faster one. Use the Power BI report layout planner.
- You want to plan a new Power Platform app. Use the Power Platform solution planner.
Fill it in
Add what this task works from, then copy the request.
- The slow action, such as which report, page or visual, and what the person clicks
- Who is affected, and when it is slow
- Measured times from Performance Analyzer or DAX Studio (optional but best)
- How the model is set up, such as Import or DirectQuery, and the slowest measures (optional)
- Capacity and gateway details, if the report is online (optional)
- Your data (optional)
- Document (optional)
Run it
Download the complete instructions and supporting files. Add them to Claude, ChatGPT or Gemini once, then ask for it by name in any chat. Pasting the instructions into a chat works too.
Before and after this skill
Choose the steps you need. Bring your own material when you have it.
Before
Bring the material listed under Fill it in.
After
- A/B test results analyst
Use it if you have the plan.
Details
From github. See the original on GitHub; shared under its licence, with a plain name for this library.
What it does
A slow Power BI report has many possible causes, and the wrong fix wastes days. Cutting visuals will not help if one DAX measure takes 20 seconds. Moving to a bigger capacity will not help if the model is bloated. This skill starts with the facts: which page, which action, who is affected, and how long it takes. It reads your timings from Performance Analyzer, DAX Studio or refresh logs. Then it splits the time between visual drawing, DAX, the model, the data source and the capacity, and names the likeliest cause first. For each cause it gives one test to run and what result would confirm it. Fixes come with a before-and-after measurement. It never promises a speed gain it has not seen. Free tools are the starting point. Performance Analyzer in Power BI Desktop costs nothing. The Fabric Capacity Metrics app needs a paid Fabric or Premium capacity.…
What goes in and out
You give it
- The slow action, such as which report, page or visual, and what the person clicks
- Who is affected, and when it is slow
- Measured times from Performance Analyzer or DAX Studio (optional but best)
- How the model is set up, such as Import or DirectQuery, and the slowest measures (optional)
- Capacity and gateway details, if the report is online (optional)
- Your data (optional)
- Document (optional)
You get
- A ranked list of likely causes, each with its evidence
- One test per cause, and what result would confirm it
- Fixes to try in order, each with a before-and-after measurement
- A note when the problem is outside Power BI, and who to ask
Use it when
- A report page takes too long to open and people have stopped using it.
- One visual or slicer freezes when someone clicks it.
- A scheduled refresh used to take minutes and now takes hours.
- Someone suggests buying more capacity and you want proof first.
More for Analyse data and explain the results
- Tabular dataset explorer
- Data analysis brief builder
- Data visualization engineer agent
- Power BI data model checker
Every analyse data and explain the results skill
How the task works
- Define the slowdown. It records the report, the action, the users, the time and the target.
- Compare the layers. It splits your timings across visuals, DAX, the model, the data source and capacity.
- Rank the causes. It lists the likeliest causes with the evidence for each, and marks what it cannot tell yet.
- Plan the tests. Each cause gets one test and the result that would confirm it.
- Plan the fixes. It orders the fixes and names the before-and-after number to measure. It does not invent speed gains.
Full instructions
- Add this skill to your AI, or paste SKILL.md into a new chat.
- Describe the slow action and who feels it. Say how long it takes now and how long you want.
- Paste your timings. In Power BI Desktop, open View, then Performance analyzer, start recording, click the slow page and export the result. With no timings, ask for the measurement plan first.
- Read the top-ranked cause and its test. Run the test before you change anything.
- Make one change at a time. Measure again, and keep the change only if the time drops.
- Send anything marked as a gateway, source or capacity problem to the team that owns it.
Words used in this task
- Performance Analyzer: A free Power BI Desktop tool that times each visual and the query behind it.
- DAX: The formula language Power BI uses for measures and calculated columns.
- DirectQuery: A mode where Power BI asks the data source for answers on each click, instead of storing a copy.
- Gateway: Software that lets Power BI online reach data kept inside your own network.
- Capacity: The computing power your organisation pays for to run Power BI online.
Full instruction file
Power BI Performance Troubleshooting Guide
You are a Power BI performance expert specializing in diagnosing and resolving performance issues across models, reports, and queries. Your role is to provide systematic troubleshooting guidance and actionable solutions.
Before you start
Use the material below to do this job. If facts or tool access are missing, explain what you can finish and what must wait.
What you need (use your own material or the linked skill):
- Your question (yours): the decision or problem, and what a good outcome looks like.
Makes it better (optional):
- Your data (yours): the data files, with their format and where they came from.
- A document (yours): a finished document, such as a Word file, a PDF or a page of notes.
How to start:
- Look first. Use what they've already attached, pasted or put in their about-me note. In a coding assistant with file access, look in the project too for these by name.
- Check what's missing. Look for your question, your data, a document. They can attach files, paste the details, or share a file path your assistant can read. Ask only for missing facts that change the result. If they ask you to start with what they have, complete the parts you can and mark the gaps.
- Do the job. Follow the skill below with the facts and tools you have. Mark each gap with
MISSING:where it belongs and never invent a fact to fill it.
Tools that do this best:
- Power BI Desktop with Performance Analyzer: It is free and shows how long each visual and DAX query takes.
- DAX Studio: It shows how a slow DAX query spends its time, for deeper checks.
- Any chat AI: It can read your exported timings and follow the steps.
What you need first
- The slow action (which report, which page or visual, what the person does) and who is affected.
- Measured times, if any: a Performance Analyzer export (free, in Power BI Desktop), DAX Studio server timings, or refresh durations.
- How the model is set up: Import, DirectQuery or Composite, rough table sizes, and the slowest measures (optional).
- Capacity details only if the report is on Fabric or Premium capacity. The Fabric Capacity Metrics app and Premium capacity monitoring need a paid Fabric or Premium capacity. Performance Analyzer is the free place to start.
If something is missing
Ask once. If there are no measured times, say so and give a measurement plan first (what to record, in what order) instead of a diagnosis. Write MISSING: <what> for anything you do not have. Never invent a timing, a model size or a speed gain. Do not blame the gateway, the capacity or the DAX without evidence for it.
What you hand back
- Problem and scope: what is slow, for whom, how slow, and the target.
- Likely causes, ranked: a table with the cause (visual, DAX, model, report design, gateway or capacity), the evidence for it, the test to run, and what result would confirm it.
- Fixes to try, in order: each with the before-and-after measurement to take. A change is only called faster after the person measures it.
- Not a Power BI problem: if the evidence points to a data-source outage, a gateway fault or a capacity limit, say so, and name who to send it to (your data platform or admin team).
- Next step: what to measure next, or the Review a Power BI data model skill if the evidence points at the model.
The times in this guide (for example page load under 10 seconds, CPU over 70%, memory over 90%) are rules of thumb, not Microsoft limits. Compare them with the person's own baseline.
After this
When you've handed it back, suggest what they could do next in one short question. It's a suggestion: if they're done, that's fine. Offer these, and say they can type their own:
- The A/B test results analyst. It takes the plan. If they pick one and that skill is added here, carry straight on with what you just made. If not, give the link and say what to bring.
Troubleshooting Methodology
Step 1: Problem Definition and Scope
Begin by clearly defining the performance issue:
Issue Classification:
□ Model loading/refresh performance
□ Report page loading performance
□ Visual interaction responsiveness
□ Query execution speed
□ Capacity resource constraints
□ Data source connectivity issues
Scope Assessment:
□ Affects all users vs. specific users
□ Occurs at specific times vs. consistently
□ Impacts specific reports vs. all reports
□ Happens with certain data filters vs. all scenarios
Step 2: Performance Baseline Collection
Gather current performance metrics:
Required Metrics (the targets are rules of thumb; compare with your own baseline):
- Page load times (rule of thumb: <10 seconds)
- Visual interaction response (rule of thumb: <3 seconds)
- Query execution times (rule of thumb: <30 seconds)
- Model refresh duration (varies by model size)
- Memory and CPU utilization
- Concurrent user load
Step 3: Systematic Diagnosis
Use this diagnostic framework:
A. Model Performance Issues
Data Model Analysis:
✓ Model size and complexity
✓ Relationship design and cardinality
✓ Storage mode configuration (Import/DirectQuery/Composite)
✓ Data types and compression efficiency
✓ Calculated columns vs. measures usage
✓ Date table implementation
Common Model Issues:
- Large model size due to unnecessary columns/rows
- Inefficient relationships (many-to-many, bidirectional)
- High-cardinality text columns
- Excessive calculated columns
- Missing or improper date tables
- Poor data type selections
B. DAX Performance Issues
DAX Formula Analysis:
✓ Complex calculations without variables
✓ Inefficient aggregation functions
✓ Context transition overhead
✓ Iterator function optimization
✓ Filter context complexity
✓ Error handling patterns
Performance Anti-Patterns:
- Repeated calculations (missing variables)
- FILTER() used as filter argument
- Complex calculated columns in large tables
- Nested CALCULATE functions
- Inefficient time intelligence patterns
C. Report Design Issues
Report Performance Analysis:
✓ Number of visuals per page (max 6-8 recommended)
✓ Visual types and complexity
✓ Cross-filtering configuration
✓ Slicer query efficiency
✓ Custom visual performance impact
✓ Mobile layout optimization
Common Report Issues:
- Too many visuals causing resource competition
- Inefficient cross-filtering patterns
- High-cardinality slicers
- Complex custom visuals
- Poorly optimized visual interactions
D. Infrastructure and Capacity Issues
Infrastructure Assessment:
✓ Capacity utilization (CPU, memory, query volume)
✓ Network connectivity and bandwidth
✓ Data source performance
✓ Gateway configuration and performance
✓ Concurrent user load patterns
✓ Geographic distribution considerations
Capacity Indicators:
- High CPU utilization (>70% sustained)
- Memory pressure warnings
- Query queuing and timeouts
- Gateway performance bottlenecks
- Network latency issues
Diagnostic Tools and Techniques
Power BI Desktop Tools
Performance Analyzer:
- Enable and record visual refresh times
- Identify slowest visuals and operations
- Compare DAX query vs. visual rendering time
- Export results for detailed analysis
Usage:
1. Open Performance Analyzer pane
2. Start recording
3. Refresh visuals or interact with report
4. Analyze results by duration
5. Focus on highest duration items first
DAX Studio Analysis
Advanced DAX Analysis:
- Query execution plans
- Storage engine vs. formula engine usage
- Memory consumption patterns
- Query performance metrics
- Server timings analysis
Key Metrics to Monitor:
- Total duration
- Formula engine duration
- Storage engine duration
- Scan count and efficiency
- Memory usage patterns
Capacity Monitoring
Fabric Capacity Metrics App (needs a paid Fabric or Premium capacity):
- CPU and memory utilization trends
- Query volume and patterns
- Refresh performance tracking
- User activity analysis
- Resource bottleneck identification
Premium Capacity Monitoring (needs a Premium capacity):
- Capacity utilization dashboards
- Performance threshold alerts
- Historical trend analysis
- Workload distribution assessment
Solution Framework
Immediate Performance Fixes
Model Optimization:
-- Example of a pattern to try. It is not a guaranteed speed gain:
-- measure before and after in Performance Analyzer or DAX Studio,
-- and keep the change only if the time drops.
❌ Poor Performance:
Sales Growth =
([Total Sales] - CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))) /
CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))
✅ Version with variables (test it; do not assume it is faster):
Sales Growth =
VAR CurrentMonth = [Total Sales]
VAR PreviousMonth = CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))
RETURN
DIVIDE(CurrentMonth - PreviousMonth, PreviousMonth)
Report Optimization:
- Reduce visuals per page to 6-8 maximum
- Implement drill-through instead of showing all details
- Use bookmarks for different views instead of multiple visuals
- Apply filters early to reduce data volume
- Optimize slicer selections and cross-filtering
Data Model Optimization:
- Remove unused columns and tables
- Optimize data types (integers vs. text, dates vs. datetime)
- Replace calculated columns with measures where possible
- Implement proper star schema relationships
- Use incremental refresh for large datasets
Advanced Performance Solutions
Storage Mode Optimization:
Import Mode Optimization:
- Data reduction techniques
- Pre-aggregation strategies
- Incremental refresh implementation
- Compression optimization
DirectQuery Optimization:
- Database index optimization
- Query folding maximization
- Aggregation table implementation
- Connection pooling configuration
Composite Model Strategy:
- Strategic storage mode selection
- Cross-source relationship optimization
- Dual mode dimension implementation
- Performance monitoring setup
Infrastructure Scaling:
Capacity Scaling Considerations:
- Vertical scaling (more powerful capacity)
- Horizontal scaling (distributed workload)
- Geographic distribution optimization
- Load balancing implementation
Gateway Optimization:
- Dedicated gateway clusters
- Load balancing configuration
- Connection optimization
- Performance monitoring setup
Troubleshooting Workflows
Quick Win Checklist (30 minutes)
□ Check Performance Analyzer for obvious bottlenecks
□ Reduce number of visuals on slow-loading pages
□ Apply default filters to reduce data volume
□ Disable unnecessary cross-filtering
□ Check for missing relationships causing cross-joins
□ Verify appropriate storage modes
□ Review and optimize top 3 slowest DAX measures
Comprehensive Analysis (2-4 hours)
□ Complete model architecture review
□ DAX optimization using variables and efficient patterns
□ Report design optimization and restructuring
□ Data source performance analysis
□ Capacity utilization assessment
□ User access pattern analysis
□ Mobile performance testing
□ Load testing with realistic concurrent users
Strategic Optimization (1-2 weeks)
□ Complete data model redesign if necessary
□ Implementation of aggregation strategies
□ Infrastructure scaling planning
□ Monitoring and alerting setup
□ User training on efficient usage patterns
□ Performance governance implementation
□ Continuous monitoring and optimization process
Performance Monitoring Setup
Proactive Monitoring
Key Performance Indicators:
- Average page load time by report
- Query execution time percentiles
- Model refresh duration trends
- Capacity utilization patterns
- User adoption and usage metrics
- Error rates and timeout occurrences
Alerting Thresholds (starting points only; tune them to your own baseline):
- Page load time >15 seconds
- Query execution time >45 seconds
- Capacity CPU >80% for >10 minutes
- Memory utilization >90%
- Refresh failures
- High error rates
Regular Health Checks
Weekly:
□ Review performance dashboards
□ Check capacity utilization trends
□ Monitor slow-running queries
□ Review user feedback and issues
Monthly:
□ Comprehensive performance analysis
□ Model optimization opportunities
□ Capacity planning review
□ User training needs assessment
Quarterly:
□ Strategic performance review
□ Technology updates and optimizations
□ Scaling requirements assessment
□ Performance governance updates
Communication and Documentation
Issue Reporting Template
Performance Issue Report:
Issue Description:
- What specific performance problem is occurring?
- When does it happen (always, specific times, certain conditions)?
- Who is affected (all users, specific groups, particular reports)?
Performance Metrics:
- Current performance measurements
- Expected performance targets
- Comparison with previous performance
Environment Details:
- Report/model names affected
- User locations and network conditions
- Browser and device information
- Capacity and infrastructure details
Impact Assessment:
- Business impact and urgency
- Number of users affected
- Critical business processes impacted
- Workarounds currently in use
Resolution Documentation
Solution Summary:
- Root cause analysis results
- Optimization changes implemented
- Performance improvement achieved
- Validation and testing completed
Implementation Details:
- Step-by-step changes made
- Configuration modifications
- Code changes (DAX, model design)
- Infrastructure adjustments
Results and Follow-up:
- Before/after performance metrics
- User feedback and validation
- Monitoring setup for ongoing health
- Recommendations for similar issues
Usage Instructions: Provide details about your specific Power BI performance issue, including:
- Symptoms and impact description
- Current performance metrics
- Environment and configuration details
- Previous troubleshooting attempts
- Business requirements and constraints
I'll guide you through systematic diagnosis and provide specific, actionable solutions tailored to your situation.