Multi-Year Contract - Discount One Year

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)

Any insight would be appreciated!

Hi @DMcCarthy,

Thank you for reaching out to the Community!

I wanted to tag in a couple of subject matter experts to see if they have any input on this matter:

hi @HubDoPete, @AdamLPW, @BukunmiOdetayo, do you have any advice for @DMcCarthy? Thank you!

Cheers
Mia, Community Team

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 :slightly_smiling_face:

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!

cheers

Pete

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.

Thanks!

Hi @DMcCarthy

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.

I hope that helps with ideas.

I’d love to know how you end up solving it.

cheers

Pete

@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.

Thanks again!

How about creating 2 separate deals one for 1st year and another one for the remaining years?

Thanks Malcolm,

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.

best

Pete

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.

Hello DMcCarthy! What third-party tools do you use to create multi-year quotes with line items discounted differently for each year? I recently discovered that this is possible, and I’m feeling frustrated with the technical limitations of HubSpot on this issue. My use case:

  • Subscription product
  • Billing Frequency – usually Monthly
  • Term – usually 36 months
  • Year 1 – Discount 10%
  • Year 2 – Discount 5%
  • Year 3 – Discount 0%

Hi @PollyPieCharts, thanks for reaching out to the HubSpot Community! I’m sorry to hear you are running into this but we are happy to help here! I will go ahead and share the feedback to our product team internally.
Hi @DMcCarthy, are you able to provide any more details here? @danmoyle, @Phil_Vallender, and @HubDoPete are you able to provide any additional insight?
I did some research and found a possible solution in video from @HubDoPete on this post “Multi-Year Contract - Discount One Year” that might help you!
Best,
Julia

Thank you for the tag @juliagentillo - I don’t have a solution for this specific use case for @PollyPieCharts though. I’ve seen this done manually, not in an automatic way. And I don’t know of TPS solutions - but if it were me I’d look in the app marketplace for sure.

Hi Julia, thanks for picking up on this post!

:pushpin: To HubSpot Dev Team – Urgent Fix Needed for Multi-Year Deal Reporting

Hello HubSpot Community & Product Development Team, I’m reaching out as a System Administrator for a company offering:

:small_blue_diamond:Software Subscriptions (Industry-Specific CRM, similar to HubSpot) – Billing: Monthly, Quarterly, Annually
:small_blue_diamond:Professional Services (One-Time Services, similar to HubSpot’s Onboarding)

Our industry relies on 3-year contracts, ensuring software stability and reducing frequent provider switching due to complex data migrations.

**:police_car_light:

The Challenge: Applying a Discount to Year 1 in Multi-Year Deals**

Our Sales Strategy offers a first-year discount, followed by standard pricing for years 2 and 3. The big question::light_bulb: How do we apply a first-year discount while keeping full price for future years in a multi-year contract?

Initial Solution: Add the same product multiple times within a single deal, adjusting the Billing Start Date:

:white_check_mark:Software Subscription – 2024-01 (Discounted)
:white_check_mark:Software Subscription – 2025-01 (Full Price)
:white_check_mark:Software Subscription – 2026-01 (Full Price)

:police_car_light:The Problem: This breaks reporting.

# Issue 1: Inflated Annual Contract Value (ACV) & Deal Value

When adding a product multiple times with different Billing Start Dates, the Annual Contract Value (ACV) sums up incorrectly, leading to inflated revenue. ACV is the basis for “Amount in Company Currency”, which recalculates deal value based on our company currency settings.

:small_blue_diamond:Impact: Misleading revenue projections and inaccurate financial reporting.

# Issue 2: Broken Currency & Forecasting Reports

Our company operates in five currencies, and all executive and sales dashboards rely on “Amount in Company Currency”. However, adding a product multiple times skews revenue tracking, making reports unreliable.

:police_car_light:Critical dashboards impacted:

:small_blue_diamond:Closed Business – Overstated revenue per month/year
:small_blue_diamond:Salesperson Dashboard – Overstated revenue per rep per month/year
:small_blue_diamond:Customer Dashboard – Overstated revenue per customer per month/year
:small_blue_diamond:Progress to Target (Goal Functionality) – Misalignment in quota tracking

Currency functionality was a key factor in choosing HubSpot last August. Now, despite paying for an annual subscription, we cannot accurately create multi-year contracts with tiered pricing.

While Quote Templates allow customers to see pricing adjustments across years, the Deal Properties (“Amount in Company Currency” and “ACV”) remain incorrect—breaking financial reporting.

**:rocket:

Proposed Solution for HubSpot Dev Team**

:white_check_mark:

Only include a Line Item’s ACV in the Deal ACV when its Billing Start Date falls within the same year as the Deal Close Date.

Excel Logic Equivalent:
:pushpin:**ACV [Deal level] =

SUMIFS(ACV [Line Item], IF(Deal Close Date Year = Line Item Year))**

:white_check_mark:

This ensures ACV and “Amount in Company Currency” accurately reflect revenue for the year the deal was closed—preventing inflated values from future years.

:loudspeaker:Urgent Call to Action

This is not a nice-to-have feature—this is a high-impact issue affecting forecasting, sales performance tracking, and financial reporting.
HubSpot markets itself as an excellent CRM for reporting, but this flaw makes multi-year SaaS deal reporting unreliable.

:police_car_light:This must be addressed ASAP. Who’s with me? :rocket:
Looking forward to feedback from the community—and action from HubSpot.


screenshot 1

screenshot 2

Thanks for suggestion @danmoyle and the detailed feedback @PollyPieCharts! I have passed this along to our team internally, hopefully we can see this implemented soon!

Hi everyone. Brannon here. I’m the product manager leading our upcoming ramp pricing enhancements for line items. We know multi year, multi ramp deals can get messy fast, and we’re actively building a more flexible, native way to handle those structures directly in HubSpot.

If you’re interested in taking a look at some early design concepts or sharing how you handle these deals today, I’d love to connect. You can reach me at badlesh@hubspot.com.

Hi team,

I was looking for a solution for multi-year subscriptions with step-down discounts, and I came across this topic.

Right now, we’re setting up multi-year subscriptions where the discount decreases each year (e.g. Year 1 = higher discount, Year 2 = lower, etc.).

However, when it comes to converting subscriptions, the only workaround I’ve found is to create multiple subscriptions linked to the same company:

  • the first one active
  • the rest scheduled (because each year has a different discount)

Does anyone know if there’s a way to avoid using scheduled subscriptions in this case?

Maybe there’s an automation or a better approach that would adjust the discount amount automatically each year?

Thanks in advance for any hints :folded_hands:

Hi @OTielcharova

Thank you for your question!

At this time, most teams are using workarounds for this issue. Like this Community Thread

https://community.hubspot.com/t5/Tips-Tricks-Best-Practices/Multi-year-deal-with-price-escalation/td-p/1053023

Right now, there is an Idea in Development for Multiyear Quote, my advice is to upvote it and add your specific case in the comments:

https://community.hubspot.com/t5/HubSpot-Ideas/Multiyear-Quote/idi-p/783994

I also want to tag some community experts for any workarounds. Hey there @HubDoPete @HFisher7 @hamidn, happy Thursday! Any thoughts here?

Thanks

Victor