← All Kits · Power BI Kit

Power BI Scheduled Refresh, Gateways and Data Alerts

Michael Nocito · Updated August 2026 · Limits and behaviour checked against Microsoft's own documentation, linked at the end

This page answers the three questions that decide whether a published report stays useful: how often your data can update, what has to be installed for it to reach your sources, and how somebody gets told when a number crosses a line. The headline numbers are eight scheduled refreshes a day on shared capacity and 48 on Premium, and the gateway rule is simpler than it sounds.

What you do: check your storage mode first, because only Import mode needs a refresh at all. Then set the schedule in the semantic model's settings, add a gateway only if the source lives inside your network, and put alerts on dashboard tiles rather than reports.

The short version. Import mode refreshes on a schedule. A gateway is only for sources the cloud cannot reach. Alerts watch dashboard tiles.

The Power BI service is drawn as a cloud on the right. Two sources sit on the left. The top source, labelled cloud database, connects to the service with a direct line. The bottom source sits inside a box labelled your network, and its line to the service passes through a small labelled gateway box on the boundary of that box. A third line shows a query that merges both sources, and it is drawn going through the gateway as well. your network SQL Server Azure SQL no gateway needed gateway Power BI service
The gateway only sits on the line the cloud cannot reach on its own.

Only one storage mode needs refreshing

Before the table: your report is slow to update. Is a refresh schedule even the right fix?

Only if you are in Import mode. Microsoft's own wording is blunt: only Import mode semantic models require a source data refresh, because only that type imports data. Everything else queries the source as people use the report.

Storage modeNeeds a scheduled refreshWhere the data lives
ImportYesCopied into the semantic model
DirectQueryNoAt the source, queried on every interaction
Direct LakeNoRead from the lake
Live connection to Analysis ServicesNoAt the source
PushNoPushed in by something else

Say out loud what that means for a stale number in a DirectQuery report. If nothing is imported, a refresh schedule cannot help, so a stale number is either cached visuals in an open browser or something at the source. Reload the report rather than hunting for a refresh setting that does nothing.

Eight a day, or 48

First: your stakeholder asks for hourly data. How many scheduled refreshes can you promise on a normal Pro workspace?

Eight. Power BI limits semantic models on shared capacity to eight scheduled daily refreshes, stored against the local time zone you pick on the settings page, with the quota resetting at 12:01 AM local time. On Premium capacity, Premium Per User or a Fabric capacity, the limit is 48.

CapacityScheduled refreshes per dayMaximum refresh duration
Shared82 hours
Premium, PPU or Fabric485 hours

Three practical notes on top of that. A manual Refresh now does not count against the eight, so you can always update on demand while you are working. The shared-capacity limit does apply to refreshes triggered through the REST API, not just the ones on the schedule. And with the XMLA endpoint enabled for read-write on Premium, programmatic refreshes are effectively unlimited, subject to the capacity's own resources.

So "eight a day" is really "every three hours, at times you choose", which is usually the honest answer to an hourly request on a Pro licence.

When you need a gateway, and when you do not

Before the rule: which of these needs a gateway, a SQL Server in your office or an Azure SQL database?

The office one. The rule is about reachability, not about the technology: if Power BI cannot access the source over a direct network connection, you must configure a gateway connection before you can enable a refresh schedule or run an on-demand refresh. Semantic models using cloud sources such as Azure SQL Database do not require a gateway, as long as Power BI can connect directly.

There are three kinds, and the names matter on an exam and in a procurement conversation.

TypeWho it servesNotes
On-premises data gatewayMultiple users, multiple sourcesThe standard choice, and what Microsoft recommends over personal mode
On-premises data gateway (personal mode)One user, no sharingPower BI only, for when you are the only person publishing
Virtual network data gatewayMultiple users, sources behind a virtual networkA Microsoft managed service, nothing to install

Now the part that turns a working refresh into a broken one, and it is the best question on this page. A semantic model can only use a single gateway connection, so every on-premises source it touches has to be on the same gateway. And if one query merges or appends data from a gateway-connected source and a cloud source, Power BI switches to the gateway connection for the cloud source as well.

Picture that happening. Your Azure SQL table refreshed fine for a year. Somebody merges it with a spreadsheet on a network share, and now the cloud source is going through the gateway too, and it fails on credentials nobody configured. The fix is either to add a data source definition for the cloud source to the gateway, or to tick "Allow user's cloud data sources to refresh through this gateway cluster".

Worth knowing before you ask an admin for anything: gateway permissions are managed separately from workspace roles. A Contributor can schedule refresh through a gateway, but only if a gateway admin has added the data source and given them permission to use it.

Data alerts live on dashboard tiles, and only yours are yours

