Microsoft Project Online retires September 30, 2026, migrate to a modern platform before it's too late.Start migration
Project Online retires

Resource Migration: Capacity Planning After Project Online

Project Online's enterprise resource pool, costed timesheets, calendar exceptions, and cross-project capacity views are PMO-grade infrastructure. When the service retires on , every one of those constructs has to be re-modelled in the successor platform , and the platforms differ wildly in what they preserve. This guide walks PMO directors and resource managers through the resource-model migration end to end: what's at risk, how target platforms compare, the migration process, validation, and post-migration capacity rigor.

18 min readUpdated
The capacity planner, per-person allocation, utilization, and billable hours. The direct replacement for Project Online's resource views.

TL;DR

The risk: Project Online's resource model includes constructs that most successor platforms partially or fully drop. Microsoft Planner Premium has no enterprise resource pool at all. Project for the Web has no costed timesheets. Generic resources, calendar exceptions, and cross-project capacity views all translate differently across targets.

The five things to migrate: the enterprise resource pool itself, standard rates and cost-rate tables, calendar exceptions, resource leveling rules, and the cross-project capacity views your PMO uses to make staffing decisions.

The process: inventory → pick a target that preserves what matters → export → re-model in target → assign + validate → re-run capacity views → reconcile. Plan ~4 weeks of focused effort for a 100-resource pool, more if you have heavily-customised cost-rate tables or many calendar exceptions.

Sibling reading: the Project Online Migration Complete Guide covers the broader migration; the data export deadline guide covers the export-window mechanics.

Why capacity planning breaks at the cutover

Project Online's value, for the PMOs that ran it well, was rarely the project plans themselves. It was the operational layer underneath: a single enterprise resource pool that every project drew from, costed timesheets that fed billing and revenue recognition, calendar exceptions that propagated automatically, and cross-project views that let resource managers make weekly staffing decisions on real allocation data. That operational layer is what's at risk. The plans migrate. The operational layer often does not.

Three failure modes show up consistently when PMOs underestimate this:

  • The "we'll re-add resources later" trap. A team migrates the project plans cleanly, then plans to re-add the resource pool the following sprint. By the time they get to it, individual project owners have already added duplicate resources to their projects, and the resource manager has lost the single-source-of-truth contract that made cross-project capacity views work.
  • The "cost rates aren't critical for go-live" trap. Standard rates are deferred to a phase 2 cleanup. Two months later, Finance discovers their monthly close requires costed timesheet data that no longer exists in the new platform because rates weren't loaded at timesheet-entry time. The data can't be retroactively reconstructed; revenue recognition stalls.
  • The "Planner Premium will work" trap. A PMO assumes the Microsoft successor product covers the same use cases. It doesn't, for resource modelling. Planner Premium ships no enterprise resource pool, no costed timesheets, no cross-project resource view. Discovery after migration is too late.

The structural reason all three happen: the resource model is the part of Project Online that's least visible in casual product demos and least covered in vendor comparison checklists. Project plans, Gantts, and dashboards demo well. Enterprise resource pools demo poorly. So buyers underweight resource-model coverage in platform selection, then discover the gap in production. This guide is structured to surface the model first, before the migration tactics, on the assumption that the biggest decision is which target platform you pick.

What's actually in your Project Online resource model

Before deciding what to migrate, take inventory of what you have. Project Online's resource model has six layers, each of which migrates differently:

LayerWhat it isWhy it matters
Enterprise Resource PoolTenant-level list of resources every project draws fromSingle source of truth; eliminates per-project duplication
Named vs generic"Jordan Patel" (named) vs "Senior .NET Developer" (generic placeholder)Generics enable demand modelling before staffing decisions are made
Standard rates + cost-rate tablesUp to 5 rate tables per resource (rate A through E) with effective datesDrives costed timesheets, billing reconciliation, project P&L
Resource calendars + exceptionsPer-resource working hours overrides, named exceptions, holidaysCapacity calculations only work if calendar data is right
Resource Breakdown Structure (RBS)Hierarchical grouping (region/department/team) for filteringResource managers slice capacity by their reporting hierarchy
Cross-project capacity viewsResource Center view aggregating allocation across all projectsThe output of the model, staffing decisions live or die here

