Skip to main content

Recurring Revenue - Part 3: Opportunity and Opportunity Product

Continuing the series on how to quote, forecast and measure recurring revenue...

What I'm trying to determine with Opportunities are the:
  • First-Year Value, and
  • Monthly Recurring Revenue
Ultimately, I want to be able to forecast based on these amounts. Monthly Recurring Revenue (MRR) is probably my most important metric as a SaaS provider, so I want to move away from forecasting on the Amount field (which typically represents the total contract value of an opportunity). FYV is kind of an in-between measure; it includes start-up charges (training, setup) and the first 12 months of service, but excludes multiple years of service.

I'm basing these on custom fields on the Opportunity (Term, the service duration in months) and Product (Category).

I have one field to add to the Opportunity Product:
  • Recurring Charges: If the Line Item's Product Category (see the first post in this series) is either Subscription or Over Time, the Recurring Charges are set to the Line Item's Total Price; otherwise to 0. As with the Quote Line Item (see the prior post), this is NOT a formula field. Instead, I populate it via a simple workflow rule and field update. This field is read-only except for the System Administrator profile.
Note that I'm making an important assumption about the 'Over Time' products. I'm expecting to use this for services that will be performed and billed over time. The assumption is that the services will be performed steadily over the term of the deal. (Again, if this is not sufficient, you probably want to look into Product Schedules for the greater flexibility.)

I have three additional custom fields to add on the Opportunity object (recall we added a few custom fields, two dates and one checkbox, back in this series' first post):
  • Recurring Charges: this is rollup summary, a sum of the Opportunity Products' Recurring Charges.
  • FYV: this is a currency field. The calculation for this field is the non-recurring charges, plus up to 12 months of the recurring charges: If(Term < 12, Amount, (Amount - Recurring Charges) + (12 * Recurring Charges / Term)). However, it's not a formula field; rather it's populated by workflows so that I can use this field for forecasting (more on that in the next post). And it's only editable by admins.
  • MRR: Like FYV, this is a currency field, populated by workflows and read-only except for admins. The value is simply Recurring Charges / Term, but in this case I use the BLANKVALUE function to treat Term as 12 if it's not populated. (I conditionally require this field, but only above some deal probability; until then, the one-year assumption will suffice).
Now I have everything I need on both the Opportunity and Opportunity Product. Let's see how this looks at the Opportunity Level for the Quote I created last time. Recall that I have a 24-month term with three line items: $2400 for a Subscription charge, $150 for One Time items, and $600 for services performed and billed Over Time.

Here are the resulting calculations:
opportunity details

The recurring charges are the same as we calculated for the quote. That translates into a $125 MRR ($3000 divided by the 24-month term). The FYV comes from 12 months of the monthly recurring revenue (12 * $125) plus the $150 one-time charges.

Next time, we'll set up forecasting for the MRR and FYV custom currency fields.



Comments

Popular posts from this blog

Salesforce Pipeline Reporting - part 1 of 3

In a dozen (plus) years working with Salesforce, I've never been entirely happy with the built in reporting of my opportunity pipeline. I can export details, or a printed (formatted) view, but I lose the interactivity. I can use a dashboard, which is better now in Lightning in that I can see a lot more fields in a table component. But flexible views require filtered dashboards, and just maintaining the filter values (if they go down to a rep level) can be onerous. Plus applying (or removing) a filter tests my (very limited) patience. So I've typically exported the report details into Excel, and there created a workbook that includes (1) summary info, (2) scrollable deal lists with hyperlinks back to the opportunity records in Salesforce and (3) filters that let me instantly switch views, say among teams, reps, opportunity types, or fiscal periods. My process around this involved LOTS of VBA and LOTS of formulas. Lately, I've (finally) gotten turned on to slicers in Exc...

Using Excel with Salesforce: One tool, two tips

Obviously, Salesforce has strong built-in reporting tools. And I'm a big fan of the dashboards, especially filtered dashboards and dynamic dashboards. WAY better than the old approach of creating a unique set of reports and a corresponding dashboard for every conceivable view. Still, I often want to pull my Salesforce data into Excel. This might be for further manipulation / processing, aggregating data that doesn't live in Salesforce, or distribution to non-Salesforce users (hey, those licenses are expensive!). Reporting Tool - XL-Connector: I'm using a new (to me) tool when I have to repeatedly pull Salesforce data into Excel: XL-Connector  (fka Enabler 4 Excel) from Xappex. There's a lot you can do with XL-Connector. My primary use is just to extract data from Salesforce, and this can be done in two ways: reports or SOQL queries. The great part is that once you've captured data into an Excel file, refreshing the data is trivial. I've stored my credential...

Salesforce reporting: XL-Connector and VBA

In an earlier post , I mentioned a tool I'm using to import Salesforce data - via SOQL or existing reports - into Excel. This post is more about using that tool, XL-Connector from Xappex . Here, I'll walk through the (simple) process of importing and refreshing a report, and I'll provide a simple VBA macro to automate the refresh. In a future post, I'll expand on that macro to show a friendly view of my opportunity pipeline and a single-page view of how each of my sales reps are doing against a series of KPIs. Importing a report is simple enough. From the XL-Connector tab, select Log In and enter your credentials. I'm using the old id and password (as opposed to SSO), so I provide that along with my 'token'.  (Don't remember your token? Log in to Salesforce via your browser, click on your photo, select Settings, then 'reset my security token'.) Once you're logged in the lock turns green. Back in Excel, on the XL-Connector tab, select ...