Do not begin with a blank pricing calculator. First list what is moving: applications, users, databases, storage, traffic, licences, backups, dependencies, support hours, availability, and recovery requirements. Measure present utilisation where possible. Copying the maximum capacity of an old server into a cloud estimate often carries old overprovisioning into the new bill.
Build a current-cost baseline on the same service boundary. Count hardware purchase or depreciation, maintenance, software, power and facilities where relevant, connectivity, backup, security tools, support, downtime, and employee time. Mark contracts and equipment that will remain after migration. They are not savings just because the application moved.
Now model the target with the provider’s official calculator. Record assumptions for region, service tier, running hours, storage operations, data transfer, licences, support, and growth. Prepare normal, low, and high-demand cases. A calculator produces an estimate from those inputs, not a promised invoice. Test an unfamiliar usage meter with a small workload if practical.
The migration project belongs in the total. Include discovery, redesign, identities, networking, data movement, testing, parallel running, cutover, training, consultancy, and contingency. Add recurring monitoring, management, security, backup, compliance, and recovery exercises. Spread one-time work across the comparison period instead of hiding it from the monthly figure.
Compare several years. Include commitments, contract changes, and an exit or replacement scenario. Show uncertainty and exclusions beside the result, and name the person who accepts the assumptions.
After launch, set budgets and compare actual unit cost with the model. Azure’s official guidance treats cost management as a cycle of planning, visibility, accountability, optimisation, and iteration. The first estimate is a baseline to correct with evidence, not a permanent truth.