OneDrive SharePoint storage

21 Aug 2026

Who's eating your OneDrive and SharePoint quota

Storage in Microsoft 365 is pooled by default: every site draws from one tenant-wide allowance and nobody has to divvy it up. That is a good design right up to the week it isn't, because the pool hides the distribution. The distribution is always the same shape — a handful of accounts hold most of the OneDrive bytes, and the SharePoint sites that grew fastest are frequently the ones with no page views at all.

Below is the run-once-then-monthly procedure for finding both, and the four places the gigabytes hide where nobody thinks to look.

+10 GB
tenant pool per licence, over a 1 TB base
500
major versions kept per file by default
93 days
recycle bin span, still on your quota
read-only
what happens if you stay over the limit

What the two reports actually hand you

Everything in this playbook comes from two Graph report endpoints, both under Reports.Read.All and both aggregated over D7, D30, D90 or D180. getOneDriveUsageAccountDetail returns one row per OneDrive with Storage Used (Byte), Storage Allocated (Byte), File Count, Active File Count and Last Activity Date. getSharePointSiteUsageDetail returns the same for sites, plus Page View Count, Visited Page Count and Root Web Template.

Used against allocated, files against active files, bytes against page views: three ratios, and they are the whole analysis. One warning before you run either — if Conceal user, group, and site names in all reports is on in Org settings (it is on by default), the OneDrive and SharePoint reports hash Site IDs and Site URLs as well as usernames. You get a perfect ranking of anonymous drives. The setting is tenant-wide, a Global Administrator flips it, and turning it on is a logged audit event.

Where the gigabytes hide

A site's reported size is not the size of the files people can see. Deleting the files does not shrink it either, at least not this quarter. Four things occupy the pool while being invisible in a document library:

WHAT A DELETED GIGABYTE DOES NEXT Live file + up to 500 versions delete First-stage bin user-visible purge Second-stage bin admins only Gone quota freed counts against quota counts against quota counts against quota freed 93 days across both bins Preservation Hold library if under a retention policy — hidden, and version limits stop applying only when the retention period expires
Hiding place Why it grows How you clear it
Version history Libraries keep a minimum of 500 major versions by default; a 40 MB deck edited daily is a folder, not a file. Switch the organisation setting to automatic limits, then queue a trim job per site.
Recycle bins A 93-day period spans the first- and second-stage bins, and the space is part of the organisation's total. Empty both stages after a bulk cleanup — otherwise nothing changes for three months.
Preservation Hold library Every edit or delete of retained content copies the original here, and library version limits are ignored while a retention policy or eDiscovery hold applies. You don't. It clears when retention expires — 30 days plus a timer job that runs weekly, so up to 37.
Leavers' OneDrives Deleting the account starts a 30-day default retention, then 93 more in the site collection recycle bin. Nothing to do, but budget for the four-month tail. Unlicensed drives are archived on their 93rd unlicensed day.

The playbook

1
Pull both reports at D180 and rank by bytes.

Not by percentage of quota — by absolute Storage Used. Done when you can name the top ten OneDrives and the top ten sites, and you have their combined share of the pool. In most tenants the first ten rows of the OneDrive report are between a third and two thirds of all OneDrive storage.

2
Cross the site list with page views.

A site with 400 GB and a Visited Page Count of zero over 180 days is an archive that nobody declared. Done when every site above your size threshold is labelled live, archive or orphan. The orphans are the cheapest storage you will ever recover, because deleting them upsets nobody.

3
Check the leavers before you check the hoarders.

Match the OneDrive owners against accounts that are blocked, unlicensed or dormant — the same join behind a dormant account audit. Done when no drive over 100 GB belongs to someone who left. That drive is also a licence you are still paying for.

4
Fix versioning at the organisation level, once.

Automatic version limits apply to all new libraries across existing and new sites; existing libraries need a trim job per site. Done when the org default is set and the trim has run on your top ten sites. Expect nothing to happen for a week — trimmed versions bypass the recycle bin, but the reported storage figure lags 24 to 48 hours behind reality anyway.

5
Record the number and repeat monthly.

One figure — pool used, pool total, growth since last month. Done when you can say how many months of headroom you have at the current rate. That sentence is the entire point of the exercise; everything above it is how you get to say it honestly.

Planning the number instead of reacting to it

The pool is 1 TB plus 10 GB per licence purchased for the common plans, with a 25 TB ceiling per site, and it is calculated in binary gigabytes. Two consequences follow, and both surprise people.

First, the pool moves with your licence count. Reclaiming twenty unused seats in a licence waste audit is a win on the invoice and a 200 GB cut to your storage allowance on the same day. Do the storage arithmetic before the licence cleanup, not after. Second, going over is not a soft warning: Microsoft's own limits page says a tenant operating above its storage limit is at risk of being put into read-only mode, where users can't add or modify content until usage drops or you buy capacity.

OneDrive has its own ceiling on top of that. The default is 1 TB per user, raisable to 5 TB depending on plan and licensed-user count — and lowering the default below what someone already stores makes that OneDrive read-only, which is a memorable way to discover the top-ten list from step 1.

Key takeaway

Storage isn't a stock you audit once, it's a flow with a four-month tail: versions, two recycle bins and a hold library all sit on your quota long after the files disappeared from view. Measure the pool monthly, know which ten drives and ten sites carry it, and the read-only conversation never happens.

GraphPaaS keeps both reports running per tenant on a schedule — storage per user and per site, quota versus used, size against page views, and the growth line month over month — so step 5 is a page you open rather than a spreadsheet you rebuild.

Sources

  • SharePoint limits — 1 TB + 10 GB per licence, 25 TB per site, recycle bin space counting toward the organisation total, and the read-only risk when a tenant operates above its limit.
  • reportRoot: getOneDriveUsageAccountDetail — the exact CSV columns, the D7–D180 periods, and Reports.Read.All as the least-privileged permission.
  • reportRoot: getSharePointSiteUsageDetail — the site-side columns, including page views and visited pages, which is what turns a size ranking into an abandonment ranking.
  • Learn about retention for SharePoint and OneDrive — the Preservation Hold library, the 500-version default, the 93-day span across both recycle bins, and the 30 days plus weekly timer job before hold content clears.
  • Version history limits overview — automatic versus manual limits, org-level defaults applying to new libraries only, trim jobs bypassing the recycle bin, and versioning limits being ignored under retention.
  • Manage site storage limits — pooled storage as the default, the 24–48 hour lag in reported usage, and binary GB.
  • Microsoft 365 usage reports overview — names concealed by default, covering Site IDs and Site URLs for the OneDrive and SharePoint usage reports.
  • OneDrive retention and deletion — the 30-day default retention after account deletion, the 93 days in the site collection recycle bin, and archiving on the 93rd unlicensed day.

GraphPaaS

Storage per user, per site, per tenant — ranked, with the abandoned sites already flagged.

See who's holding your quota →

Newsletter

Get the next article by email

Practical M365 & Azure cost pieces like this one. No spam, unsubscribe anytime.