In each of my service packages, I include the specific terms for each specific selection. This allows for a customized experience for your customer, based on their package selection. Including a description with each of your invoices within Dubsado saves you from having to build 150 contracts.
As long as your contract is boilerplate, having the specific package terms in the description will allow the client to see what is included within the package contract. Having one or two proposals, based on your clients, allows you to adjust the terms that go into each contract, by simply adjusting that description.
If your packages are based on a certain number of revisions, products or templates, then the client will be able to access the contract including the specific terms for their product selection. By using the boilerplate for the specific terms and conditions, the client selects the specific package, and the invoice subtotal and tax will be displayed within the contract, and within the invoice itself.