Sitecore upgrades have always been a common project we come across. Depending on the source and target versions, the time & budget needed for an upgrade can vary vastly.
Usually, a client would ask you to estimate how long an upgrade would take, and the process to determine that could sometimes take a good amount of time, based on the various factors like source & target versions of Sitecore, complexity of third party integrations, amount of content to name a few.
This being said, I worked on a task to assess what it would take to upgrade a Sitecore implementation from v8.1 to v9.3 & v10.2. Based on my findings, I wanted to chalk out an outline detailing what areas of the implementation you would ideally look into, to be able to get to a good place for providing high level estimates – should you run into this task!