April 30, 2026

How Nonprofits End Up Locked In by Their Software Vendors

Nonprofit software vendor lock-in turns a routine purchase into a hostage situation three years later. Here is how the trap works, the signs you are already in it, and what to do before the next renewal.

Matthew Crist
Matthew Crist
Co-Founder, Chief of Technology

The executive director called us because she had just gotten her renewal quote from her donor management vendor. Forty percent increase. Three-year minimum. Migration assistance available for an additional fee.

She wanted to leave. She had wanted to leave for two years. The problem was that nobody on her team could answer a simple question: how do we get our data out?

That answer turned out to be sixteen thousand dollars and four months. The vendor’s standard data export tool covered a subset of fields. The rest lived in custom tables that required a paid services engagement to extract. Meanwhile her donors kept giving, her staff kept logging gifts, and the meter kept running on the renewal she did not want to sign.

She signed it. She had to. There was not time to do anything else before the cutover date.

This is what software vendor lock-in actually looks like inside a nonprofit. It is not a single dramatic moment. It is a slow accumulation of friction that turns a software decision into a hostage situation, three or four years after the original purchase.

How the lock happens

The classic version goes like this. A small organization buys a platform. The platform fits their needs reasonably well at the time. The vendor offers professional services to set it up, customize it, and load historical data.

Each of those steps embeds the vendor a little deeper. Custom field structures live in vendor-specific tables. Workflow automations get built in a proprietary editor. Integrations to your accounting system, your email tool, and your event registration system are configured by vendor staff using vendor-specific connectors. Reports run against schema definitions that exist nowhere outside the platform.

After a year, your staff is trained on the vendor’s interface and nobody remembers what the alternatives looked like. By year two, your reporting depends on dashboards that only render inside the platform. By year three, the people who set the system up have left both the vendor and your organization, and the institutional knowledge of why anything is configured the way it is now lives in a Slack channel nobody reads. By year four, the renewal arrives with a price increase you cannot absorb and an exit cost you cannot afford.

You are now locked in. Not because the contract says so. Because moving is harder than staying.

What it actually costs

The visible cost is the renewal price increase. The invisible cost is bigger.

We worked with a county government last year that ran the math on their permit management system. The vendor wanted a thirty-five percent uplift over three years. The internal estimate to migrate to a different system, conservatively scoped, came in just under one million dollars and eighteen months of staff time, with a real risk of permit processing disruption during the cutover.

The renewal got signed. The vendor knew that math too. That is the trade. Vendors price every renewal somewhere just below the all-in cost of leaving, and most organizations pay it because they cannot absorb the alternative.

Now multiply that by every system in your stack. Donor CRM. Volunteer management. Grant tracking. Permit portal. Document repository. Constituent service tool. Email marketing. Event registration. Each one is a small piece of the same trap, and most of them renew on different calendars so the budget impact never lands all at once.

In Marin County we walked into a stalled rebuild that had been propped up by a vendor that had quietly stopped responding to support tickets. The county had a year of budget tied up in a system they did not control and could not extend. The first thing we did before any code shipped was get a clean export of every piece of data we cared about, into a format we could actually read. That part is unglamorous. It is also the only reason the rest of the work was possible.

Signs you are already locked in

If your team has ever said any of these things, you have a nonprofit software vendor lock-in problem. You may not have noticed yet.

There is no current data export from your main system, and nobody is sure what would actually come out if you tried.

The original implementation was done by the vendor and there is no documentation of how anything is configured.

Your contract auto-renews unless you give written notice ninety or one hundred twenty days in advance, and you have already missed that window twice without realizing it.

Customizations were built in a proprietary scripting language that has no documented user community outside the vendor.

The system runs on infrastructure the vendor controls, and the only way to back up your environment is through their own backup product.

A required integration is operated by the vendor as a managed service, and the source code or configuration is not available to you.

We see at least three of those on every audit we run for a midsize nonprofit. A few times we have seen all six.

What to do about it

The work is not glamorous. We tell clients to do it anyway, because every other option costs more.

Pull a current data export today. From every system you own. Document what came out, what did not, and what would need to be rebuilt elsewhere. The first time most clients try this, they find that the export tool produces something useful. The second or third system usually does not. Better to learn that now, on a Tuesday afternoon, than during a forced migration with the auditors watching.

Get an architecture diagram. Even a rough one. Write down which systems hold which data, which integrations connect them, and which vendor controls each piece. Most nonprofit IT inventories are stored entirely in one staffer’s head, and that staffer is going on parental leave in November.

Read the contract you actually signed. Find the renewal terms, the data ownership clause, the termination assistance language, and the price escalator. About a third of the contracts we read with clients have terms that nobody on staff has looked at since the original signature. Some of those terms are worse than people remember.

Set a renewal reminder six months out. Not three weeks before the renewal date, when the vendor will already have you on a renewal call. Six months gives you time to evaluate alternatives and run a real procurement, if you decide to. The reminder lives on your calendar. The vendor’s calendar is not your friend.

Treat new software purchases like they are going to be expensive to leave. Because they are. Ask for a sample data export during the sales process. Ask what happens to your customizations if you terminate. Ask the procurement question that makes most sales engineers uncomfortable. The vendors that answer cleanly are the ones worth working with.

A quiet point

Software vendors are not villains. Most of them ship reasonable products and most of them want to keep you happy. The lock-in problem is a consequence of how the industry works, not a conspiracy. Once a system has your data, your training, and your workflow, switching is hard. Vendors price their renewals knowing that.

The way out is not to find a vendor that promises they would never lock you in. They all promise that. The way out is mundane. Keep your data exports current. Keep an architecture diagram up to date. Put renewal reminders on your own calendar before the vendor puts you on theirs. The cost of doing that work is small. The cost of not doing it shows up four years later, in a forty percent renewal quote and a sixteen thousand dollar export bill.

Your job is not to avoid every form of dependency. Your job is to make sure the dependency stays smaller than the value the system is delivering. When the math flips, you should be the one who notices first.