Engineering
Scope a Power BI Migration by Decisions, Not Report Count
An inventory says 100 reports need to move to Power BI. A supplier prices 100 conversions. The deadline looks precise, but the unit of work is still unclear.
Some reports may be the same calculation with different location filters. Others may look similar while using different definitions. An annual report can be essential despite having no recent views. An old report can still supply an export to another team.
Before requesting a migration quote, turn the report list into a set of explicit decisions: rebuild, consolidate, investigate or propose retirement. Keep the evidence and owner beside each decision.
Find the work behind each report
Microsoft's migration preparation guidance recommends inventorying reports, their data sources and usage patterns. It also distinguishes that initial inventory from the later work needed to estimate individual solutions.
For each report, record its stable identifier, owner, audience, business action, source systems and delivery method. Include scheduled files, subscriptions, embedded uses and downstream consumers. Ask a user to show what they do after opening it.
Then record the calculation definitions, reporting period, access restrictions and required history. Those determine whether apparently similar reports can share a replacement.
Microsoft's requirements guidance includes purpose, expected action, ownership, delivery method, security and business rules. A screenshot alone cannot supply those requirements.
Use an inventory to challenge the conversion count
The following six-report estate is hypothetical. The decisions illustrate a review method, not a client result or an estimate of migration savings.
| Existing item | Evidence in this example | Proposed disposition |
|---|---|---|
| R01: North daily operations | Same definition and source as R02; North-only access | Candidate for a shared operations report |
| R02: South daily operations | Same definition and source as R01; South-only access | Same target, subject to access testing |
| R03: Monthly board pack | Finance owner needs a fixed monthly output | Separate target with required delivery format |
| R04: Annual reconciliation | No recent views; owner confirms annual use | Retain as a migration target |
| R05: Embedded customer report | Interactive views unknown; external consumers exist | Investigate before estimating or retiring |
| R06: Superseded management report | Owner confirms replacement; dependencies not yet checked | Retirement candidate, pending dependency and archive checks |
This produces three proposed target reports from four source reports, one unresolved item and one retirement candidate. It does not authorize removing anything.
R01 and R02 share a target only if the definitions really match and each audience receives the correct data. A shared model or report can reduce duplication while increasing the consequences of an access or calculation error. Consolidation needs its own acceptance criteria.
R05 remains visible as unresolved work. Hiding it inside a contingency percentage would leave the buyer unable to see what must be investigated before the quote becomes reliable.
Record the evidence still needed, who will obtain it and when the disposition will be reviewed.
Treat usage as evidence with a boundary
Use the legacy platform's available logs and user evidence when migrating from another reporting system. Power BI usage metrics cannot reconstruct usage that occurred in Argos, Crystal Reports or Tableau.
Where content is already in Power BI, check which usage report is being consulted. Microsoft's documented usage metrics report covers the last 90 days and excludes some embedding flows. That window cannot establish whether an annual report is still needed. Missing recorded views can also reflect how a report is delivered.
Record the observation period and coverage limits. Confirm the business cycle with the owner. An unknown audience is a reason to investigate, not evidence that the report is unused.
Before retiring a candidate, check dependent reports, models, exports and business processes. Microsoft's retirement guidance calls for dependency analysis, an archive and a tested recovery plan. Retain the disposition, responsible owner and evidence before an authorized team executes a change.
Ask for a quote around the remaining uncertainty
The scope should separate proposed targets, unresolved items and retirement work. For each target, identify reusable definitions, required output, access tests and the person who accepts it. Include training and maintenance responsibilities when the internal team will take over.
Choose an early migration slice that exposes a material uncertainty. If the concern is fixed-format delivery, migrate a representative pack. If it is shared access, test the proposed consolidated report with the intended audiences. The easiest dashboard may leave the expensive assumption untouched.
Price the agreed targets and the investigation separately. Ask the delivery team which assumptions its estimate depends on and what evidence would change it.
Bring the inventory, one disputed disposition and the business deadline to a discussion of operational reporting and data engineering. The first question is which decisions and skills the migration requires. Power BI implementation capability, licensing and tenant responsibilities should be established before committing to delivery.
About the author
Better Software Team
Product and engineering team
Better Software Team is the product and engineering team at Better Software. We build new software products and improve existing applications and systems, with deeper experience in healthcare, finance and energy.