This all makes sense.
The only additional things you will want to consider, if you haven't already, are:
- An SLA - to agree on the level of communication provided throughout the project to the customer
This is because emails, calls, meeting can vary dramatically for each customer and/or project
- Tool costs
Factoring in the costs of any additional tools you might need for this project, in case you don't have them already
- # of amends - I'm sure you get this already but just having something written upfront which factors in the cost based on X number of amends or iterations
- Hosting costs
- Security costs
- Imagery and Iconography
I see this missed from website build projects a lot. It can be a big cost and worth factoring in if it hasn't been done already
So not just the page functionality but also any backend integrations the customer requires.
- Ongoing maintenance
Just making sure you have something in place with the customer that gives them idea about future maintenance costs and what they should be expecting to pay out for
In short, everything you've said looks along the right lines, but what I see missed most often are the above costs. This can impact your profitability on a project but also can be frustrating costs for the customer if they're not made aware of them early on.
Good luck with the project!