It seems like it's the cleanest way to increase revenue for each major module developed, and maybe you can discount if the customer activates more than three modules. We have a niche product so the addressable market is not huge, and I'm not sure why I'm having tendencies to go this route...
Example...
Module #1
- Small
- Medium
- Large
- + Add Ons
Module #2
- Small
- Medium
- Large
- +Add Ons
Module #3
- Small
- Medium
- Large
- +Add Ons
Module #4
- Small
- Medium
- Large
- +Add Ons
Module #5
- Small
- Medium
- Large
- +Add Ons
Pricing could be tricky at times, as there always remains a chance to undermine the perceived value of a product/service to cost. Companies often rely on benchmarking to decide pricing of a product/service. However, the mistake they often make is not to make Apple-to-Apple comparison. For example: A typical SaaS product could be of diverse types, even if they all are termed as CRM or something else. Benchmarking could be a fatal mistake in such scenarios.
Ala cart pricing could be a good idea to differentiate one plan with another. But, do ensure that the perceived value always outweighs the cost, per plan. Rather than to be ala cart or not, your concern should be to understand whether your planned price points optimum or not? Just remember a fact that, even if pricing is usually discussed in isolation, your brand value and image is depends on pricing.
I hope above helps!! Need any further input? Please feel free to reach out with more clarity.
Having different subscription plans makes sense in two scenarios. First, if each module is itself a service that a customer might subscribe to on it's own then it makes sense. Second, if you are charging based on metered usage like AWS.
In the first scenario where each module is it's own service you could construct subscription plans for each and provide discounts to incentivize customers to use more than one module. If these are just add-ons to a core service then I don't think this is a good idea. It just makes the decision more complicated for your customer.