What it does
Dynamics 365 Sales licences accrue Dataverse storage capacity to the tenant, pooled across all environments rather than allocated per environment. Capacity comes in three types — database, file and log — and when you run out you either delete data or buy an add-on.
Key facts
- Three capacity types. Database covers table rows, metadata and relational data. File covers attachments, the annotation table, file and image columns, web resources and analytics tables. Log covers audit records, plugin trace logs and elastic tables.
- The default environment ships with 3 GB database, 3 GB file and 1 GB log.
- Not every licence accrues per-user capacity. Team Members explicitly gives no per-user database, file or log entitlement. The per-licence accrual figures are in the Licensing Guide, not on Learn — use the See Dataverse capacity per license button in the admin centre to see how your own entitlement was actually calculated.
- Capacity is pooled at tenant level. Database and file entitlements are shared across Dataverse and Operations workloads together; log is tracked separately for Dataverse only.
- Cross-type borrowing is one-directional: log can borrow from database, file can borrow from log and then database, database can borrow from nothing. The flow is database to log to file, never back.
- You are only in overage after all eligible borrowing has been applied. If borrowing covers the deficit, you are not in overage even though one type went over its own entitlement.
- Notifications fire at under 15% available, under 5% available, and over capacity. Tenant, Power Platform and Dynamics 365 admins get weekly emails when at or over capacity, with no opt-out.
- Running out blocks environment lifecycle operations before borrowing is considered: creating, copying, restoring or recovering an environment, converting a trial to paid, and adding a Dataverse database. Creating, converting and recovering each need at least 1 GB available.
- Add-ons exist for all three types — Dataverse Database Capacity, Dataverse File Capacity and Dataverse Log Capacity. Buy them in the Microsoft 365 admin center under Marketplace, with subscription terms from one month to three years.
- Purchased add-on capacity shows in the Power Platform admin center under Manage > Environments > [environment] > Licensing > Capacity add-ons.
- Sales-specific consumption to watch: Sales Insights creates analytics tables for contacts, opportunities, leads, accounts and activityparty, stored as files in the managed data lake and counted against file storage.
- Copilot Studio credits are a separate allocation from storage. They come with certain Sales licences, are monthly, do not accumulate, and reset each month. Track usage in the Power Platform admin center and buy more if you exceed the allowance.
When to use / skip
Every Sales implementation needs a capacity conversation, and almost none of them get one at the right time. The right time is before the first data migration, because migration is what turns a comfortable entitlement into an overage. Attachments are the usual culprit: a client bringing across a decade of email attachments and documents will consume file capacity at a rate nobody forecast.
Skip the deep analysis on a small greenfield deployment with modest data volumes and no legacy migration — the base entitlement plus per-user accrual will carry you. But still check it, because a client with a large Team Members population contributes headcount and no capacity, and the arithmetic people do in their heads is wrong.
Where you must do the work: any migration from an on-premises CRM, any client with heavy audit requirements (log capacity fills faster than people expect), and any environment strategy involving multiple copies of production for dev and test, since copying an environment needs available capacity to proceed.
Configuration decisions
- Whether attachments live in Dataverse file storage or in SharePoint. This is the single biggest lever on file capacity and it is much cheaper to decide before migration than after.
- Which tables and columns have auditing enabled, and what the retention period is. Audit lands in log capacity and grows without anyone watching.
- How many non-production environments you keep, and whether you can afford the capacity each copy consumes.
- Whether to buy an add-on or delete data. Add-ons are a subscription commitment; a proper archive and retention policy is a one-off design cost.
- Where Copilot Studio credits are allocated — leave them at tenant level and unrelated agents can consume them, so pin them to the Sales environment if Sales is meant to have them.
- Whether Sales Insights features are worth their file storage footprint on a large dataset.
Gotchas
- Capacity is tenant-wide, not per environment. Another programme's Dataverse project can push your Sales environment into a state where you cannot restore a sandbox.
- Team Member licences add users and no capacity. Headcount-based capacity forecasts are wrong in the client's favour, which is the worst direction.
- Borrowing only runs one way. Spare log capacity will not rescue a database shortfall, and clients assume it will.
- Being in overage doesn't just cost money — it blocks environment copies and restores, which is how it usually gets discovered, on the morning you need a fresh sandbox for UAT.
- Analytics tables from Sales Insights count as file storage. Turning on digital selling features has a capacity consequence nobody mentions in the demo.
- Copilot Studio credits reset monthly and do not roll over, so a quiet first month tells you nothing about a busy quarter end.
- The weekly capacity emails go to admins with no opt-out. If nobody owns them, they get filtered, and the first real signal is a blocked operation.
Consultant notes
- Pull the capacity page from the Power Platform admin center in the first week of the project and again after migration. The delta is the number the client needs to plan against.
- Decide the attachment strategy before migration, not after. Moving attachments out of Dataverse retrospectively is genuinely painful.
- Tell the client that capacity is a tenant-level shared resource and ask who else is building on Dataverse. The answer is frequently "oh, that team".
- Set audit retention deliberately rather than accepting the default, and revisit it before go-live.
- Hand over the capacity report and the weekly notification emails to a named owner at the client, and say out loud that they will be blocked from restoring environments if they ignore them.
Worth another look if Microsoft changes the borrowing rules or the per-licence accrual figures shift again.