Updated October 2026. Written by Power Platform MS. Product features and prices change, so check current details with each provider.
The short answer
Use SharePoint lists when the data is modest in size, relationships are simple, permissions are straightforward and you want to stay within standard Microsoft 365 licences. Use Microsoft Dataverse when you need relational data, row-level or field-level security, auditing, server-side business logic, larger volumes or a model-driven app, and you accept premium Power Apps licensing. Moving from SharePoint to Dataverse later is possible, but it means rebuilding the data layer, so it pays to decide deliberately.
Side-by-side comparison
| Factor | SharePoint lists | Microsoft Dataverse |
|---|---|---|
| Licensing | Included with most Microsoft 365 plans | Premium Power Apps licence, per-app or pay-as-you-go |
| Relationships | Lookup columns, limited and awkward at scale | True relational tables, one-to-many and many-to-many |
| Security | Site, list and item permissions | Security roles, business units, row ownership and column security |
| Auditing | Version history per item | Configurable field-level audit log |
| Business logic | In the app or in Power Automate | Business rules, calculated and rollup columns, plug-ins and low-code plug-ins |
| Volumes | Fine for thousands of items; views hit a 5,000 item threshold and delegation needs care | Designed for large volumes, with capacity pooled across the tenant |
| App types | Canvas apps | Canvas apps, model-driven apps and Power Pages |
| Ease for users | Familiar, editable in the browser and Excel | Edited through apps, with Excel export and import |
What each option is
SharePoint lists are tables stored in a SharePoint site. They are included with Microsoft 365, familiar to most staff and quick to set up. Many good Power Apps run on SharePoint lists, especially trackers, registers and simple request apps.
Microsoft Dataverse is the database behind Power Platform and Dynamics 365. It provides proper relational tables, a rich security model, auditing, server-side logic and APIs. It is what model-driven apps and Power Pages are built on.
Security and compliance
SharePoint permissions are set at site, list or item level. That is enough for many apps, but item-level permissions become hard to manage and slow at scale, and anyone with access to a list can usually see it directly in SharePoint, outside the app.
Dataverse controls access by security role and ownership: a caseworker sees their own cases, a team leader sees their team's, a manager sees the department's. Column security hides sensitive fields such as salary or health information from roles that do not need them. Field-level auditing records who changed what and when. For personal data, regulated processes or anything an auditor will ask about, this is often the deciding factor.
Scale and delegation
SharePoint lists can hold very large numbers of items, but list views have a 5,000 item threshold, and Power Apps can only delegate certain filters and sorts to SharePoint. Non-delegable queries only process the first 500 to 2,000 records, depending on app settings, which leads to apps that silently miss records as data grows. Careful design avoids most of this.
Dataverse supports a wider range of delegable queries and is designed for large datasets. It uses database, file and log capacity that is pooled across the tenant and grows with licences, so check your available capacity before large migrations.
A third option: Dataverse for Teams
Dataverse for Teams provides a cut-down Dataverse inside a Microsoft Teams team, included with many Microsoft 365 plans. It suits small apps used within one team, but has capacity and feature limits and is not intended for organisation-wide solutions. It can be upgraded to full Dataverse later if an app outgrows it.
Which should you choose?
Choose SharePoint lists when
- Data volumes are modest and relationships are simple
- Permissions can be handled at list or site level
- You want to avoid premium licences for every user
- Users benefit from editing data directly in SharePoint or Excel
Choose Microsoft Dataverse when
- Data is relational, such as customers, cases, visits and actions
- Different roles must see different records or fields
- Auditors or regulators will ask who changed what
- You want model-driven apps, Power Pages or Dynamics 365 integration
Cost considerations
Licensing is usually the deciding cost, not storage. Check current Microsoft pricing before you commit.
- SharePoint lists: apps using SharePoint and standard connectors are usually covered by Microsoft 365 business and enterprise plans at no extra cost.
- Dataverse: every user of an app that uses Dataverse needs a premium licence, through Power Apps Premium, a per-app licence or pay-as-you-go billing. Some Dynamics 365 licences include Dataverse use.
- Capacity: Dataverse storage is pooled per tenant and grows with licences. Large file or log volumes may need additional capacity.
- Build effort: Dataverse often reduces build effort for complex apps, because security, relationships and logic are built in rather than coded around.
Our Spreadsheet-to-App package from £6,500 includes a written recommendation on SharePoint or Dataverse with the licensing cost, before any build starts. The licensing calculator gives a first estimate for your user numbers.
Moving from SharePoint lists to Dataverse
Apps outgrow SharePoint more often than the reverse. A typical migration:
- Design the Dataverse model: tables, relationships, choices and security roles, rather than copying list columns one to one.
- Migrate the data: clean duplicates, convert lookups and choices, and load history with Dataflows or migration tooling. See data migration.
- Repoint or rebuild the app: canvas apps can be repointed to Dataverse, but formulas and delegation usually need rework. Sometimes a model-driven app is the better replacement.
- Update flows: Power Automate flows move from SharePoint triggers to Dataverse triggers.
- Cut over and archive: run a final sync, switch users over and keep the old list read-only for a period.
A good scoping call should be willing to tell you the other option is the better fit. If it is, you will hear that on the first call.