I am facing a challenge in how to set up multi-year deals where one of the years (typically the first, though it doesn't matter - issue is the same) is discounted.
Let's use an example where we close a 3-year, $100,000/yr deal, and the first year is discounted 25% (i.e. first year is $75,000).
Based on research I've done, some people split the deal up into three separate line items, one for each $100k year, and then apply the discount to the first year. This works fine for all but one thing unfortunately. The Annual Contract Value (ACV) gets thrown off, and reads the same as the Total Contract Value (TCV), here would be the line item details:
SKU1 - Billing Start Date 11/22/22 - 12 Month Term - Billing Frequency Annual - Price $100k - Discount 25%
SKU1 - Billing Start Date 11/22/23 - 12 Month Term - Billing Frequency Annual - Price $100k - No Discount
SKU1 - Billing Start Date 11/22/24 - 12 Month Term - Billing Frequency Annual - Price $100k - No Discount
Notice we are using the "Billing Start Date" to denote that the line items are for separate years. I believe I understand why the ACV is not being calculated as we expect - it sees that each line item is a 12 month term, and is ignoring the billing start date in its calculation, so all it sees is a total of $275k over 1 year - hence $275k ACV.
Of course, for a "normal" three year deal (no discount), we could set up one line item, with a 36-month term and the ACV would read as we wanted it to.
Does anyone have ideas on how we can make multi-year deals with certain years discounted, and have the ACV pull in our desired value (which in this case would be an average of ~$91.6k per year)
I mentioned this use case when I was catching up with Dan at RevOps.io. He sent me back a video showing how they handle this type of tiered deal and then syncing back to a custom ACV property in HubSpot.
Hi @DMcCarthy thanks for your great question along with the details which really help in answering you.
Yes it's a challenge that the default ACV calculation cannot handle complex variations.
If it's important for your business metrics, I can think of three possible solutions:
Create a custom deal property to hold 'custom_acv', create a deal-based workflow trigged on line_item, with <> custom javascript actions to calculate the ACV, then save the result in your custom property for custom reporting. HubSpot workflows can trigger on line-item but are not line-item based actions. HubSpot workflows can only enrol the deal into the deal-based workflow, so custom code is required from then on.
or, look at an integration that is designed from the ground up to manage this SaaS-type subscription sales management. Full disclosure HubDo is a partner of almost all HubSpot Quoting apps (PandaDoc, Qwilr, GleanQuote, ContractBook, RevOps.io and others) so we know them well enough to know that you should evaluate RevOps.io as a potential valuable add-on to your HubSpot stack. It's made for this use case.
or, we can custom-code a native HubSpot app that monitors every time a line_item is created or changed and takes any actions based on all deal line_items, to figure out the true subscription contract stages and calculate custom ACV values etc.
I would try suggestion 1 first, as it's free. It makes the best use of the tools you already have 🙂
Also take a peek at the free version of RevOps.io - they have put a lot of SaaS contract smarts in it.
With Suggestion 1 I haven't tried this specific use-case of date-ranged contract stages though, so good luck with it. I'd love to hear how you get on - and everyone in the community who finds this question in future will see how you solved it!
Thanks for these suggestions. I was also looking into doing something with custom code, but figured it made sense to see if there was a way to natively support the functionality first.
These are great suggestions, really appreciate the input here. Unfortunately, we don't have operations hub just yet, so I don't think I'll be able to trigger custom code from a workflow, but I think there may be something I can do via Zapier or as you mentioned through leveraging a custom/private app.
I'll poke around a bit more and be sure to update the thread here with what I end up pursuing.
I mentioned this use case when I was catching up with Dan at RevOps.io. He sent me back a video showing how they handle this type of tiered deal and then syncing back to a custom ACV property in HubSpot.
@HubDoPete - This is great, thanks for sending this over, I'll take a look ASAP.
Haven't gotten a chance to make much progress on this yet, caught up in other things. But I will be sure to update the thread here with whatever I end up deciding.
It's actually @DMcCarthy with the need to report on ACV for these contracts. To split the deal into two deals will likely disrupt other metrics that relate to the number of actual contracts.
I've tagged D in this reply to you though, in case this idea helps too.
Well, Hubspot has pretty good reporting capbilities but there various limitations. What I have to end-up doing for one of my customers is exporting the deal data from Hubspot and create custom report with some automation tools.