Not every PMO uses every layer. The right inventory question is "which of these does our team actually rely on for decisions?" If you don't run costed timesheets, the rate-table layer is decorative; you can drop it without consequence. If you don't use generics for demand modelling, you can collapse them. If you do use generics for demand modelling, that capability is non-negotiable in the target platform.

Run the inventory before you compare platforms. The outcome of the inventory is a list of must-have capabilities for the target platform, and that list shapes the rest of the migration. The next section assumes you have that list in hand.

Resource model differences across target platforms

The five-platform comparison from the broader migration guide narrows when you filter for resource-model coverage. Here's the honest picture, organised by the six layers above. Pass / partial / no for each:

LayerPlanner Premium / Project for the WebOnplanaSmartsheet RMWorkfront
Enterprise Resource PoolNo (project-local only)Yes (org-level)Yes (separate SKU)Yes
Named vs genericNo generic conceptBoth, with flagsGenerics modelled as named placeholdersBoth
Standard rates + cost-rate tablesNo costed timesheetsYes, multi-tier ratesSingle rate per resource (no rate-table tiers)Yes, multi-tier
Resource calendars + exceptionsPer-user only, no named exceptionsYes, with named exceptionsYesYes
Resource Breakdown StructureNoYes (org units + custom hierarchy)Tags only, no formal hierarchyYes
Cross-project capacity viewNo (project-scope only)Yes (heatmap + leveler)Yes (core feature)Yes
Billable utilization reporting(billable hours ÷ paid hours, per resource + rolled up)No (no billable concept)Yes, native dashboardYes (core PSA report)Yes (PSA module)

The Microsoft successor (Planner Premium / Project for the Web, same product under different SKU labels) drops most of the resource-model surface. That's a deliberate product positioning choice, it's a team-task tool with project veneer, not a PMO platform. PMOs using Project Online's resource model in earnest cannot replace it with the Microsoft successor without losing significant capability.

Onplana, Smartsheet's Resource Management module, and Workfront all preserve the enterprise pool concept. They differ on the details: Smartsheet RM is a separate SKU and adds notable per-seat cost; Workfront's enterprise pool is strong but the per-seat pricing is the highest of the four. Onplana's resource model includes named/generic, multi-tier rates, calendar exceptions, formal RBS, and cross-project capacity views in the base plan rather than as a paid add-on. Per-seat pricing starts at $7/seat/month. The honest comparison vs Microsoft's successor is on our Planner comparison page.

One more dimension that's hard to put in a table: the cross-project capacity view's quality varies a lot between platforms even when the basic capability is present. Some show only direct task assignments; some include sub-project rollups; some include placeholder generic allocation. If your resource manager makes weekly staffing decisions from this view, run a side-by-side comparison during evaluation using the top 25 resources by allocated hours.

Calculate the migration cost

Resource-model migration is one of six categories on the migration cost calculator. Plug in your resource count and dashboard count for a 3-year range calibrated to your specific PMO.

Open calculator

Pre-migration: inventory the resource pool

