Back to Blog

Refreshing a Power BI Semantic Model from a Local Desktop File - Why It Works and Why You Should Stop Doing It

September 25, 2026•7 min read•Michael Ridland

Here is a scenario I have seen play out in a dozen Australian businesses. An analyst builds a Power BI report. The data comes from a spreadsheet, or a CSV export, or a little Access database sitting on their machine. They publish the report to the Power BI service so their manager can see it. It works. Then they set up scheduled refresh so the numbers stay current, and to make that work they point the refresh at the Power BI Desktop file, or the source files, that live on their local drive. And for a while, it all runs beautifully.

Then the analyst goes on leave. Or their laptop gets replaced. Or the office moves and their machine gets switched off over the weekend. And on Monday the report is stale, nobody knows why, and the person who built it is on a beach in Bali with their phone off. This is the story of refreshing a semantic model from a local file, and it is worth understanding properly because it is one of those things that works just well enough to lull you into trouble.

The Microsoft documentation on refreshing from a local drive covers the setup. I want to talk about the mechanics, and then be honest about when this is a reasonable choice and when it is a landmine you are stepping on without knowing.

How it actually works

When you publish a report from Power BI Desktop to the service, the service gets a copy of the semantic model, which is the data and the model structure, and the report on top of it. But that published copy does not magically stay in sync with your source data. To keep the numbers current, the service needs to be able to reach back to wherever the data came from and pull fresh data on a schedule. That is refresh.

If your source is a cloud data source, that is straightforward. The service connects directly. But if your source is a file on a local drive, a spreadsheet on your computer, a CSV in a folder, or the Power BI Desktop file itself, the service cannot reach it directly. Your laptop is not a server the cloud can dial into. So the connection happens through an on-premises data gateway, specifically the personal gateway mode, which is a small piece of software running on your machine that acts as the bridge. When the scheduled refresh fires, the service asks the gateway, the gateway reads the local file, and the data flows up.

That is the whole mechanism. The service, the gateway on your machine, and the file on your local drive. And the moment you see it laid out like that, the fragility becomes obvious. Every part of that chain has to be present and switched on at the moment the refresh runs.

The conditions that have to hold

For a local-file refresh to succeed, several things all need to be true at once, and this is where it falls apart in real life.

Your machine has to be turned on and connected to the internet when the scheduled refresh runs. If it is asleep, off, or on a flaky connection, the refresh fails. So if your refresh is scheduled for 6am and you shut your laptop at 5pm, that refresh is not happening.

The personal gateway has to be running. It is a service that starts with your machine, but Windows updates, restarts, and the occasional "I closed everything to speed my computer up" moment can leave it stopped.

The file has to be exactly where it was, with the same name, in the same folder. Move it, rename it, reorganise your desktop, and the refresh cannot find it.

And the credentials for the source have to still be valid. Same as any refresh.

When all of that holds, it works. And that is precisely the trap, because during the setup phase all of it does hold. The analyst's machine is on, the gateway is fresh, the file is right there. It works on day one, which is exactly why people ship it and move on. The failure comes weeks or months later, when one of those conditions quietly stops being true and the report goes stale on a day nobody is watching.

When this is genuinely fine

I do not want to be completely down on it, because there are legitimate cases.

For personal use, this is perfectly reasonable. If you are an analyst who built a report for your own use, or for a small team where everyone understands it lives off your machine, and the data is not business-critical, a local-file refresh is a pragmatic quick solution. There is no shame in it. Not everything needs enterprise plumbing.

For a prototype or a proof of concept, it is also fine. You are testing whether a report is useful before investing in proper infrastructure. Local-file refresh lets you get to "is this even worth building properly" quickly and cheaply. We do this ourselves during early discovery with clients. You do not stand up a data platform to find out whether anyone will look at the report.

The problem is never the technique. The problem is the technique escaping the situation it was appropriate for. The personal prototype becomes the report the whole finance team relies on, and nobody re-architected it, because it kept working right up until it did not.

When you have outgrown it, and what to do instead

The signal that you have outgrown local-file refresh is simple. If more than one person depends on the report, or if a decision of any consequence gets made from it, it should not be refreshing from someone's laptop. Full stop. The moment a report becomes shared or important, the dependency on one person's machine being switched on becomes a genuine business risk, and usually an invisible one.

The fix is to move the whole thing off the local drive. Where the data lives somewhere central, a SharePoint or OneDrive location, a database, a cloud data source, the service can reach it far more reliably. Where you do need a gateway because the source is on-premises, use the standard gateway installed on a proper always-on server rather than the personal gateway on a laptop. That single change, moving from a personal gateway on a laptop to a standard gateway on a server, eliminates the biggest cause of these mysterious Monday-morning failures.

Better still is to get the source data into a proper platform in the first place, so that the report is drawing from a well-managed central source rather than a file somebody exported. This is the kind of thing that sounds like over-engineering when you have one report and becomes obviously correct when you have thirty. When we help a client mature their reporting, this migration, from files-on-laptops to a governed central data source, is often the single highest-value piece of work, because it turns a fragile collection of personal reports into something the business can actually rely on. It sits right at the heart of the managed data and Power BI services we run, and it is the difference between reporting that needs babysitting and reporting that just works.

There is also a broader point here about how organisations mature their use of data. A lot of businesses accumulate these local-file reports organically, one analyst at a time, and end up with a sprawl of important-but-fragile artefacts that nobody has a complete map of. Part of what we do when we help teams get their business intelligence onto solid ground is find all of these, work out which ones matter, and move the ones that matter onto infrastructure that will not fall over when someone takes annual leave. It is unglamorous work and it prevents an enormous amount of pain.

The bottom line

Refreshing a semantic model from a local Desktop file is a real, supported feature, and for personal use or prototyping it is a sensible shortcut. The mechanics are simple: the service, a personal gateway on your machine, and the file on your drive, all of which have to be present and running when the refresh fires. That chain works fine until the day your laptop is off or the file has moved, and because it works so well at the start, people build on it far past the point where they should have moved to something sturdier.

My advice, plainly: use it to prove an idea, never to run the business. The moment a report matters to more than one person, get the data central and refresh it from there. For the exact setup steps, the Microsoft documentation is the reference. And if you have a pile of reports quietly refreshing off people's laptops and it makes you a little nervous, that instinct is correct, so come and talk to us about moving them onto ground that will hold.