Payment terms are something that each contractor will have a different opinion on.
It also is something that can usually be negotiated slightly with any contractor.
Personally, I like a 33% deposit to guarantee the scheduling slot, in the event that the home owner has a change of mind, right before we are scheduled to begin the roofing project. Who pays for the lost time and lost profit if there is no security involved.
Also, I feel that short jobs can maintain less of a percentage of completion payment schedule, but from my point of view, I prefer to collect the next 33% upon, or at least shortly after beginning to work on someones home. There has been good faith applied by our company and crew to schedule and order materials and labor at this point in time.
If there are additional work change orders encountered, I like to get them signed immediately, and then collect on them upon completion of the change order, although I may defer those payments into the final lump sum payment due.
Even if there are minor defincies, real or imagined by the home owner, no more than 5% to 10% should be held back from the final payment, as long as the roof is performing as per its intended purpose. The exception to the 5%-10% would be if the cost of remediating the supposed punch list problem has a price tag higher than those amounts agreed to.
From a home owners perspective, hold off as much money for the final payment as possible, within reason, to ensure satisfactory completion of all contractually agreed upon specifications and details.
From a contractors perspective, a home owner will always over value the dollar amount of any punch list remediation work required.
Find an agreeable amount prior to agreeing to the contract terms, which both parties can live with comfortably.