First: you want an email when open tickets cross 100. Where do you set it up?

On a dashboard tile, not in the report. Alerts can only be set on tiles pinned from report visuals, and only on gauges, KPIs and cards. They are not available in Power BI Desktop at all.

The rest of the behaviour, in the order it bites:

Compare that with a subscription, which sends a snapshot of a report or dashboard on a schedule whether or not anything changed. Alerts are conditional and personal; subscriptions are scheduled and can be sent to other people. If a manager wants "tell me when", that is an alert they set for themselves. If they want "send me it every Monday", that is a subscription, and you can set it up for them.

For alerting rules that belong to a team rather than a person, Microsoft points at Fabric Activator alerts on reports rather than dashboard alerts, which is where that need has moved.

Edge cases worth knowing

A rename at the source fails the refresh in the service. If a column or table is renamed or removed upstream, refresh fails, because the service does not do a schema refresh. Fix it in Desktop and republish.

A refresh can succeed and still be wrong. Power BI logs a warning when a refresh completes but hits a non-fatal problem, such as a measure referencing a column that no longer exists. The data updates, the affected calculations return errors or blanks, and the status is not a failure. Check the refresh history, not just your inbox.

OneDrive refresh is a separate thing. Reports built on a file in OneDrive or SharePoint Online sync about every hour, and that sync tracks the file's item ID. Copying a new file over the old one creates a different ID and silently breaks the link; upload and replace instead.

Refresh times use the time zone on the settings page. The eight slots are stored against the local time zone you chose, which is the thing to check when a refresh is mysteriously an hour out twice a year.

Why the limits are shaped this way

A scheduled refresh is not free. It reads the whole source, rebuilds the model, and invalidates the cached query results that make reports feel instant, which Power BI then has to rebuild.

That is why the refresh count is capacity based rather than licence based: it is a queue on somebody's hardware. Shared capacity is shared, so it gets eight slots and a two hour ceiling. A capacity you paid for gets 48 and five hours because you are the one absorbing the cost.

The same logic explains why alerts only fire on refreshed data. There is no process sitting and watching your number. The check happens as part of a refresh, which means the fastest an alert can possibly be is the speed of your schedule. Promising a stakeholder a real-time alert on an eight-refresh schedule is promising something the architecture cannot do.

How to apply this to your own work

  1. Check the storage mode of your model before touching any refresh setting. If it is not Import, the schedule is not your problem.
  2. Count how often the source data genuinely changes. Most daily reports are refreshed more often than the data underneath them moves.
  3. Space your eight slots around when people actually read the report, not evenly. One before the morning meeting is worth three overnight.
  4. Before merging a cloud source with an on-premises one in a single query, check the gateway's cloud-source setting, or plan the failure into your afternoon.
  5. Set your own alert on the number you get asked about most. It is the cheapest early warning you will ever build, and nobody else has to know it exists.
  6. Read the refresh history once a week. Warnings are not failures and nobody emails you about them.

If you have paper nearby, draw your model's sources as boxes and put a line around the ones inside your network. Everything inside that line shares one gateway, and anything joining across the line is the query to look at first when refresh breaks.

Cheat sheet

QuestionAnswer
Refreshes a day, shared capacity8 scheduled, resetting 12:01 AM local time
Refreshes a day, Premium, PPU or Fabric48 scheduled
Does Refresh now countNo, manual on-demand refreshes are outside the eight
Which modes need refreshImport only
Gateway neededWhen Power BI cannot reach the source directly, so on-premises and virtual network sources
Gateway not neededCloud sources Power BI can connect to directly
Gateways per semantic modelOne connection, so all on-premises sources on the same gateway
Alerts, whereDashboard tiles pinned from card, KPI or gauge visuals
Alerts, who sees themOnly the person who set them
Scheduled email regardless of valueA subscription, not an alert

The one habit to keep

Before promising anybody a refresh frequency, say out loud which capacity the workspace is on. Eight and 48 are different products, and the gap between them is where most disappointed stakeholders live.

What is the refresh schedule on your most-read report, and when did you last check that all eight slots actually ran?

Sources. Limits and behaviour here come from Microsoft's own documentation: Data refresh in Power BI, On-premises data gateway and Set data alerts in the Power BI service. Capacity limits change, so check the current article before quoting a number in a meeting.
A report nobody can trust the freshness of is a report nobody uses twice.

Power BI for Analysts is 187 pages on the whole path from source to reader, including the parts that only show up after you publish.

Power BI for Analysts, $19 →
Practice this where it is marked.

The Power BI Kit covers the model, DAX and report building with worked examples in the browser. Gateways and data alerts are questions 45 and 48 of the PL-300 practice drill.

Open the Power BI Kit →