what common assumptions do you include with your estimates
Every single "fact" provided by the customer is listed as an assumption.
Those are the common assumptions.
Everything else is just fluff. You can write down lots of fluffy things like you assume that plague doesn't break out, and zombies don't arise and eat our brains, but none of that makes any sense to a customer.
Taking their "facts" about the development effort, and relabeling each "fact" as an assumption makes it clear that everything is fanciful.
Study up on Agile methods and be sure to identify that -- really -- it's a matter of priorities and budget. You'll build things from most important to least important and they can stop you at any time.
There are several -- irreconcilably different -- "intents" for an estimate.
It could be a firm, fixed price that will establish an upper limit on the budget and a lower limit on delivered functionality.
It could be a ballpark price used to reverse engineer an hourly rate used to qualify you as a resource.
It could be a cost number that goes into a cost/benefit decision.
Until you know what the "intent" is, the nature of the assumptions will vary. There's no single right answer until you actually define the customer's intent.