Hey all — looking for some advice or ideas! I’ve recently stepped into a RevOps role at a SaaS company where the historical sales process has been... less than ideal. Previously, using Hubspot, we were creating a separate deal for every individual component a customer purchased — for example:
One deal for their core subscription
A second deal for an additional user
A third deal for another user
A fourth deal for an add-on
This naturally created a ton of friction and errors, especially at renewal time or when trying to get a clear view of customer value. I've since overhauled the process so that each contract has one deal and we use line items to reflect the products/add-ons associated with that deal. Much cleaner now. Now my issue is around uplift. Our sales comp is based on uplift — so if a customer originally paid $1,000 and renews at $1,200, the uplift is $200, and commission is paid on that. Now that we’ve moved to a consolidated line-item approach:
What’s the best way to calculate uplift in this structure?
Has anyone built a reliable method (using Hubspot) to compare the previous deal's value to the new one on a like-for-like basis?
And more broadly — is there a smarter way to structure this so it’s easier to manage over time?
Any advice, frameworks, or gotchas would be massively appreciated!
Hey Samuel. Yes that's the issue. I have now switched to using product line items in one deal but we may add additional users over time
You may want to use Ops Hub or else look into a true CPQ. We custom coded complex calculation for a material handling equipment dealer with over 75 sales people and 20 plus service ticket team using h HubSpot full suite. They have a very complex set up - they needed target account based pricing for national accounts, they have blended hourly rate for repair and parts cost with margin. They also have support team creating quotes with associated account rep as the deal collaborator. We had to use Ops Hub to do some of that complex calculations.
Ross D. Personally, if purchasing another tool is not an option, I would clean up historical data. Generally speaking, I would take all closed won deals, sum up the total by company and close date, and then update a single opportunity. Once I have the previous contracts closed won deal amount corrected, I would use a workflow + formula to calculate uplift on the new deal record.
Ross D. Regarding comparing previous deal value to new deal value I can share what I previously build: We had a workflow running that was triggered when the deal amount changed. We used a second deal amount property (Old Deal amount) to store the old value. So when the worflow triggers you have the new deal amount (In the actual deal amount property) and the old deal amount in the other property to compare them against each other and calculate uplift and store it in another property. Then with a couple minutes delay you update the "Old deal amount" again so it's ready for the next change. We only used it for monitoring significant changes in our pipeline, but it should work for your use case, too. One downside I see is that multiple value changes in a short period of time (Depending on your delay to update the "old deal amount") can lead to errors. Also if multiple upsells happen over time you would need multiple properties to store these occasions separately. But I think you could make it work 🙂
Kudos on cleaning up that deal structure! Here’s a framework we’ve (RevPartners) implemented for partners in similar situations: 1. Create a "Previous Deal Value" Reference
Use custom properties or calculated fields to store the prior deal’s total value (ACV/TCV).
At renewal creation, automate copying this value over via workflows or Ops Hub to anchor your comparison.
2. Leverage Line Item Comparison
HubSpot’s line item history isn’t perfect for tracking change over time, so we recommend:
Standardizing SKUs and pricing models.
Using a combination of custom properties + reporting to flag changes in quantity, pricing, or add-ons.
3. Automate Uplift Calculation
Use calculated properties to subtract "Previous Deal Value" from "Current Deal Value."
You can then trigger workflows to notify finance or sales ops when uplift is confirmed and ready for commission processing.
4. Version Control & Auditability
Build a renewal playbook: Every renewal deal should reference the original deal ID for traceability.
Consider a "Renewal Type" property to distinguish between like-for-like renewals vs. upsells, expansions, or re-negotiations.
Pro Tip: If uplift tracking becomes too complex in HubSpot alone, we recommend using PandaDoc for CPQ needs (but that depends on scale.) Manual workarounds might work today, but automation and clear processes will save you as volume grows. If you'd like to see how we've standardized uplift tracking across SaaS GTM engines, happy to chat. This kind of RevOps optimization is where we live!
This is amazingly helpful all. Thanks so much for your input. I'm doing it alone so it's great to have people to bounce ideas off. I think storing the previous deal value is a great shout. Much appreciated!
