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

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

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.

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.

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.