SharePoint Communication Reach: Are Employees Really Seeing Your Content?
By · 8 min read

The restructuring announcement went up on the intranet on a Tuesday. By Friday the page analytics panel showed 7,412 views. Headcount is 11,000. Somebody in the room will do the division and say two thirds of the company has seen it, and you will know that number is wrong without being able to say by how much.

That is the reach problem in one sentence. Reach is a fraction, and SharePoint gives you an unreliable numerator and no denominator at all. This article is about what the native figure actually counts, the specific mechanisms that push it upwards, and how to produce a reach number you can defend when a sceptical executive asks the second question.

What the native number is actually counting

Two different things are usually called SharePoint analytics, and they answer different questions. The page-level analytics panel on a modern page reports views, unique viewers and average time spent for that page. The SharePoint site usage report in the Microsoft 365 admin centre reports at site level, over fixed windows of 7, 30, 90 or 180 days[1].

Both are honest about what they measure. Neither claims to measure reach, and that is the source of the confusion. They report traffic to a resource. Reach is a statement about people, specifically about a named population, and no traffic figure can be converted into one without information SharePoint does not hold.

Five mechanisms that push the number up

There is no denominator. A view count divided by headcount is not reach, because headcount includes everyone the message was never meant for and everyone who cannot get to the intranet. In a group with 4,000 production operators sharing 40 kiosk terminals, headcount as a denominator makes every campaign look weak, and the population it was written for invisible.

Unique viewers is unique within a window, not within a campaign. The panel deduplicates inside the period it is showing. Read a 7-day figure and a 30-day figure and add them, and you have counted the same people twice. Campaigns rarely start on the first day of a reporting window.

Everyone with access is in the count. The internal communication team, the agency, the IT administrators testing the page, the executive assistant checking the wording. A dozen people refreshing a page during publication day is noise on 7,412, but it is not noise on a departmental announcement that got 180.

A view is a page load, not an act of reading. News rollup web parts, hub navigation and the Viva Connections feed all produce page loads from people who glanced at a headline in a list. Average time spent partly separates these, but it is an average, which means one person leaving a tab open all afternoon rescues the reputation of two hundred people who bounced.

Channels get added together. The same announcement runs on the intranet, in a Teams channel and in the newsletter. Adding the three numbers counts the head of finance three times. Nothing in the native tooling deduplicates a person across products, which is the core of measuring communications across channels rather than within one.

A definition worth arguing for

Reach is the number of distinct people in the intended audience who opened the item, divided by the size of that intended audience, within a window you state. Four things in that sentence do the work: distinct people, intended audience, opened, and stated window.

It helps to keep four populations separate on paper, because in most reporting they get quietly merged.

Population Definition Where the number comes from The trap
Potential audience Everyone with technical access to the page Site permissions Used as the denominator, it flatters targeted campaigns and punishes broad ones
Intended audience The population the message was written for Entra ID or HR attributes, not SharePoint Usually never written down, so it cannot be measured against
Reached Distinct people from the intended audience who opened it Unique viewers, deduplicated across channels Native unique viewers is per site and per window
Read Those who stayed long enough to have plausibly read it Time on page, applied per person rather than as an average The native average hides the distribution completely

Building a defensible figure in five steps

1. Write the intended audience down before publishing. Not “all staff”. Something like: all UK and Ireland employees on permanent contracts, excluding the retail estate, 3,180 people as of the first of the month. This is the denominator, and it has to be fixed before the campaign runs or you will be accused of choosing it afterwards. Building this properly is the subject of our note on audience segmentation for internal communications.

2. Use audience targeting so the intent is visible in the platform. SharePoint news and Viva Connections cards can be targeted at Entra ID groups, which makes the intended audience an object in the tenant rather than a note in a brief[2]. Targeting also changes what gets promoted to whom, so it improves the thing you are measuring, not only the measurement.

3. Fix the window to the campaign, not to the report. Most announcements do their work in the first 72 hours, with a smaller second wave when managers cascade. Decide on a window, use the same one every time, and say what it is. A 14-day window is defensible. A window that changes to whichever number looks best is not.

4. Deduplicate people, then exclude the producers. One person who read the intranet page and opened the newsletter is one person reached. Remove the communication team, the agency and service accounts from both numerator and denominator. On small audiences this changes the answer materially.

5. Publish the denominator on the slide. “2,106 of 3,180 in the intended audience, 66 per cent, over 14 days” invites a conversation about the missing third. “7,412 views” invites a conversation about whether views mean anything, which is a conversation you lose.

