I work for a trades person (not roofing).
We ask for a 50% upfront payment. It's to buy the materials. The remaining 50% is paid on completion.
There is trust on both sides.
The 50% payment covers the cost of the materials needed. Once they have been fitted they are classed as fixtures and are very difficult to remove again even if the balance payment isn't paid. The second hand value would also be less than what was paid.
The tradesperson is trusting the customer to pay the balance. The customer is trusting the tradesperson to complete the work as agreed.
The 50% deposit also confirms the booking by both parties. No one wants a last minute cancellation when they've set aside a week to do that job and potentially declined other work.
Surely you've met the person, liked them and checked some reviews, credentials etc.
We've never had someone not pay the 50% upfront. If they refused to pay we would decline the job. We've also never not completed the work to a good standard and have therefore never had a problem with a customer paying the balance on completion.
But no deposit, means no materials and therefore no booking.