Before exporting anything, build a complete inventory of the resource model. This is a different inventory than the project-list inventory in the broader complete migration guide , that one catalogues projects; this one catalogues the resource layer underneath them. The deliverable is a Resource Migration Readiness Report that lists every resource artifact, where it currently lives, where it's going, and who owns the move.

  1. Resource list with attributes. Export the full enterprise resource pool with name, type (named/generic/cost), email (for named), max units, standard rate, role/title, RBS path. The OData /Resources endpoint is the canonical source; the Reporting Database has more derived fields but only on Project Server on-prem.
  2. Cost rate tables. Project Online supports up to 5 cost rates per resource (Rate A through Rate E) with effective-date ranges. Export every rate tier, every effective-date row. If your PMO uses only Rate A you can ignore B–E, but verify that's actually the case before assuming.
  3. Calendar exceptions. For each resource, export the calendar exception list with exception name, date range, and working-time override. If your target platform doesn't preserve named exceptions, capture the names to a companion CSV so the rationale ("Conference week", "Holiday closure") survives.
  4. RBS hierarchy. Export the Resource Breakdown Structure: every node, parent-child links, and the resources mapped to each node. The hierarchy is what enables resource managers to filter capacity views by their reporting structure.
  5. Active assignments. Snapshot every active task assignment across every active project: which resource, which project, which task, allocated hours, actual hours, scheduled start/finish. This is the validation baseline; you'll compare allocation in the source vs target post-migration.
  6. Custom resource fields. If your PMO defined Enterprise Custom Fields on resources (security clearance level, billable flag, contract type), export those alongside the resource list. Some target platforms will model these as built-in fields, others as custom fields, others not at all, drives the field mapping decision later.

The completed Readiness Report is what the rest of the migration runs against. To spot-check the export quality before committing, run a sample resource pool through the Migration Preview tool , upload a representative resource-pool slice and see exactly which fields, rates, and exceptions transfer cleanly. The companion Project Online Inventory Checklist covers the project-side artifacts that pair with this resource inventory.

Step-by-step: migrating the resource model

Five phases, each with a deliverable and a go/no-go gate. Total elapsed time typically 3–5 weeks for a 100–250 resource pool, longer if you have heavily customised cost-rate tables or a large RBS.

Phase 1: Inventory + decisions (1 week)

Complete the pre-migration inventory above, then make the platform decision based on which resource-model layers are non-negotiable for your team. Document the decision with rationale; this is the section future-you will re-read when somebody asks why the chosen platform doesn't support feature X.

  • Run the inventory against the live tenant
  • Score each target platform against your must-have layer list
  • Pick the target; document the decision rationale
  • Get sign-off from PMO leadership on the platform choice

Gate: Resource Migration Readiness Report signed; target platform selected.

Phase 2: Export the pool (2–3 days)

Pull the data via OData while Project Online is still live. Don't try to use .mpp file exports for the resource pool, those carry only project-local resource assignments, not the enterprise pool with its rates, calendars, and RBS.

  • Pull /Resources for the resource list
  • Pull /Resources/Calendars for calendar exceptions
  • Pull cost-rate tables (or use the Reporting DB if available on-prem)
  • Pull RBS via the SOAP API endpoints, there's no OData equivalent
  • Snapshot active assignments via /Assignments
  • Verify exports match Readiness Report counts

Gate: Export count matches Readiness Report count for every layer.

Phase 3: Re-model in target (3–7 days)

