Sales Territory Balancer — a Power BI custom visual by TCViz · Last updated: 7 October 2026
Sales Territory Balancer does not collect, transmit, store or share any data. It has no network access of any kind. The territories are computed entirely inside the Power BI rendering sandbox on your own machine or in your own tenant, and the locations of your points of sale never leave it.
Power BI passes the visual only the fields you place in its field wells. The visual has no route to the rest of your dataset, your Power BI workspace, your account or your device.
| Field well | What it receives |
|---|---|
Customer ID | One identifier per point of sale, shown in the tooltip and in the CSV export. |
Latitude, Longitude | The coordinates of each point, used in memory to compute distances and draw the map. |
Visits per month, Minutes per visit | Optional. The workload of each point: visits × (minutes + travel time). |
Postal code | Optional. Used to build automatic areas from whole postal codes and to filter other visuals; shown in the tooltip and the CSV export. |
Speed (km/h) | Optional. Travel speed around each point. |
Area | Optional commercial area label; territories are built inside it. Shown in the tooltip and the CSV. |
Tooltips | Optional values shown on hover. |
fetch or
XMLHttpRequest calls, no external scripts, no fonts loaded from a CDN, no analytics,
no telemetry, no error reporting and no advertising. It declares two privileges in
capabilities.json, both local: ExportContent, which lets it hand a file to Power
BI's own download dialog (§4), and LocalStorage, which lets it keep its last result in your
browser (§3). It declares no web-access privilege, so Power BI itself blocks any outbound connection at
the platform level. The map outlines (Natural Earth) are packaged inside the visual.
This is also why the map has no street background. A background map would mean fetching tiles from a third-party server, and every tile request would tell that server which area of the world you are looking at — which, for a visual that handles customer addresses, is exactly the information that should stay inside your report. Territories read perfectly well without a basemap: what matters is their shape relative to each other.
While a report is being edited, the visual persists the values of its control bar —
hours per salesperson, average speed, road factor and number of areas — inside your own
.pbix report file, through the standard Power BI persistProperties API, so
the report opens with the settings its author chose. In reading view nothing is written:
a reader can change the values to explore, and the report is not modified.
These are numbers you typed, never data values. They travel nowhere else.
Power BI discards a visual when you leave its report page and creates it again when you come back.
So that the territories do not have to be computed again, the visual keeps its last result in your
browser through Power BI's own local storage API (IVisualLocalStorageV2Service). What it
keeps is only the territory number of each client, by position, the hours per territory
and area, the area names and the territories' centres, plus a fingerprint of the data and parameters so
that it is used only when they match. It does not keep customer IDs, coordinates,
visits or any other value from your data. It never leaves your machine, Power BI deletes it 29 days after
it was last written, and it is available only when you are signed in. Your Power BI administrator
controls it with the tenant setting Allow access to the browser's local storage (on by default);
when it is off, the visual simply computes again.
localStorage or sessionStorage: the only
browser storage is the Power BI API described aboveThe Export CSV button builds a file in your browser's memory from the current assignment (customer ID, area, territory, workload) and hands it to Power BI's own download dialog, which your Power BI administrator controls (tenant setting Allow downloads from custom visuals). Export map PDF does the same with a picture of the map as it is on screen. Nothing is uploaded anywhere; the files exist only where you choose to save them.
The visual has a free tier and a Pro tier. Entitlement is checked only through Microsoft's official
IVisualLicenseManager API, which is part of Power BI: Power BI tells the visual which of its
plans the signed-in user holds, and nothing else. The visual sends nothing about you or your data to
TCViz or anyone else to perform that check; licences are bought and managed in Microsoft AppSource and the
Microsoft 365 admin center.
If you open an issue on GitHub or email us, we receive whatever you choose to include — typically your description, the visual version and any screenshots you attach. Please redact anything confidential before sending. We use that information only to answer you, and we do not share it.
The visual is a professional data tool, not directed at children, and collects nothing from anyone.
If this policy changes, the revised version will be published here with a new date and summarised in the changelog. Because the visual collects nothing, no change can retroactively affect data already handled.
Questions about this policy: support@tcviz.com
Bug reports: support@tcviz.com