What you can and cannot get from native tooling

The honest position: for a single communication site with one audience, the native panel is genuinely sufficient. It is free, already switched on, and if your question is whether this month’s news pages are read more than last month’s, it answers that without any additional investment. Microsoft also publishes site health and portal guidance that is worth following before you blame the analytics for a traffic problem[3].

What native cannot do is the join. It does not know which of your viewers is a warehouse operative in Rotterdam, because it does not hold that attribute, and it therefore cannot produce a rate against any population. It does not deduplicate across SharePoint, Viva Engage and the newsletter. And the retained window is finite, which makes the year-on-year comparison awkward exactly when you need it. Those constraints are design decisions rather than defects, and we set them out in full in our piece on the limitations of native SharePoint analytics.

The usual response is to rebuild the numbers in Power BI over the Microsoft Graph reporting API[4]. This can work and some organisations run it well, but go in with the costs visible. The reporting API is not consistently reliable and produces days with missing data. Customers have observed KPI values in Power BI that do not reconcile with the native SharePoint reports for the same period, which is a bad surprise in front of an executive audience. A dependable build needs a robust ingestion process, scheduled reconciliation against the native figures, and a named owner, so budget for the pipeline rather than the dashboard. Our detailed note on SharePoint analytics in Power BI covers where each part tends to break.

Why the gap matters more than it looks

An overstated reach figure is not merely embarrassing. It hides the population you would most want to find. Gallup’s workplace research has consistently shown the widest engagement gaps in frontline and deskless populations[5], and those are exactly the people a page-view total cannot see, because they never load the page. A tenant-wide number of 67 per cent can sit on top of 88 per cent in head office and 11 per cent in operations, and the aggregate will never tell you. That is the practical case for measuring frontline communications separately rather than trusting the average.

This is the layer Tryane occupies. It reads SharePoint alongside Viva Engage, Teams and your newsletter platform, joins the activity to organisational structure through Entra ID or an HR file, deduplicates people across channels, and keeps history across product transitions. Tryane is SOC 2 Type 2 certified and GDPR compliant by design, hosts in the EU by default with US data residency on request, deploys in a couple of hours over single sign-on with Azure AD or Entra ID, and installs no agent.

Frequently asked questions

Is unique viewers the same as reach?

No. Unique viewers is a count of distinct accounts that loaded a page within the window the report is showing, on one site. Reach is that count restricted to the intended audience, deduplicated across every channel the message ran on, divided by the size of that audience. The two match only when your audience is exactly one site’s viewers, which is almost never true.

What is a good reach percentage for an internal announcement?

It depends far more on the population than on the message. Desk-based head office populations routinely reach 70 to 85 per cent within a fortnight. Field and shift populations rarely pass 30 per cent on a digital channel alone, and comparing the two tells you nothing useful. Compare a population against itself over time, and against a benchmark drawn from similar workforces.

Can I improve reach by cross-posting the same item everywhere?

You improve the appearance of reach immediately and the substance of it slightly. Cross-posting adds the same people again in the reporting unless you deduplicate, so the number rises faster than the audience does. It also raises production cost per message. Targeting fewer, better-placed items at a defined population usually beats broadcasting the same item to five channels.

Does average time on page tell me whether people read it?

Only weakly, because it is an average across a very skewed distribution. A handful of open tabs pulls it upwards. Where you can get per-person time, a distribution is far more useful than the mean: what share of readers passed 30 seconds tells you something the average cannot.

Does Tryane replace SharePoint native analytics?

No. SharePoint continues to record what it records. Tryane sits above it, reads it alongside your other channels, and joins the result to your organisational structure so that a reach figure has a real denominator and a person is counted once. You keep the Microsoft 365 investment and add the layer native was never designed to provide.

Sources

Microsoft Learn, Microsoft 365 reports, SharePoint site usage

Microsoft Learn, audience targeting in Viva Connections

Microsoft Learn, SharePoint portal health and performance

Microsoft Learn, Graph reportRoot getSharePointSiteUsageDetail

Gallup, State of the Global Workplace

Further reading

The limitations of native SharePoint analytics

Audience segmentation for internal communications

Measuring cross-channel internal communications

Why SharePoint communications get ignored

Internal communications benchmarks for 2026

Tryane runs a 15-minute working session with Heads of Internal Communication, rebuilding one recent announcement’s reach figure with a real denominator on your own tenant. Book a slot with Jérémy.