Import the pool into the target platform, then handle the layer-by-layer translation gaps the platform comparison surfaced. Generics that don't translate get re-modelled as named placeholders. Calendar exception names that don't translate get archived. Custom resource fields get mapped to either built-in fields or custom field definitions in the target.

  • Import the resource list (target's bulk-import or API)
  • Re-create the RBS hierarchy and re-map resources to nodes
  • Load standard rates and cost-rate tables before loading any assignment data
  • Apply calendar exceptions per resource
  • Translate generic resources per the platform's model
  • Map custom resource fields

Gate: Resource pool count, RBS hierarchy, and rate-table count all match source.

Phase 4: Assign + validate (1 week)

Migrate task assignments project-by-project, in waves grouped by owner team. After each wave, the receiving team validates allocation in target vs source for their projects within 48 hours. Don't roll forward until the wave validates clean , chasing accumulated allocation drift across many projects is much harder than fixing it project-by-project.

  • Migrate assignments in waves of 10–25 projects
  • Per-resource, per-project allocation diff: source vs target
  • Investigate any variance > 5%
  • Reconcile costed-timesheet calculations on a sample of past timesheets

Gate: Per-resource allocation diff < 5% across all projects.

Phase 5: Capacity views + reconciliation (1 week)

Recreate the capacity views resource managers actually use, then run them in parallel with Project Online for at least 5 working days. Daily diff reports highlight any place the new platform's capacity calculation differs from the old platform's. Investigate every diff. Document any genuine differences as known limitations.

  • Re-build the top 5 capacity views in the target
  • Run daily diff reports for top 25 resources by allocated hours
  • Investigate variance > 5%; document genuine platform differences
  • Train resource managers on the new capacity-view UI
  • Cut over: target becomes source of truth, Project Online read-only

Gate: 5 consecutive working days of clean daily diff reports; resource managers signed off on the new capacity-view UI.

Common pitfalls and how to avoid them

The five resource-model failure modes that surface most often, with the prevention for each:

Loading rates after assignments

If you import assignments before standard rates are in place, the target platform's costed-timesheet calculations run on $0 rates until rates load, and many platforms don't recompute historical timesheet costs once rates change. Load rates first, always. Verify a sample of timesheet costs against source before bulk-loading assignments.

Flattening generics into named resources too aggressively

If your target platform doesn't have generic resources, the easy path is to collapse every generic into a named placeholder. The trap: future demand modelling now requires demand for specific named placeholders rather than 'a Senior .NET Developer', which means resource managers can't model demand independently of staffing. Keep at least placeholder named resources that explicitly represent unfilled demand.

Not re-creating the RBS hierarchy

The Resource Breakdown Structure is what enables resource managers to slice capacity by their reporting line. Without it, every capacity view is org-wide or project-scoped, neither matches the actual decision-making granularity. Re-build the hierarchy in the target as part of Phase 3, not as a phase 2 followup.

Single-day parallel operation

A 1-day parallel run does not surface enough capacity variance to validate the migration. Resource managers make weekly staffing decisions, so the validation window has to span at least one full work-week, and ideally two, to surface the patterns that matter. 5 consecutive working days of clean diff reports is the minimum bar.

Not capturing the calendar-exception names

If the target platform doesn't preserve named exceptions, exporting only the date-range data loses the rationale. Six months later when somebody asks 'why was this resource off the second week of October?', the date-range lookup tells you nothing. Capture exception names to a companion CSV during export and archive it with the rest of the records.

The pattern across all five: each one is a "we'll figure it out later" decision that's cheap at the moment of decision and expensive in production. The migration cost calculator weights resource-pool migration explicitly because the reconciliation work is one of the categories most underestimated in initial budgets.

Validation: did capacity planning survive?

The validation phase has three checks, each producing an evidence artifact. File them with the Resource Migration Readiness Report; together they're the audit trail of the migration.

  1. Per-resource allocation reconciliation. For the top 25 resources by allocated hours over the next 90 days, compare allocation in source vs target. Tolerance: ±5%. Larger variance means either the assignment migration was lossy or the target's capacity calculation differs structurally from Project Online's. Both need investigation. Evidence: a per-resource diff report.
  2. Costed timesheet sample reconciliation. Pick the most recent 10 closed timesheets across 5 different resources. Re-run the cost calculation in the target against the same time entries. Tolerance: ±1% (this is dollars; the tolerance is tighter than allocation diff). Variance > 1% indicates a rate mismatch, a calendar exception loss, or both. Evidence: side-by-side cost calculations.
  3. Cross-project capacity view parity. Reproduce the top 3 capacity views resource managers use most often. Side-by-side compare against the last Project Online run for the same time window. Differences in how the two views categorise allocation (direct vs sub-project, named vs generic) are expected. Document them as known platform differences in the post-migration runbook. Evidence: side-by-side screenshots with documented diff.

The validation phase output is a Migration Outcome Report covering what migrated, what didn't, and what's open. Pair it with the Readiness Report from Phase 1, the two together document the full audit trail.

What changes for finance and the CFO

The PMO owns the migration runbook, but the resource model has consequences finance teams discover after cutover unless someone surfaces them up front. Three patterns come up in every migration that involves costed resources, and each one bites differently than PMO-side issues do.

Three rate concepts that get conflated

Project Online tracks three different per-resource rates that sound similar and are NOT interchangeable: standard rate (the cost of an internal hour for allocation modelling, often fully-loaded labour cost), cost rate(the rate used to compute a timesheet's accounting cost, sometimes broken into rate tables A through E for different activity types), and bill rate (the rate charged to a client for billable hours on engagements). Some PMOs use one rate across all three concepts; some use distinct rates per concept; some use rate-table tiers within concepts.

Before exporting, ask finance which rate concepts they actually use, which rate-table tiers map to which activities, and which target-platform fields each rate populates. The export is one row per rate per resource; the import is a mapping decision that determines whether next quarter's revenue-recognition reports reconcile. A common and recoverable mistake is loading bill rates into the cost-rate field. Costed timesheets then compute against the bill rate, P&L reports show inflated costs, the fix is a re-export and re-load. A worse and harder-to-recover mistake is loading cost rates into the bill-rate field. Invoices generated against the wrong rate need to be reissued and the customer-facing remediation conversation is not free.

Capitalisation rules don't auto-move

PMOs in regulated or capex-heavy organisations often have labour-capex policies that say "engineering hours on capitalisable projects roll up to a balance-sheet asset rather than expense." In Project Online these rules typically live as views or reports built on top of the OData feed, sometimes with a per-project flag and a per-task flag. None of that infrastructure migrates automatically. The flags export (custom field values), the views and reports do not. Finance has to rebuild the capitalisation reporting on the new platform from scratch, against the same flag-bearing data.

The risk is a quiet quarter where capitalisation reporting wasn't rebuilt, hours that should have capitalised were expensed instead, and the period closes with the wrong numbers. Material errors here are a control finding. Have finance scope the capitalisation rebuild as a parallel workstream to the migration, not a follow-up, and gate cutover on at least one closed period of side-by-side capitalisation reporting that reconciles.

Billable utilization reporting needs explicit setup

Professional services PMOs live and die on billable utilization (billable hours divided by paid hours, per resource and rolled up). Project Online produces this from the combination of timesheet data plus a "billable" flag at the assignment or task level. The flag exports cleanly; the report does not. As the platform-comparison matrix above shows, target-platform support for native billable utilization reporting varies. Onplana, Smartsheet RM, and Workfront all ship the report as a first-class artefact; Microsoft's Project Online successor does not have a billable concept at all.

For PMOs migrating to a platform that does support billable utilization, gate cutover on producing a side-by-side report for the most recent 4 weeks and reconciling within ±2%. Any larger variance points at a rate-mapping mistake, a missing billable flag, or an assignment that didn't migrate. For PMOs whose target platform does not support billable utilization natively, plan to feed the OData snapshot into a downstream BI tool (Power BI, Looker, Sigma) and rebuild the report there. Either way, finance should sign off on the report's accuracy before the legacy platform retires. Otherwise the first month-end on the new platform is when the gap surfaces, which is the worst possible time.

Why finance needs to be in the room before cutover

In every migration where finance was looped in late, the same three issues repeat: rate mappings need re-doing because finance disagreed with the PMO's read of which rate is which; capitalisation reporting wasn't rebuilt and the first quarter-end on the new platform misreported labour capex; billable utilization variance was larger than the PMO's tolerance because finance applies different rules. None of these are platform problems; all of them are coordination gaps. The fix is cheap: add finance as a named approver on Phase 1 (inventory) and Phase 4 (assign + validate). Their sign-off is what closes the loop on the rate mapping, the capex reporting, and the billable-utilization tolerance. Without it, the PMO ships the migration and finance discovers the cost weeks later, almost always at month-end, almost never on a calendar that allows for a graceful re-do.

Long-term: maintaining capacity rigor post-migration

The migration is the catalytic event; the long-term question is whether your PMO's capacity-planning practice still functions on the new platform. Four habits that differentiate teams that maintain rigor from teams that drift:

  • Single source of truth, enforced. The enterprise resource pool is authoritative; project-local resource creation is a leading indicator of drift. Some platforms can lock down the per-project create permission. Use it if available; if not, run a weekly audit comparing per-project resource lists to the enterprise pool.
  • Quarterly rate review. Standard rates that go un-reviewed for 12+ months drift away from actual fully-loaded labour cost. Costed timesheets then drift away from finance reality. Set a quarterly cadence to review rate tables and re-baseline.
  • Named-exception discipline. Calendar exceptions accumulate silently. A resource with 30 named exceptions over 3 years is normal; without a review cadence the exceptions fossilise. Annually, review per-resource exception counts and prune anything older than the policy retention window.
  • RBS evolution. The reporting hierarchy that was right at migration time gradually goes stale as the org reorganises. Plan a 6-monthly RBS review as part of the broader org-design review cadence so the capacity-view slicing stays meaningful.

Frequently asked questions

The questions PMOs ask most often about the resource-model migration. The full FAQPage schema is embedded in this article's structured data so these surface in Google's "People Also Ask" feature.

Will my enterprise resource pool migrate to a new platform?

Most modern PM platforms can ingest a resource list with attributes (name, role, calendar, max units, standard rate), but Project Online's enterprise resource pool semantics, the cross-project pool that automatically appears in every project, only translate cleanly to a small number of successor platforms. Microsoft Planner Premium has no enterprise pool concept at all; resources are project-local. Onplana, Smartsheet Resource Management, and Workfront preserve the enterprise pool model. If you migrate to a platform without the enterprise-pool concept, you re-add resources project-by-project and lose the central reference.

What happens to costed timesheets and standard rates?

Standard rates and per-resource cost rate tables export cleanly via OData. The successor platform must support per-resource cost rates AND the rates have to be present at the time of timesheet entry for billing to reconcile. Onplana, Workfront, and dedicated PSA tools keep this. Microsoft Planner Premium does not have a costed-timesheet concept, billable hour calculations done in Project Online disappear when you cut over.

Can I migrate resource calendars (vacation, holidays, exceptions)?

Calendar exceptions migrate as long as the target platform supports per-resource calendar overrides. Project Online lets you set named exceptions ("Conference week", "Holiday closure") that propagate to every project a resource is assigned to. Most successor platforms support per-resource exceptions but flatten the named-exception metadata, the dates come across, the labels do not. For audit purposes, export the named exceptions to a CSV alongside the calendar data so the rationale is preserved even if the labels are not.

Will my resource leveling rules transfer?

No, not directly. Project Online's resource leveling is computed at the portfolio level using priority + slack heuristics that are platform-specific. Successor platforms each have their own leveling engine; rules need to be re-configured. The good news is that re-leveling on the new platform usually surfaces the same overallocation hotspots as the old platform did. Plan a 1-day leveling session per active project once the migration completes.

Are generic resources ("Senior Developer") preserved?

Generic resources export with a flag distinguishing them from named resources. Whether they translate to the target depends on whether the target supports the generic-resource concept. Onplana keeps the distinction. Smartsheet does not natively but you can model generics as named placeholder resources. Microsoft Planner Premium has no generic-resource concept at all. Plan to either re-model generics as named placeholders OR collapse them into the closest available named resource.

How do cross-project capacity views translate?

Project Online's "Resource Center" view aggregates allocation across every project the resource is assigned to. Most successor platforms provide an equivalent view but the data model differs: some show only direct project assignments, others include sub-task allocations, others include placeholder generics. Run a side-by-side capacity comparison on the top 25 resources during parallel operation to surface translation differences before cutover.

Does the target platform need to be in the same data centre?

Typically no. Resource data is small enough (megabytes, not gigabytes) that latency and data residency don't affect the migration itself. What does matter for data residency is the production runtime: if your organisation has a sovereignty requirement, choose a target platform that runs in the appropriate region. Onplana is cloud-agnostic and can be deployed in any major region or on-premises if needed.

How do I avoid double-counting allocation during parallel operation?

Designate a single source of truth for resource allocation during the parallel-operation window. Most teams keep Project Online as the source for the first half of the parallel period, then flip to the new platform for the second half. The receiving platform should run in advisory mode during the first half, visible to resource managers but not driving capacity decisions. The discipline matters more than the mechanism; agree the cutover date in advance and stick to it.

What about timesheet history, can my finance team still close past months?

Timesheet history exports via OData are not the same as a live timesheet system. Once Project Online retires you cannot re-open a closed timesheet to correct an entry, and you cannot run revenue-recognition reports against the OData snapshot the same way you ran them in production. Close all open timesheets before retirement, archive the OData snapshot to your records-management system, and re-create historical reports in the target platform from the snapshot CSVs.

Will Onplana help me migrate the resource model specifically?

Yes. Onplana's migration wizard accepts the enterprise resource pool export from Project Online (XML or OData) directly, preserves named-vs-generic distinctions, and imports calendar exceptions as per-resource overrides. The free Migration Preview tool lets you test a sample resource pool end-to-end before committing. For full enterprise migrations the team can pair-build a runbook against your specific resource model.

Can I run resource capacity reports during the migration window?

Yes, but the reports run against ONE source of truth at a time, not a merged view. During the parallel-run phase, your authoritative report is whichever platform the assignment lives on. The trap is reporting against both and treating the union as accurate, since assignments duplicated across platforms during cutover get double-counted. Pick a date by which all NEW assignments live in the target only; before that date the old platform is authoritative for legacy work + the new platform is authoritative for any new work. Resource managers need clear comms on which view to trust on which day.

What specific metrics tell me when to trigger the cutover?

Five gate criteria: (1) Per-resource allocation reconciliation passes ±5% on the top-25-by-allocation cohort. (2) Costed timesheet sample reconciliation passes ±1% on a 10-timesheet sample. (3) Calendar exception count matches source within ±2 entries per resource. (4) RBS rollups produce capacity totals within ±3% of source per node. (5) At least one full work-week of clean parallel-run diff reports, meaning five consecutive working days where source and target capacity views match within tolerance. Any failure means the cutover is not yet ready; investigate the variance, fix the root cause, re-run the gate.

How do I handle resources split across two successor platforms?

Some PMOs land in a hybrid configuration: engineering teams on Onplana for PMO-grade scheduling, marketing/ops teams on Microsoft Planner Premium for lighter task work. The risk is the resource appearing in both pools with diverging capacity calculations. Two patterns work: (a) declare a primary platform per resource and treat the secondary as a downstream task list with no capacity authority, so only the primary tracks allocation and the secondary just shows individual to-dos; (b) export weekly capacity from both and aggregate in a third reporting layer (Power BI, Looker), accepting that the unified view lags by up to a week. Pattern (a) is operationally simpler but constrains who can be a "primary on Planner" resource. Pattern (b) is heavier but supports genuine multi-platform staffing. Avoid the third option ("track allocation in both and reconcile manually"). The reconciliation labour exceeds the value almost immediately.

Resource model intact. Migration on schedule.

Onplana preserves the enterprise resource pool, named/generic resources, multi-tier cost rates, calendar exceptions, RBS, and cross-project capacity views in the base plan. Native Project Online OData import. Free plan covers full Gantt + critical path; paid plans start at $7/seat/month.

Need the broader migration playbook? See the Complete Guide. Need a numeric estimate? Run the cost calculator.