Q:

What should my opportunity represent?

There are so many ways we can use opportunity, I'm trying to find out what is the best for our situation. We keep track of multiple contacts using multiple products. And they have to renew their use of each product every year. We have a focus more on the contact than on the account, but that doesn't even have to be the case.
Option 1. Only one opportunity per account. Create an Opportunity Product for each contact (custom field) using each product each year they use it.
Option 2. One Opportunity for each product. For each Opp create an Opportunity Product for each contact using that product each year.
Option 3. One Opportunity each year (or time unit). Create an Opportunity product for each contact using any product. Repeat for each time unit.
Option 4. One Opportunity for each Contact. Create an Opportunity Product for each
product and each year.
I'm sure there are more options. Then I can do any sort of combination of the above. One opp for each product each year, then record the contact. One opp for each product for each contact, then record the year.
We need to track some relation between contacts, products, and time. What is the best way to do this? Or, more realistically since every org is different, some good advice to help with making this decision.

A:

What you are discussing is one of the core uses of any CRM system. Ultimately an "Opportunity" represents a "Deal" or "Transaction" with the customer. An opportunity contains at least an amount, a customer (or prospect), a timeframe, and a stage (or state).
Opportunities and opportunity products are tightly coupled and exist for the lifespan of this single transaction. Keep in mind that opportunity products can have schedules in the event you product is sold via subscription or allocates quantities on a scheduled basis. What I have seen in the past (and have implemented) is once the original opportunity is created and sold, a trigger or workflow (process builder) creates a brand new opportunity for the renewal with a close date the same as the expiry date of the original opportunity. This process can then continue as long as needed.
As for the contact, you just need to relate the appropriate contact to the opportunity via the Opportunity Contact Role object. This will allow for the opportunity product contact time reporting you need.

