Migration work is organized around report decisions, technical reconstruction, and measurable validation. Each phase makes the requirements, risks, and acceptance criteria visible before cutover.
Phase 1 — Discover and classify the report portfolio
Create an inventory of report files, owners, business purpose, audience, source systems, execution frequency, and criticality. Classify reports as analytical, pixel-perfect operational documents, controlled outputs, extracts, application-embedded reports, duplicates, or items needing discovery. Missing usage telemetry is not proof that a report is unused.
Output: Report inventory, ownership gaps, priority categories, dependency register, and assessment questions.
Phase 2 — Inspect logic and dependencies
Review SQL commands, views, stored procedures, selection formulas, parameters, formulas, summaries, grouping, conditional formatting, subreports, linked data, images, fonts, page settings, export expectations, data volume, runtime behavior, and security.
Output: Technical complexity classification, dependency map, calculation inventory, and migration risks.
Phase 3 — Select the target reporting pattern
Choose an interactive Power BI report for exploration, a paginated report for fixed-layout output where requirements are supported, data or model modernization for duplicated or inconsistent logic, or retirement after owner and compliance approval. Some reports may need more than one destination.
Output: A target recommendation for each report, with proof-of-concept needs and open decisions documented.
Phase 4 — Rebuild the data foundation
Select an appropriate combination of governed database views or stored procedures, Power Query, a shared semantic model, Import or DirectQuery connectivity, source-side transformation, or a documented hybrid design. Account for data freshness, refresh windows, query performance, source workload, gateways, and ownership.
Output: A data and connectivity design aligned with the report requirements and target architecture.
Phase 5 — Reconstruct report behavior
Rebuild dimensions, measures, relationships, calculations, parameters, filters, groupings, subtotals, drill paths, conditional formatting, subreport behavior, and print or export requirements. Place logic in SQL, Power Query, DAX, or another layer according to its purpose. Surface unclear or conflicting rules for business approval.
Output: Reports reconstructed around business requirements, rather than a promise of pixel-for-pixel or automatic conversion.
Phase 6 — Reconcile results and test acceptance
Validate record selection, row counts, totals, calculations, parameter combinations, edge cases, null/blank/zero/negative values, date boundaries, sorting, grouping, exports, security, refresh duration, response time, and user acceptance. Use agreed tolerances and documented reconciliation cases for critical outputs.
Output: Validation evidence, resolved exceptions, and business-owner acceptance.
Phase 7 — Deploy, document, and transition
Plan workspaces and environments, semantic model ownership, refresh and credentials, gateways, access and distribution, monitoring, support, training, catalog updates, cutover, rollback, and legacy retention. Keep the existing reporting environment available for a defined transition period when continuity requires it.
Output: A deployment and transition plan, supporting documentation, and clear operational ownership.