Currently we make a list of pages and functions. Then we guess how many hours are needed for design/development for each step OR pull up our time tracking of a similar job to calculate hours. We add a bunch of hours for UX and then just multiply that by an hourly rate and hope we can meet the budget. Is this what everyone else does too? How would you quote a 100 page website - existing, low conversion, poor design. Currently on Drupal - moving to Wordpress.
This is completely valid question. Web Development projects are normally estimated on basis of past experience, client's expectations and future potential of the project.
When you want to build a Wordpress project, most prolific way to evaluate is to identify unique pages and on basis of that, you calculate efforts. And later multiply it with your per hour rates.
In a case when you're migrating existing site from one platform to another platform, try to understand client's expectations in terms of SEO, Content Migration and on-page optimisation.
In estimation, you should also consider efforts to be spent on - Design, Front end development, Wordpress theme development, content migration, QA, Project Management, client communication and 10% of buffer time to help you if you come across minor change requests.
Also, it would be ideal to set the right expectations upfront with a client about number iterations you would provide in design.
Hope this helps.