A competent SharePoint migration is a remediation project with a data move attached, not a data move with cleanup attached. EPC Group runs it as five passes — discovery, remediation, rehearsal, production waves, proof — and prices it against measured item counts, not folder sizes.
Last updated: 2026-07-31
EPC Group is a Houston-based Microsoft consulting firm operating since 1997, with six Microsoft Solutions Partner designations and 216+ M&A tenant migrations covering 1.83M users. Governed Microsoft AI, Data & Cloud — since 1997.
Key facts
- Throughput is governed by metadata weight, not gigabytes. Microsoft's published ceilings: light content such as ISO and video, 10 TB/day; medium content such as list items and ~1.5 MB Office files, 1 TB/day; heavy content such as list items with custom columns and ~50 KB files, 250 GB/day.
- Throttling cannot be turned off. Microsoft throttles background applications — migration, DLP, backup — harder during weekday daytime hours. Support tickets do not lift it. Evenings and weekends carry higher throughput.
- The hard limits that break migrations: 400-character decoded path, 250 GB per file, 5,000-item list view threshold, 30 million items per list or library, 25 TB per site, 50,000 major versions.
- Above 100,000 items in a list, library or folder you cannot break or reinherit permissions inheritance at that level. That is a design constraint, and it changes the target architecture.
- SPMT and Migration Manager cover different sources. SPMT handles SharePoint Server 2010/2013/2016/2019 and file shares. Migration Manager handles file shares, Box, Google Workspace, Dropbox and Egnyte — and does not support SharePoint Server, Amazon S3 or Azure Blob.
- SharePoint 2013 workflows were fully retired on 2 April 2026, 2010 workflows in November 2020. Workflow rebuild is in scope whether you planned it or not.
- Both Microsoft tools are free. Any vendor quoting a licence line for SPMT or Migration Manager is charging you for something Microsoft gives away.
Quick facts
| Question | Answer |
|---|---|
| What actually sets the timeline? | Item count and metadata weight, not total GB |
| Free Microsoft tooling? | SPMT and Migration Manager; FastTrack included with eligible subscriptions |
| When do you need a paid tool? | Cross-tenant sites, structural restructuring, granular pre-flight reporting, mid-migration mapping changes |
| Maximum file size / decoded path | 250 GB / 400 characters |
| List view threshold | 5,000 items |
| Permission-inheritance boundary | 100,000 items per list, library or folder |
| Recommended unique permissions | 5,000 per list (50,000 supported) |
| Max site storage | 25 TB per site collection |
| Can throttling be disabled? | No |
| Typical enterprise elapsed time | 10–20 weeks for a 2–20 TB estate, remediation-dependent |
What a real migration method looks like
Most SharePoint migration pages describe a service. This describes a method.
The Five-Pass Migration Method is EPC Group's framework. Content is traversed five times, and four of the five passes are not the move. Teams that budget only for the move discover the other four at the worst possible moment.
| Pass | What happens | Primary deliverable | Owner | Typical duration |
|---|---|---|---|---|
| 1 — Discovery | Inventory and scan every source: item counts, sizes, versions, permissions, customizations, dependencies. Nothing moves. | Inventory and Risk Register | Migration architect | 2–4 weeks |
| 2 — Remediation | Fix at source, or accept and document, every item in the Remediation Catalogue. The longest pass, and the one always cut first. | Remediation Log, closed | Content owners + platform team | 3–8 weeks |
| 3 — Rehearsal | Full-fidelity pilot into the production tenant with real users, permissions and dependencies. Measure actual throughput. | Validated runbook + throughput baseline | Migration lead | 1–2 weeks |
| 4 — Production waves | Bulk pass, delta passes, then cutover per wave with the source set read-only. | Per-wave reconciliation reports | Migration engineers | 4–12 weeks |
| 5 — Proof | Reconcile counts, validate permissions and search, clear the exception queue, decommission, hand over. | Completion Pack + decommission approval | Migration lead + service owner | 2–3 weeks |
Three rules make it work. Nothing enters Pass 4 that has not been through Pass 2 — moving a known defect is buying it twice. Pass 3 produces your throughput number, and every date is recalculated from it, because published ceilings are ceilings and your estate will not hit them. And the source stays authoritative until Pass 5 closes: you decommission on evidence, not on a calendar.
Discovery: what a real assessment hands you
If a vendor's assessment produces a slide deck and a price, it was a sales call. A real deliverable set looks like this.
| Deliverable | What it contains | Why it decides something |
|---|---|---|
| Source inventory | Every site, library and list: item count, storage, version count, last-modified, owner | Item count drives duration; version count often doubles the real volume |
| Permission map | Unique scopes per list, broken inheritance points, orphaned principals | Decides whether you re-architect or replicate; the 100,000-item boundary shows up here |
| Workflow and forms register | SharePoint 2010/2013 workflows, InfoPath forms, existing Power Automate flows | Both classic workflow platforms are retired; this is a rebuild backlog |
| Blocker report | Paths over 400 characters, files over 250 GB, invalid names, zero-byte and checked-out files, lists over the view threshold | The literal list of things that will fail if you do nothing |
| Content-value triage | Active / archive / defensible-delete classification by last-modified and access | The largest single cost lever in the project |
| Dependency graph | Lookup columns, cross-site web parts, hard-coded links, integrations | Sets wave boundaries — dependent content moves together or it breaks |
| Target architecture | Site and hub design, information architecture, term store, sharing model | You are designing what the source should have been, not rebuilding it |
| Throughput model and risk register | Measured GB/day and items/day by content class; every risk with an owner and a date | Turns the inventory into dates, and a proposal into a delivery plan |
The tools to run this with are free. SPMT includes a scan and assessment mode with published error codes, and SMAT scans a SharePoint Server 2013 farm in the background without affecting production. For cloud sources, Migration Manager includes a Migration Time Estimator, though Microsoft notes the more accurate scan-based estimate is currently available only for Google Drive. Treat every estimator output as an order of magnitude and replace it with your Pass 3 measurement.
The remediation catalogue
These items appear in essentially every migration. Budget for them by default and be pleasantly surprised, rather than the reverse.
| Defect | Why it matters | Remediation |
|---|---|---|
| Broken permissions inheritance | Unique scopes slow migration and should stay under 5,000 per list (50,000 supported). Above 100,000 items you cannot break or reinherit inheritance at all | Re-architect to group-based access at site level; flatten item-level exceptions before the move |
| Orphaned users and groups | Source principals with no target identity break permission mapping | Validate the user-mapping file in Pass 1; decide a disposition for every unmatched principal |
| Unsupported customizations | SPMT does not migrate master pages, custom list forms, or custom pages other than wiki and web-part pages. Business Data, Excel Web Access, Visio Web Access and KPI web parts are unsupported | Rebuild as modern pages and SPFx; retire what nobody uses. Decide before Pass 3 |
| Oversized lists | Past 5,000 items classic views throttle; past 100,000 the permission boundary applies; 30 million is the ceiling | Index columns, split by year or business unit, archive, or move to a proper data store |
| Long paths | Decoded path plus file name cannot exceed 400 characters, and the target URL is usually longer | Shorten site and library URLs first — cheaper than restructuring folders — then flatten deep folders |
| Checked-out files | SPMT fails to read them (0x0131000F) and the content silently does not arrive | Force check-in before the wave, never at cutover |
| Classic pages and publishing sites | They land as legacy surfaces nobody maintains, and block modern features | Transform to modern pages, or declare them archive-only |
| InfoPath | SPMT cannot migrate InfoPath forms. Forms using unsupported SOAP calls, managed code or people-picker fields fail post-migration. InfoPath Forms Services support in Subscription Edition ends 14 July 2026 | Rebuild in Power Apps, or retire. Scope it as a project in its own right |
| Workflows | 2010 workflows retired November 2020; 2013 workflows fully retired 2 April 2026 | Assess with the Workflow 2013 tool, rebuild in Power Automate, retire the rest |
| Custom script (NoScript) | Several web parts will not migrate while custom script is disallowed; the setting takes 24 hours to apply | Enable for the migration window, then turn it back off, and log it as a risk exception |
| Version bloat | Versions count toward item counts and storage, inflating every duration estimate | Set a version policy before you move. Trim jobs bypass the recycle bin — run the what-if analysis first |
Item-count reduction beats every technical optimization available. A defensible-deletion and archive decision in Pass 2 shortens Pass 4 more than any tool choice, agent count or window extension. That is the conversation a tool vendor has no reason to start with you.
Wave planning
A wave is the unit of risk. Get the boundary wrong and a single failure takes out a department.
Cut waves on dependency first, business unit second, volume third. Content that references other content — lookup columns, cross-site web parts, hub associations, hard-coded links — moves together or it arrives broken. Only then split by owning team, so one business contact validates and one comms message covers the audience.
| Wave | Content profile | Purpose |
|---|---|---|
| 0 — Rehearsal | One low-impact site with a library, a list, unique permissions and one dependency | Proves the runbook; produces the measured throughput number |
| 1 — Low-risk bulk | Archive and reference content, few unique permissions, no customizations | Moves volume early and cheaply |
| 2 — Departmental | Team sites with active editors and normal permission complexity | The bulk of the estate; the comms plan carries the load |
| 3 — Complex | Heavy customization, high unique-permission counts, integrations, workflows | Runs only after Pass 2 remediation for these sites is closed |
| 4 — Executive and regulated | Legal, finance, HR, anything under retention or hold | Last, with records and compliance sign-off per site |
Three mechanics carry the schedule. Bulk then delta: run the full pass while users keep working, then incremental passes to catch changes, then a short read-only window at cutover — which is why SPMT and Migration Manager support incremental runs, and why a tool without them costs a weekend per wave. Exploit the throttling calendar: background apps are throttled harder during weekday daytime hours, so schedule bulk passes into evenings and weekends by design. Use the fewest agents that meet the window: Microsoft is explicit that using more agents than needed increases the throttling rate. Test throughput with one agent across 20–30 tasks, then calculate the minimum from measured data.
Package sizing matters more than teams expect: Microsoft recommends at least 250 files per transfer, each package 100–250 MB. Small files are the enemy — files migrate faster than list items, and large files faster than small ones.
Fidelity: what actually survives
Set this expectation in the first workshop. Every dispute later traces back to a fidelity assumption nobody wrote down.
| Element | Fidelity | Notes |
|---|---|---|
| Files, folder structure, created/modified dates and authors | Full | The easy part, and the only part most proposals discuss |
| Version history | Configurable | You choose how many to bring; bringing all of them can double the project |
| Folder permissions | Full | Migrated by default |
| File-level permissions | Optional, at a cost | Must be enabled in project settings; Microsoft notes it slows migration |
| Content types and managed metadata | Full, with sequencing | Global term store migration requires tenant admin; taxonomy updates in the incremental round |
| Out-of-the-box web parts | Mostly | Published support matrix; Business Data, Excel Web Access, Visio Web Access and KPI web parts are not supported |
| Custom web parts, master pages, custom list forms, custom pages | None | Rebuild as SPFx; wiki and web-part pages are the exceptions |
| InfoPath forms | None via SPMT | Rebuild in Power Apps |
| SharePoint 2010/2013 workflows | Rebuild | Both platforms are retired; SPMT can migrate 2010 OOTB and SharePoint Designer 2010/2013 workflows to Power Automate |
How SharePoint migration work is actually priced
Nobody in this SERP explains it, so buyers compare quotes that are not comparable. There are five models and each shifts risk somewhere different.
| Model | How it works | Who carries the risk | Use it when | Watch for |
|---|---|---|---|---|
| Per GB | Rate × source volume | Vendor on effort; you on volume | Large, homogeneous file-share content | Punishes version bloat and rewards nobody for cleanup. Renegotiate after Pass 1 triage |
| Per user | Rate × migrated user | Vendor | OneDrive and personal content at scale | Says nothing about shared sites, where the effort actually lives |
| Per site | Rate × site, banded by complexity | Shared | Estates with wide complexity variance | The banding is the whole negotiation. Get band definitions in writing |
| Fixed scope | Firm price against a defined inventory and remediation list | Vendor above the line; you on scope | After discovery, when the inventory is known | A fixed price quoted before discovery is priced for the vendor's worst case |
| Time and materials | Rate × hours | You | Remediation, workflow and forms rebuild, unknowns | Cap per workstream; require weekly burn-down against the Remediation Log |
The pattern that prices honestly is fixed-scope discovery, then fixed-scope migration against the discovered inventory, with remediation on capped T&M. Discovery is small, bounded, and produces an artefact you own even if you change vendors. Migration is then priced against known item counts instead of a guess. Remediation is genuinely variable, so pricing it as fixed just means someone padded it.
Three cost realities. The Microsoft tools are free, and FastTrack data migration is included with eligible subscriptions — though FastTrack advises limiting migrated data to 75% of your storage quota and does not do architecture, design or post-migration orchestration. Third-party tool licensing is a separate line; ask whether the quote includes it and whether the licence is yours or theirs. And published market ranges are anchors, not quotes — SharePointSupport.com, currently ranking for this term, publishes self-service tooling at $5–$25 per user, managed services at $15–$150 per user, and full-service enterprise migrations at $100K–$500K, with assessments from $3,500. Price your own project from your own item counts. Our vendor-comparison guide covers the firm-by-firm view.
Questions to ask a migration vendor
Ask these in the first meeting. The answers separate delivery teams from sales teams.
- What is our item count, and how did you get it? If the answer is in terabytes only, they have not scanned anything. Duration is driven by items and metadata weight, not volume.
- Which tool will you use, and when would you use the free Microsoft one instead? A vendor who cannot name a scenario where SPMT or Migration Manager is sufficient is selling a licence.
- Show me your remediation catalogue for our estate — our long paths, our checked-out files, our oversized lists, our InfoPath forms, our unique permission counts. Not a generic list.
- What is your measured throughput on content like ours, and how will you re-measure in the pilot? Published ceilings are 10 TB/day for light content and 250 GB/day for heavy. Where do we land, and why?
- How do you handle throttling? The right answer includes evening and weekend scheduling and minimum agent counts. A wrong answer includes "we'll open a ticket with Microsoft."
- What will not migrate, in writing, before we sign? Master pages, custom forms, InfoPath, unsupported web parts, alerts, recycle bin.
- What are your wave boundaries, and what does a delta pass cost per wave? If waves are cut by volume alone, dependencies will break.
- How do we prove completeness? Ask to see the reconciliation format — source items versus target items, per wave, every delta explained — and who triages the exception queue daily.
- Who owns the target information architecture? If the answer is "we'll mirror the source," you are paying to migrate a problem. Ask the same about content under retention or legal hold.
What breaks — failure modes
| Symptom | Root cause | Fix |
|---|---|---|
| Throughput drops sharply on weekday mornings | Tighter throttling on background apps during weekday daytime hours | Schedule around it. Throttling cannot be disabled and support tickets do not lift it |
| Adding agents made it slower | More agents than needed increases the throttling rate on report upload | Measure one agent over 20–30 tasks, calculate the minimum, disable the surplus |
| Files silently missing after a wave | Checked-out files fail to read; SPMT reports 0x0131000F | Force check-in before the wave, then re-run the delta |
| "Target path is too long" failures | Decoded path plus file name exceeds 400 characters, and the target URL is longer than the source | Shorten site and library URLs first, then flatten the deepest folders |
| Web parts missing from migrated pages | Custom script (NoScript) is disallowed on the target, so web parts are blocked as unsafe | Enable custom script for the migration window; allow up to 24 hours for the change to apply |
| Permissions arrive wrong or unresolved | User-mapping file incomplete, or unique permission counts beyond the practical limit | Complete identity mapping first; re-architect to group-based access |
| A list will not display, or inheritance cannot be broken | Over 5,000 items in a classic view; or over 100,000 items in the list or library | Index filtered columns and redesign views; restructure into smaller containers |
| Storage runs out mid-project | Versions and recycle bins count toward tenant storage; FastTrack advises staying under 75% of quota | Set version limits before the move, empty recycle bins, buy storage in advance |
What changed in 2026
- SharePoint 2013 workflows were fully retired on 2 April 2026. They were turned off for new tenants in April 2024 and removed from existing tenants this year. Any plan written before that treated the rebuild as optional. It is not.
- InfoPath Forms Services support in SharePoint Server Subscription Edition ends 14 July 2026, alongside SharePoint 2010 workflows and SharePoint Designer 2013. If your source farm is Subscription Edition, those deadlines now sit inside most migration windows.
- Mover is retired for admin-led migrations. Google Drive, Box, Dropbox and Egnyte migrations are integrated into Migration Manager, as are all FastTrack-led migrations. Migration Manager does not support Amazon S3 or Azure Blob storage.
- Automatic version history limits are now the recommended default. SharePoint keeps all versions within a 500-count limit for the first 30 days, hourly versions from 30–60 days, daily versions from 60–180 days, and weekly versions beyond 180 days, trimming intermediate versions as those milestones pass. Microsoft's published example shows roughly 94% less version storage over six months than count limits alone. Set it with
Set-SPOTenant -EnableAutoExpirationVersionTrim $true, and run the what-if analysis before any trim job — trimmed versions bypass the recycle bin. - Cross-tenant SharePoint migration is now a licensed Microsoft capability, priced per 100 GB moved for Enterprise Agreement customers. Tenant-to-tenant site moves no longer automatically require a third-party tool.
- Tenant storage is enforced. Total storage is 1 TB plus 10 GB per licence, and Microsoft states that a tenant operating above its limit risks being put into read-only mode. Version policy is a capacity decision now, not housekeeping.
Where to go next
If you have a terabyte number but not an item count, you do not yet have a migration plan. EPC Group runs Pass 1 as a fixed-scope discovery and hands you the inventory, permission map, remediation catalogue, wave plan and a measured throughput baseline — artefacts you own regardless of who executes the move. Start with SharePoint consulting or enterprise Microsoft consulting.
Related: Best SharePoint migration services · Mapping SharePoint as a network drive · My Sites in SharePoint · SharePoint vs Google Drive · Box vs SharePoint · Exchange to Microsoft 365 migration · E3 vs E5 · E3 vs E5 overview · SOC 2 for Microsoft 365 · Copilot pricing and licensing · Teams Premium features · Data governance firms · Azure cloud migration consulting · Microsoft Frontier Company · Delivery partner vendor risk · EPC Group
Frequently asked questions
How long does a SharePoint migration take?
Ten to twenty weeks for a 2–20 TB estate is a realistic range, and remediation drives the variance far more than volume. Microsoft's published throughput ceilings are 10 TB/day for light content, 1 TB/day for typical Office files, and 250 GB/day for heavy content such as list items with custom columns.
Do we need a paid migration tool?
Not always. SPMT and Migration Manager are free and cover SharePoint Server, file shares, Box, Google Workspace, Dropbox and Egnyte. Paid tools earn their price on structural restructuring, granular pre-flight reporting, mapping changes mid-migration, and cross-tenant scenarios. Ask any vendor to name the case where the free path would be sufficient for you.
What is the difference between SPMT and Migration Manager?
Source coverage. SPMT migrates SharePoint Server 2010–2019, SharePoint Foundation 2010 and 2013, and file shares, plus 2010 out-of-the-box and SharePoint Designer workflows. Migration Manager handles file shares and cloud sources — Box, Google Workspace, Dropbox and Egnyte — and does not support SharePoint Server, Amazon S3 or Azure Blob.
Why is our migration so much slower than the estimate?
Almost always metadata weight. Files migrate faster than list items and large files faster than small ones, so an estate of small documents and custom-column lists runs near the 250 GB/day floor rather than the 10 TB/day ceiling. Weekday throttling compounds it. Re-baseline from the pilot and move bulk passes to evenings and weekends.
Can Microsoft turn off throttling to speed us up?
No. Throttling protects service reliability, the rules cannot be disabled or suspended, and opening a support ticket does not lift them. Plan around the calendar instead, and use the fewest migration agents that meet your window — more agents than necessary raises the throttling rate rather than throughput.
What will not migrate?
SPMT does not migrate InfoPath forms, master pages, custom New/Edit/View forms, or custom pages other than wiki and web-part pages. Business Data, Excel Web Access, Visio Web Access and KPI web parts are unsupported, and alerts, subscriptions and recycle bin contents do not carry over. Get the exclusion list in writing.
What happens to our SharePoint workflows?
They are rebuilt. SharePoint 2010 workflows retired in November 2020 and 2013 workflows were fully retired on 2 April 2026. Inventory usage with the Workflow 2013 assessment tool, rebuild what earns its keep in Power Automate, and retire the rest. SPMT can migrate 2010 out-of-the-box and SharePoint Designer workflows to Power Automate.
How is SharePoint migration priced, and what is the biggest cost lever?
Five models: per GB, per user, per site, fixed scope, and time and materials. The honest pattern is fixed-scope discovery, then fixed-scope migration against the discovered inventory, with remediation on capped T&M. The biggest lever is deciding what not to move — defensible deletion and archiving cuts duration more than tool choice or agent count.
Sources and verification
- Microsoft Learn — SharePoint limits
- Microsoft Learn — General migration performance guidance
- Microsoft Learn — Improve migration performance when using SPMT or Migration Manager
- Microsoft Learn — Overview of the SharePoint Migration Tool (SPMT)
- Microsoft Learn — SPMT-supported features
- Microsoft Learn — Frequently asked questions: SharePoint Migration Tool (SPMT)
- Microsoft Learn — Troubleshooting common SPMT issues and errors
- Microsoft Learn — SPMT scan assessment error codes
- Microsoft Learn — SPMT supported SharePoint web parts
- Microsoft Learn — Migrate your content to Microsoft 365
- Microsoft Learn — Frequently Asked Questions: Migration Manager File Share
- Microsoft Learn — Permission settings in Migration Manager
- Microsoft Learn — Step 1: Set up Migration Manager agents
- Microsoft Learn — Migration time estimator tool in Migration Manager
- Microsoft Learn — File size limitations for migration to Microsoft 365
- Microsoft Learn — Migration Assessment Scan: InfoPath
- Microsoft Learn — Plan version storage on document libraries
- Microsoft Learn — Trim existing versions from site, library, or OneDrive
- Microsoft Learn — Set default organization version limits
- Microsoft Learn — Modernize SharePoint 2013 workflows
- Microsoft Learn — What's deprecated or removed from SharePoint Server Subscription Edition
- Microsoft Learn — Migration planning for SharePoint and OneDrive rollout
- Microsoft Learn — Data Migration (FastTrack)
- Microsoft Learn — Cross-tenant SharePoint migration
- Microsoft Learn — "The number of items in this list exceeds the list view threshold"
- Microsoft — SharePoint Migration Assessment Tool (SMAT)
- Beyond Intranet — SharePoint Migration (target citation, reviewed 2026-07-31)
- ShareGate — SharePoint migration (reviewed 2026-07-31)
- Quest — What is SharePoint migration? (reviewed 2026-07-31)
- SharePoint Support — Best SharePoint migration services 2026 (published cost ranges, reviewed 2026-07-31)
