A husband and wife sell irrigation fittings to landscaping contractors out of a rented unit behind a tire shop. Two people, a few hundred trade accounts, a catalog that changes twice a year. Their ordering system is fifteen years old and the man who wrote it has retired. They have a quote for a replacement, and the quote has one number on it: the annual license. That number is the only part of the project anybody has priced, and it is almost never the part that decides whether the switch goes well.
The costs that follow a signature are knowable. Most of them can be written down in an afternoon before you commit. The reason they usually are not is that nobody in the sales conversation is responsible for counting them.
Start by listing what the old system actually does, not what it was sold as
Before you can price a replacement, you need an honest inventory of the jobs the current setup performs. Not the features. The jobs. For the fittings business that list came to eleven items: take an order, check stock, apply contractor pricing tiers, print a pick list, generate an invoice, record a partial payment, flag accounts past terms, produce a monthly sales tax summary, export to the accountant, hold a customer's standing order, and email a shipping confirmation.
Eleven jobs. Two of them, it turned out, nobody had used in four years. That matters, because the replacement quote was built around a platform that did roughly sixty things, and the couple were about to pay to migrate data that supported functions they had abandoned.
Ask the question directly: what is the simplest arrangement that covers the list? Sometimes it is a full platform. Sometimes it is a hosted storefront plus the accounting package you already pay for. If a vendor cannot explain why the simple version fails for your eleven items, you have not been given a reason, you have been given a preference.
Price the work that happens between the signature and the first real order
This is where the money hides, and almost all of it is labor. Data migration is the largest single item for most small operations. Customer records, price lists, open orders, historical invoices and product data all have to move, and old systems store them in ways that no import tool anticipates. Somebody cleans that data by hand. Either you pay the vendor's professional services rate for it, or you do it yourself at night, which is still a cost even though it never appears on an invoice.
Then the items that get skipped in planning:
- Parallel running. Most switchovers need a period where both systems are live and orders are entered twice. Budget weeks, not days, and budget the double entry as real hours.
- Integrations. Payment processing, shipping labels, the accountant's software, any EDI a larger customer requires. Each connector is either included, extra, or unavailable. Get that answer in writing per connector.
- Tax configuration. If you ship to multiple states, somebody has to set up and verify the rates and the exemption certificates for tax-exempt trade buyers. Wrong here is expensive later.
- Training and the productivity dip. Two people who are slower for a month is a month of margin.
- The old system's exit. Final data export, and a plan for reading those records years from now.
Add those up and compare the total to the license. For a small operation the first year commonly runs to several multiples of the annual fee. That is not a reason to abandon the project. It is a reason to know the number before you start rather than in March.
Read the renewal clause before the feature list
A contract for business software is a subscription with a long tail, and the terms that decide your third-year bill are rarely the ones discussed in the demo. Four clauses are worth finding by name.
The price escalator: many agreements permit an annual increase, sometimes capped, sometimes not. The renewal mechanism: whether it renews automatically, how much notice you must give to stop it, and whether that notice window is thirty days or ninety. The usage definition: what counts as a seat, an order, an API call, and what happens when you exceed it. And termination and data export: whether you can leave mid-term, what you pay if you do, and in what format your data comes back.
That last one is the protection people forget to negotiate. A contract should say plainly that your customer list, order history and product data are yours, exportable in a standard format, on request, at no charge, and available for a defined period after the relationship ends. Vendors who sell b2b ecommerce software to small distributors are used to being asked this, and the ones worth dealing with answer in a sentence.
The rules that apply whether or not anyone brings them up
A two-person business gets the same statutory protections as a large one, and carries some of the same obligations. Automatic renewal terms are subject to consumer and business protection rules on negative option billing, and the Federal Trade Commission oversees unfair and deceptive practices in how subscriptions are sold and renewed. Several states also require clear disclosure and an easy cancellation path for auto-renewing contracts. If a renewal notice never arrived and you were billed anyway, that is worth raising rather than absorbing.
On the obligation side, if you accept cards, the handling of that data falls under the Payment Card Industry standards, and using a platform that keeps card numbers out of your own systems narrows what you are responsible for. Records that support your tax filings need to remain readable for the retention period that applies to your returns, which means the export from the old system has to be something you can actually open later, not a proprietary backup file. And if the platform holds customer information, state breach notification laws determine who must be told, and how quickly, if it is exposed. Ask the vendor what their notification commitment to you is, in hours.
Phase it, and keep the fallback
The fittings business moved in stages. Catalog and pricing first, with orders still taken the old way. Then ordering for their twenty largest accounts. Then everyone else. The old system stayed readable on a spare machine for a full year after the last order went through it.
Phasing costs a little more in elapsed time and saves an enormous amount in the scenario where something does not work. It also gives you leverage: a vendor who knows you can stop after stage one behaves differently from one who has already been paid for the whole thing.
The couple's final spend came in above the quoted license and below what they had set aside, mostly because they cut two systems' worth of features they were never going to use. The eleven-item list did that work. Write yours before you take the next call.
