Configured and optimized Power BI's built-in schedule refresh feature across multiple datasets using Microsoft Fabric for enhanced capacity and control. Implemented refresh timing strategies to maximize data freshness while respecting Pro subscription limits (8 daily refreshes), including dataset optimization and incremental refresh patterns.
RolePower BI Developer
Year2025
ClientLifewood
Stack
Power BI Pro/Microsoft Fabric/Power Query/DAX
01
The problem.
Lifewood's Power BI datasets were refreshing inconsistently or not at all, causing reports to serve outdated data to stakeholders. With a Pro subscription limited to 8 daily refreshes per dataset, manual refresh requests were ad-hoc and unreliable. The team needed a strategy to maximize data freshness within licensing constraints without adding infrastructure complexity.
02
What I built.
Designed and implemented a tiered refresh architecture that respects the 8-refresh-per-day limit while keeping critical data fresh. Leveraged Microsoft Fabric capabilities to optimize dataset performance and enable incremental refreshes, reducing processing time. Configured refresh schedules strategically across datasets — critical operational data refreshes 8 times daily during business hours, analytical datasets refresh 2-3 times daily, and historical datasets refresh once daily during off-peak hours.
Tiered refresh schedules across datasets, configured in Microsoft Fabric
The approach used Power BI's native scheduling combined with Power Query optimization and Fabric's underlying compute to achieve maximum data freshness within licensing constraints — no custom orchestration needed.
Key decisions
01
Incremental refresh patterns — Configured Power Query to import only new/changed rows, dramatically reducing refresh duration and allowing more frequent updates within the same time window
02
Dataset partitioning strategy — Split large datasets into focused semantic models, enabling parallel refreshes and better performance isolation
03
Microsoft Fabric optimization — Leveraged Fabric's enhanced capacity and query folding capabilities to maximize efficiency of each refresh window
03
What I learned.
This project taught me that constraints force creativity — the 8-refresh limit pushed me to think about incremental loads and query optimization rather than brute-force full refreshes. I learned that refresh cadence is a business decision, not just a technical one; operational dashboards need hourly updates, but historical analysis doesn't. If I revisited it, I'd implement dynamic scheduling based on data source change frequency and add automated compression of older partitions to keep semantic models lean.