The line that matters most for a small business owner is the last one — plan for hosting, maintenance and support, not just the first build. Two costs I'd add to the list: cleaning up the data you're migrating (spreadsheets and an old system rarely come over clean) and training the people who'll actually use it every day. A quote that only covers building the first version will always look cheaper than one that keeps it running. The most useful question I've learned to ask is: what's the total cost for year one, including fixes and small changes?
Two projects that both sound like "a customer portal" can differ by a factor of ten, and a quote that skips the questions is a guess. Roles and permissions, the number of workflows, integrations, data migration, and how polished the interface must be are what actually move the price.
Fixed price fits a clearly defined first version. Hourly fits work that will change as users teach you. The middle path you describe, a small fixed-price slice and then weekly increments, is how the first number stays honest.
At Ascendra Ventures we sell that first slice as one atomic technology problem: written scope, fixed price, and handover of the code, with must-haves separated from nice-to-haves before anyone estimates.
When a client arrives with "a customer portal," which cost driver do you unpack first: roles, integrations, or the data they want migrated?