
We have two kinds of products:
- Subscription (ie, per seat/license/consult)
- Non-Subscription (Flat Fee)
When a sales person adds a line item, the choices are:
- Sales Price - aka UnitPrice (free form for now)
- Qty (free form for now)
- Billing Frequency (Monthly, Quarterly, Annually, One Time)
When the user clicks next to add the products to the Opportunity, I then want the price to calculate automatically according to the Billing Frequency .
Below are the formulas that work beautifully when calculating what the customer will pay according to Billing Fequency.
Subscription Formula Calculation:
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "Monthly"), [OpportunityLineItem].UnitPrice *1,
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "Quarterly"), [OpportunityLineItem].UnitPrice *3,
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "Yearly"), [OpportunityLineItem].UnitPrice *12,
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "One Time"), [OpportunityLineItem].UnitPrice *1, null))))
NON-Subscription Formula Calculation:
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "Monthly"), [OpportunityLineItem].UnitPrice /[OpportunityLineItem].Opportunity.Contract_Term_Number__c ,
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "Quarterly"), [OpportunityLineItem].UnitPrice / [OpportunityLineItem].Opportunity.Contract_Term_Number__c *3,
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "Yearly"), [OpportunityLineItem].UnitPrice / [OpportunityLineItem].Opportunity.Contract_Term_Number__c * 12,
IF(CONTAINS([OpportunityLineItem].Billing_Frequency__c, "One Time"), [OpportunityLineItem].UnitPrice *1, null))))
My challenge is in reversing that to then calculate the Total Contract Value. It's probably alot simpler than I'm making it out to be but I've tried it many ways.
Here are formulas for each type of Product and initially calculate well but if I change the Contract Term, it really messes up.
Subscription Total Contract Value:
TotalPrice / Billing_Frequency_Number__c * Opportunity.Contract_Term_Number__c
NON-Subscription Total Contract Value:
TotalPrice * Opportunity.Contract_Term_Number__c / Billing_Frequency_Number__c
Does anyone have a better way to do this?