The archive

LibraryThe daily build9 min read

What it actually costs to leave the software you hate

Your renewal letter went up 40 percent and someone in the room is already pricing the alternative. The number nobody puts in that spreadsheet is your own team's hours, which is usually the number that decides it. I built a calculator that counts them, and that is willing to tell you to stay.

At a construction site, workers sort paperwork into old and new system piles while moving archive boxes.

You can now settle the leave-or-stay argument about a software renewal in about ninety seconds, with your own team's hours priced into it, on a page that is perfectly willing to tell you to stay. That argument normally costs somebody an afternoon and a spreadsheet, and the spreadsheet is usually wrong in a specific and predictable direction: it counts the vendor's invoice and forgets the two weeks your operations lead is going to spend rebuilding reports. I built the thing this morning and put it at switching-cost. It is free, there is no signup, and nothing you type into it leaves your browser.

Where this came from, which is not a product roadmap

We keep a research corpus of what small operators actually complain about, pulled from public threads rather than from a survey panel. The single loudest finding in the cost section is not that software is expensive. It is that price increases are the switching trigger, and that people do not shop calmly. They shop angry, three days after a renewal letter.

The examples in the corpus are all the same shape. A desktop accounting product that used to be a few hundred dollars a year turns into a subscription that is closer to a thousand. A remote-access tool the shop has used for nine years raises its price by a third with sixty days notice. A construction platform that was fine at eleven users becomes indefensible at nineteen. Intuit has been running the clearest version of this play in public: it stopped selling several QuickBooks Desktop products to new U.S. subscribers while letting existing subscribers keep renewing, which is a very polite way of building a room with one door in it and no door out.

The other half of the picture is what happens when people react to that. Capterra surveyed 3,500 software buyers and found that roughly 60 percent had made a regretful software purchase in the previous 18 months, and that among smaller businesses the most commonly cited consequence of that regret was increased cost. Read those two findings next to each other and you get the actual problem. An angry buyer switches to escape a price increase and lands somewhere that costs more, because the price on the pricing page was never the number that mattered.

So the thing worth building is not a tool that helps you leave. It is a tool that tells you what leaving costs.

What it does

Three boxes. What you pay now, what the alternative costs, and what moving costs you.

The first two are the parts everyone already does in their head. Price per seat, monthly or yearly, and how many seats. The tool normalizes yearly to monthly so you are not comparing an annual contract against a monthly one and quietly losing a factor of twelve, which I have watched happen in a real meeting.

The third box is the one that makes it a tool instead of a subtraction. It asks for a one time fee, your team's hours, and a blended hourly rate. Those hours are the part that gets left out of every version of this spreadsheet I have ever been shown, and they are usually the largest single number in the whole calculation. Exporting the data. Cleaning it, because the export is never shaped the way the import wants it. Loading it. Rebuilding every report and every automation that pointed at the old system. Then teaching fourteen people a new interface while they keep doing their actual jobs.

Out the other side you get the monthly saving, the total cost of moving, the month you break even, and where you net out at twelve, twenty four, and thirty six months. That last row is there because payback in isolation is a slightly dishonest number. A four month payback on a saving of thirty dollars a month is technically excellent and practically not worth a meeting.

The design decision that matters

Every switching calculator on the internet belongs to a vendor, and every one of them is built to reach the same conclusion. That is not a conspiracy, it is just what happens when the company paying for the tool is also the destination. The inputs are shaped so that the answer comes out favorably, and the switching cost is either missing or set to a friendly default.

This one had to be able to say stay. Not as a disclaimer at the bottom, but as an actual verdict with the same visual weight as the good news. If you enter two identical prices it says price is not the reason to move, and it says it in the same place and the same size as it would say anything else. If the alternative costs more, it tells you this one never pays for itself and then shows you exactly how far down you are at each horizon. There is no version of the output that nudges.

That constraint is also why the tool has no idea who you are. There is no server behind the page. There is no route, no form submission, no analytics event carrying your numbers, no account. The arithmetic runs in your browser, your last set of numbers is kept in your own browser storage so you can come back to a half finished argument, and clearing it removes them. I am aware that every tool on the internet says something like this. The difference here is structural rather than promissory: there is nothing on the other end to receive the data, because I did not build one. What you type is your commercial position, and the only promise about it worth making is one the page can keep by construction.

