Negotiation is hard. There are all kinds of books, seminars, and coaching out there, but most engineers don’t get any kind of training before being thrown into the deep end. One day they need to buy a service, contact a vendor’s sales team, and muddle their way through an impenetrable contracting process. After a few costly mistakes they hopefully realize they’re swimming with sharks and start looking for help. Ask me how I know.
Anyway, over the past couple of years, I’ve had the opportunity to negotiate a few dozen vendor contracts, ranging from $10k to $1.5M, and I thought I’d share some of the things I’ve learned. Let’s be very clear – I am not a professional negotiator. There are people who are amazing at this stuff, who do it day in and day out, and I am just not one of them. If you can hire one of these people, you should – a good procurement person will save you many times their salary, and once your company is over a certain size, failing to hire someone “because you don’t have the budget” is straight-up corporate malpractice. But just in case you have to go it alone, I thought I’d share a couple of things I’ve seen that come up all the time.
BATNA
Before we get into the details, let’s talk about BATNA. BATNA is a term popularized by Getting To Yes, one of the all-time classics on negotiation. It stands for Best Alternative To Negotiated Agreement, and it’s what you’ll do if the deal falls through. It’s your backup plan, your leverage. BATNA is the most important thing you have in a negotiation, because it allows you to walk away if you don’t like the terms. If you have strong BATNA, you’re in a great position. If you don’t have BATNA, then you have to accept whatever your counterpart offers.
True story: at my last company, all of our internal tooling depended on a specific SaaS product. Without this one key component, we’d have had to completely rearchitect and rebuild all of our tools. It would have been a complete nightmare. The initial one year contract (which I hadn’t been involved in) had included a one-time $50k fee for setup, then another $75k for the recurring annual fee, and when I contacted the vendor to negotiate a less expensive deal, they knew they had me over a barrel. Even though we only needed a very small part of the product’s functionality, they straight up refused to discuss a change to the contract or reduction in fee. Case closed.
Except it wasn’t. Before I’d contacted them, I’d asked a couple of my engineers to see if they could build out just the piece of functionality we needed using open source libraries. I didn’t want to switch from a managed service to a custom-built and internally-maintained server, but I also didn’t want to pay $75k for a small but critical piece of their product offering. I didn’t have high hopes, but when the engineers delivered a working solution, I knew that I could walk away – which, when they refused to come to the table, is exactly what I did. Suddenly, I was in control of the conversation, and when I turned them down, their CEO called in a panic to try to save the deal.1
The bottom line is that BATNA is the most important thing you can have in a negotiation. And the number one rule is to always develop BATNA if you don’t have it – whether a competing vendor, internal development, or just being able to go without.
Time
As an individual, you’re used to being able to go to a website, browse through features by service level and price, choose a product, and immediately purchase it. Everything about the process is smooth and easy, almost as if (as if!) some PM has spent a lot of time optimizing the online sales funnel. When you’re buying for an organization, not only is the pricing nowhere to be found (contact us!), but you’re required to send a message and wait for a response to start the sales process. This can take a surprising amount of time. First they’ll want an introductory conversation to understand your needs, then they’ll have to demo their product, then they’ll try to upsell you on services that you probably neither want nor need. There’s time to come up with a quote, create an SOW, contract, or sales order, all the back and forth, conversations with their lawyers, conversations with your lawyers, redlines, and on and on. This process can feel so punishing that you might reasonably wonder if they even want the sale!
As a general rule, I recommend giving yourself between 1-3 months to get from initial conversation to signed contract. This sounds crazy, and will depend on numerous factors – how complicated is the service you’re purchasing? Are you working with a startup or big established company? How good is your BATNA? (threatening to walk away is a very effective way to focus their attention) Are you also purchasing services? You can cut the time down if you’re willing to sign whatever they send over, but as you’ll see later, there are a number of common contractual clauses that you should think hard before accepting. Also, if they know you’re in a rush or have a deadline, they can run down the clock, reduce your BATNA, and force you into a worse deal. The more time you can give yourself, the better.
Deadlines
Speaking of deadlines, the salesperson will frequently try to create false urgency by giving you a near-term signing deadline. They might tell you that they’re trying to hit their quarterly quota, or that there’s a special deal this month, or that it’s the end of the fiscal year… And while this might even be true, if you need more time you can almost always tell them that you can’t sign within the deadline, and they can either extend (with the special deal) or you’ll have to walk away. Once again, BATNA is your friend.
Another true story: the first company I worked at was so well known for holding a fire sale at the end of their fiscal year that long-time customers knew to delay their procurement until March. This was a pathological case, but I’m sure there are some companies with perverse internal sales incentives, so YMMV. Delaying the negotiation might be a strategy for you as well.
Budget
This one is incredibly obvious, but I’m just going to put it out there. Every salesperson – whether car, SaaS, or real estate – will ask what your budget is. Don’t tell them! Here’s what you can tell them: your team has to get all expenses approved, your boss is a tightwad, your company’s trying to cut costs, the budget’s super tight, etc., etc. They want information they can use to increase the price, and you need to deny them that information. This is a lot easier if, for instance, you can tell them (truthfully) that your company has had layoffs recently, but whatever the situation, you need to be very clear that price is a consideration and that you do not have deep pockets.
Contract Term
Salespeople will frequently try to get you to sign a multi-year contract. This will typically include some kind of discount, but of course if you don’t end up liking the product, then you just blew multiple years worth of SaaS fees. Be very sure before you sign a multi-year deal, and don’t agree to pay everything up-front. Salespeople understand that you won’t have the budget for multiple years at once, so you can usually pay on an annual or monthly basis.
Renewals
Likewise, almost every contract will have a cancellation clause. I.e., if you don’t inform them X days before the end of the term, then you are automatically renewing for another year. If you aren’t extremely organized, you can easily get stuck in a bad contract for an extra year – just because you didn’t happen to be paying attention to the contract’s renewal date and notification period. As an example, I once discovered – 50 days before the end of an expensive contract for a service we barely used – that it required 60 day’s notice of cancellation.
There are three ways you can deal with these notification periods. The first is to demand that the salesperson reduce the length of time (e.g., from 60 to 30 days). The second is to demand that they remove the renewal clause completely. You can always blame Legal, e.g., “my company’s legal department won’t let us sign any contract with a renewal clause” (this was true at my last company, and I was always able to get the clause removed). The salesperson is looking to close the deal, and while they want the renewal, they shouldn’t fight you too hard on it. If they absolutely can’t or won’t remove the clause, and if you absolutely don’t want it, then that leaves the third option: once the contract is signed, you can immediately send them an email notifying them of non-renewal. This is a perfectly acceptable cancellation notice, and you can explain when you get the confused / panicky call.
It’s worth mentioning that a lot of the time you’ll want the contract to automatically renew. Generally speaking, you’ll want most services to roll over from year to year, and the renewal clause should include language indicating the maximum increase in fee that can be applied at the renewal time. This gives everyone what they want – you have a service that will auto-renew without exploding in price, and they get ARR.
One last note: it’s really important to set an alert for the renewal date minus the cancellation period plus buffer (RD – (CP + B)), so that you have time to decide if things are working out, if you want to cancel, or if you want to renegotiate terms. If you wait too long, you’re locked into another year. And even if you notify them in time, you still might not have enough time to find something new. There are tools to manage contract renewals, but even a shared spreadsheet or calendar can work in a pinch. The danger is forgetting and only realizing a renewal’s coming up too late to do anything about it.
Number of Seats
Many contracts specify the number of people who can use the service, and for which you’ll be charged. A common mistake is to calculate and pay for the maximum number of people who might use a service – this almost always means you’ll be paying for more people than you actually need. Always underestimate – if you come back a month later and want to add more seats, they’ll be delighted and will make it easy for you to spend more money. If you want to reduce the number of seats, well, you’ll already have paid, and you’ll be out of luck.
Credits
Some companies (Snowflake and DataBricks come to mind) sell you “credits”, which have to be used up or lost by the end of an annual contract (kind of like vacation days that don’t roll over). If you buy in large-enough quantities, you can get substantial savings over pay-as-you-go, but you’ll still be kicking yourself if you end up with tons left over at the end of the year. So my recommendation is to figure out the maximum discount you can get, then target nine months worth of credits instead of twelve. The goal is to run out early. At that point, they’ll typically either allow you to re-up at the current discounted rate for enough credits to get through the end of the year, or you can just start another “12 month” contract period. Either way, you’re getting the discount and not over-spending.
Service Level
One of the things I’ve found most frustrating is the almost pathological refusal by many salespeople to reduce to lower service levels in renewal negotiations. You’ve been optimizing your usage, you have a better understanding of who’s using the service, you realize that you don’t need the enterprise features after all… And the salesperson refuses point blank to reduce the contract size. They’re willing to add other features, give you more access, throw in more seats – anything to avoid reducing the size of the contract. While frustrating, it’s easy to understand their point of view – they have quotas to meet, their boss is telling them to increase the size of the contract, and here you are, trying to spend less. Why are you being so difficult?
This is another situation in which it’s important to start the negotiation early. It gives you more options, allows you to escalate, investigate alternative services, even cancel the contract and start the sales process from scratch if necessary. But it’s frustrating, and it’s easy to give in and accept some random feature you don’t need in lieu of a cheaper contract. After all, you’re getting more for your money, right? Trust me when I say it sounds better in your head than when you try to explain it to your boss. All I can tell you is that this is a standard con, and you need to push hard, escalate on your side, and demand to escalate on their side too. It’s possible that they aren’t even allowed to reduce the size of the contract, and you need to get to someone with authority to make the decision. Again, BATNA and time are key – if you’re ready to walk away, they will absolutely come to the table.
Redlines
It can feel uncomfortable to try to get a vendor to change something in a contract. It can feel embarrassing. It can feel like you’re admitting culpability, or committing some kind of social faux pas. Are they really going to change their boilerplate? How insulting to even suggest such a thing! You need to understand that contracts are just pieces of paper with words that the vendor has decided are maximally advantageous to themselves. If you tell them that you want a change, they will either accept, refuse, or try to compromise. They might not accept your proposed changes, but they aren’t going to cancel the sale because you asked. And in fact, my experience is that they will accept the vast majority of requested changes.
True story: I once got a major e-commerce platform to agree to increase an 8 call/second limit on API calls to 800 calls/second. I knew that the salesperson didn’t know or care about the limit, and at the time 8 calls/second seemed ridiculously low to me. A couple of months later I got an angry call from their CTO, who had just discovered the situation and was refusing to honor the contract. There were a couple of tense moments until he looked at our actual usage, realized that none of this mattered, and dropped the issue.
Another true story: my company’s contract lawyer once tried to get Microsoft to change their boilerplate contract for Office, to which they replied something like, “LOL. No.” We backed down, and the sale went through.
Redlines are a normal part of contract negotiations. Don’t be embarrassed or afraid to propose them.
One Last Note
Just like when buying a car, the salesperson is NOT your friend. While many of them are quite likable, being liked by them isn’t one of your goals. Having said so, it’s better to work with people who aren’t complete dicks, and some salespeople are complete dicks. Likewise, it’s easy to treat salespeople poorly, and this is both counterproductive and makes you the asshole. It’s much better to have a good relationship with the salesperson, while recognizing that you have different goals, and that the interaction is purely transactional on both sides.
Good luck!
- I didn’t end up renewing the contract. ↩︎