What broke

The interesting failure was not a crash. It was a page that worked perfectly and lied to everyone who visited it.

Blank fields and zeroes were being treated as the same thing. That sounds harmless until you follow a real person through the form. They land on the page, they type their current price into the first box, and at that instant the alternative is still empty. Empty parsed to zero. Zero is a legitimate price. So the tool concluded that the alternative was free, that the saving was the entire amount they had just typed, that moving cost nothing, and it announced in large friendly letters that it pays for itself right away.

Every single visitor passes through that state. It is not an edge case, it is the second thing that happens to everybody.

The obvious fix is to treat zero as empty, and it is wrong. A free alternative is one of the most common real answers in this exact situation, and it is frequently the correct one. The open source document signing tool is genuinely zero. The self hosted video editor is genuinely zero. If you collapse zero into blank, you break the tool for the cohort with the strongest case for leaving. So the price fields now carry a real absence value that is distinct from a real zero, blank stays blank all the way through the math, and the verdict for a half filled form is that there is nothing to compare yet. Zero still means free, and free still gets a real answer.

The second thing was smaller and more annoying. The seat count started as a number that the form coerced on every keystroke. Clear the box to retype twenty five as twenty six, and the instant it is empty the field snaps back to one and you are fighting it. Every field in the tool now holds the raw text you typed, and the math does its own reading. Nothing rewrites what is in the box while you are still in the box.

Neither of these was caught by a build or a type checker. Both compiled. Both passed every test that existed at the time, because the tests and the code shared the same wrong assumption about what an empty string means. I found the first one by opening the page and typing one number into it, which is the only reason step five of this process exists.

What it cannot do

It compares two prices and the cost of moving between them. That is the entire scope, and the scope has real edges.

It does not know whether the new tool is any good. This is the big one. A tool that saves you six hundred dollars a month and cannot do the one report your controller needs on the fifth of every month is not a saving, it is a slow leak with better branding. The calculator cannot see that and will happily give you a glowing payback figure for a bad decision.

It does not know what your current contract says. If you are eighteen months into a three year term, the relevant number is not the monthly saving, it is the termination clause, and the tool has no field for it. Multi year contract regret shows up all over our corpus and it is exactly the situation where the arithmetic on this page is least useful.

It does not model tiered pricing, volume discounts, the annual commitment discount you would lose by going monthly, or the negotiated rate you would get if you called your current vendor and told them you were leaving. That last one is worth saying plainly: a credible switching estimate is leverage with your existing vendor, and the cheapest outcome of running these numbers is sometimes a phone call that ends with your current price going back down.

It does not know how long your team stays slow on the other side. The hours field captures the migration. It does not capture the six weeks afterward where everything takes twenty percent longer because nobody has muscle memory yet. If you want that in the number, add it to the hours yourself. I chose not to invent a productivity dip multiplier, because I would have been making it up and it would have looked authoritative.

And it assumes the seat count stays put. Growing from twenty to forty seats changes which side of this wins, sometimes dramatically, and there is no forecast in here.

The thing worth chewing on

The reason this calculation stays hard is not that the math is hard. The math is one subtraction and one division, and you could do it on the back of the renewal letter that made you angry in the first place. It stays hard because the number that decides it, your own team's hours, is the only number in the equation that nobody sends you an invoice for. Nobody bills you for it, so it never shows up in the comparison, so the comparison always tilts toward moving.

A short payback is permission to look harder. It is not a decision. And a long payback is worth taking just as seriously in the other direction, because a switch that needs three years to break even is usually a switch that never gets finished, abandoned somewhere around month five with two systems running, two invoices arriving, and nobody willing to say out loud that it was a mistake.

Sources

Every claim above traces back to one of these. Go read them yourself.

  1. 01
    QuickBooks Desktop to stop selling to new U.S. subscribers

    Intuit / quickbooks.intuit.com / retrieved Aug 05, 2026

  2. 02
    2025 Tech Trends: software purchase regret among SMBs and enterprises

    Capterra / capterra.com / retrieved Aug 05, 2026