
The short version: Most vendors switch too late, after a bad Saturday, rather than at the point the numbers said to. There are seven signals worth watching, and only two of them are about money. The strongest is the one nobody counts: you are keeping a second list. If any orders live outside your platform, in a notebook, a spreadsheet, or your messages, then you are running two systems and paying for one. The rest are thresholds you can pre-register today: a fee crossover, an oversell, a cap you have hit, a tier you cannot justify, a workaround you built, and a feature you are waiting on.
The clearest sign, and the one most vendors have normalised.
If some orders arrive by text, by phone, or in person and cannot be entered into your platform, then you maintain a parallel list. That means two stock counts, an incomplete pick list, and reconciliation you are doing by hand every week while paying a subscription for a system that was supposed to remove it.
The test is one question: can you create an order on behalf of a customer? Shopify calls this a draft order, Square lets you build one from the dashboard, and Bakesy is built around it. Many platforms simply cannot.
If the answer is no and more than a handful of your orders arrive off-platform, the platform is not doing the job. That is worth more than any fee difference on this page.
Each signal below is checkable this week, not a feeling, and three of the five have a number attached. If several fire at once, our guide to testing a platform with real customers is the structured next step.
The one you can calculate exactly, and the one that creeps.
Percentage models are cheap when you are small and expensive when you are not. Flat subscriptions do the opposite. The crossover is arithmetic:
So the useful move is not to check occasionally. It is to write down the sales figure at which your current model stops being cheapest, and check it once a season. Percentage fees never announce themselves; they grow quietly with you.
A hard signal, and it usually means a cap you do not have.
Selling forty-seven of forty items is not a busy week, it is a missing feature. The specific capability is a quantity cap that resets the way you bake: forty per Saturday, not a single running inventory count that works for a shop with stock on shelves.
If you have refunded and apologised twice for the same reason, the platform is not going to develop the feature because you needed it. That is a switch signal, and it is one of the few that costs you customers rather than money.
The threshold is not zero incidents, which nobody manages. Once per season is bad luck; twice for the same reason is the platform telling you it has no cap feature, and the third one is on you.
Platforms publish their limits and vendors reach them without noticing what it implies.
Real examples from published pricing:
Hitting a cap is not automatically a reason to leave. It is a reason to price the next tier before you need it, because the answer is sometimes an unpriced sales conversation and sometimes a multiple rather than an increment.
Common, and easy to check once a year.
The pattern is upgrading for one feature and then not using it, or upgrading for a processing discount that does not pay for itself. Some published examples worth checking against your own volume:
That last one is the reverse case: the cheap plan is the expensive one. Either way, the check is the same, and it takes ten minutes with last year's sales.
Every workaround is a feature you needed and did not have.
The usual ones for food vendors:
One workaround is normal. Three means the platform is being operated against its design, and the effort you spend maintaining that is invisible until you add it up.
The honest test: if you had to hand your ordering process to someone else for a month, how much of it could you not write down? The parts that only exist in your head are the workarounds.
The one that wastes the most time, because waiting feels like progress.
Vendors stay on platforms for years because something is "coming soon." Sometimes it arrives. Often it does not, or it arrives on a tier above yours.
The way to handle it is a pre-registered decision: write down what you are waiting for, and a date. If it has not shipped by then, you evaluate alternatives. Not "I'll keep an eye on it," which becomes another year.
That applies to promised roadmap items generally. Cottage CMS, for instance, has said full-feature access is moving up when its Scale tier arrives, which is a signal worth asking about rather than assuming your current free tier is permanent.
Worth naming, because these look like signals and are not.
A slightly cheaper competitor. At typical small-vendor volume, every credible platform lands within about $50 a year of the others once processing is counted. Switching for $50 costs you a weekend and a fortnight of customer confusion.
A nicer-looking storefront. Design matters less than your product photographs, which move with you.
One bad support experience. Annoying, and not structural.
Something new launching. Newness is not a capability, and a platform six months old has not yet had a bad Saturday of its own.
Your accountant mentioned it. Unless they identified an actual cost, this is a preference.
The distinction is whether the thing you are unhappy about is structural or incidental. Structural means the platform cannot do it and will not. Incidental means it was a bad week.
A useful way to tell them apart: would this still be a problem in six months if nothing changed? A support ticket that took four days will not be. A platform that cannot express your Wednesday cutoff will be, every single week, forever.
One structural signal is enough. Several incidental ones are not.
Signal one, keeping a second list, justifies a switch on its own, because it means the platform is not doing the job you bought it for. So does signal three, repeated overselling, since that costs customers rather than money.
The financial signals, two and five, are different in character. They are worth acting on, but acting might mean changing tier rather than changing platform. A vendor on Squarespace Basic paying a 2% store fee should move to Core, not to a competitor. A vendor on Square Plus at three locations should probably move to Square Free.
That distinction saves a lot of unnecessary migrations: check whether the fix is a settings change before assuming it is a platform change. It frequently is, it takes a minute, and it costs nothing in customer confusion.
Six steps, roughly an afternoon.
Step five is the one that prevents switching twice. A requirements list written before you look at options is a specification. One written afterwards is a description of whatever you liked the look of.
Step six matters because simple products work everywhere. The cake with three sizes, four flavours, a lead time, and a per-day cap is what actually separates platforms.
There is a seventh step worth adding if you are genuinely uncertain: run the new platform in parallel for one real week rather than deciding from a demo. Take your actual orders through it alongside whatever you use now, and compare the two on the things that matter: how long the pick list took to produce, whether the caps held, and how many orders arrived off-platform anyway. A trial covers exactly that window, and one real week beats any amount of feature comparison.
If your requirements list is mostly about collection days, per-location cutoffs, and caps that reset weekly, Homegrown is $10 a month billed annually with 0% commission and 2.9% plus $0.30 processing published up front, and it handles pickup at each place you sell with its own schedule and cutoff, local delivery with a radius and a route, and sales tax calculated, filed, and remitted in all 50 states. The honest bounds: it does not ship nationally, there is no point-of-sale, no drop countdowns, and it is not a website builder. If your list includes any of those, other platforms do them and it does not. You can test your hardest product in a trial rather than your easiest, which is the only comparison that tells you anything.
Worth putting numbers on, because inertia is the default and it is not free.
At 30 orders a week with a workaround-heavy setup, the reconciliation and manual stock updates run to roughly an hour a week, or 50 hours a year. An oversell once a month costs a refund, a remake, and a customer who is slightly less likely to return. And a percentage model past its crossover can quietly cost several hundred dollars a year against a flat plan.
None of that appears on an invoice, which is exactly why it persists. USDA's Economic Research Service work on food markets and prices is a reasonable reminder that direct-to-consumer margins are not generous enough to absorb costs nobody is counting.
Our guides to growing a cottage food business, growing beyond your personal network, and knowing when to walk away from a farmers market cover the same instinct applied elsewhere: decide on a threshold in advance, then act when it trips, rather than waiting for something to go badly wrong.
The SBA's guidance on managing your finances is a reasonable framework for tracking the costs that do appear on invoices, which are the easier half.
Every platform below shows the same four commercial facts, because a table that lists one platform's transaction fee and not another's is not a comparison. "Not published" means exactly that: the company does not state it publicly.
| Platform | The signal this platform triggers most | Subscription (annual) | Free trial | Platform fee | Card processing |
|---|---|---|---|---|---|
| Square Online | Cost multiplies once you add a second location | Free tier; paid from $29/mo per location | 30-day trial on paid plans | $0 platform fee | 3.3% + $0.30 free tier, 2.9% + $0.30 paid |
| Etsy | Fees scale with every sale, and the list is not yours | No subscription | n/a | $0.20 listing + 6.5% commission | 3.0% + $0.25 processing |
| Shopify | Paying for shipping features you never use | $29/mo Basic | 3-day trial, then $1/mo for 3 | 2% platform fee if not on Shopify Payments | from 2.9% + $0.30 processing |
| Hotplate | Your customer sees a surcharge at checkout | $0 | n/a | 5% + $0.55 platform fee, added to the customer | 2.9% + $0.30 processing (vendor) |
| Barn2Door | Priced for a farm several sizes larger than yours | $119/mo + $399 one-time setup | No free trial, demo only | $0 commission | 2.9% + $0.30 processing |
| Homegrown | No shipping, no POS, so outgrowing it looks like needing those | $10/mo billed annually | 7-day free trial | $0 platform fee (0% commission) | 2.9% + $0.30 processing |
Keeping a second list. If any orders live outside the platform, you are running two systems and paying for one, with two stock counts and a pick list that is always incomplete.
When your sales pass the crossover against a flat plan. A 3% model costs more than a $144-a-year subscription above roughly $4,800 in fee-bearing sales, and a 5% plus 55¢ model costs $864 a year at 40 orders a month of $25.
If it has happened twice for the same reason, yes. It means you need quantity caps that reset per day or per window, and a platform without them will not develop the feature because you needed it.
Usually not. At typical volumes every credible platform lands within about $50 a year of the others once processing is counted, and a switch costs a weekend plus a fortnight of customer confusion.
Write down what a replacement must do before you look at any candidate. A requirements list written first is a specification; one written afterwards describes whatever you liked the look of.
Your hardest product, not your simplest. Variants, lead times, and per-day caps are what separate platforms. A single simple item works everywhere and tells you nothing.
At 30 orders a week, roughly 50 hours a year in reconciliation and manual stock updates, plus monthly oversells, plus any percentage fees past their crossover. None of it appears on an invoice, which is why it persists.
Switch on a signal, not on a bad Saturday. The strongest one is keeping a second list, because that means you are paying for a system that is not doing the job, and it is the signal most vendors have quietly accepted as normal.
The two you can calculate today are the fee crossover and the tier you cannot justify. Write down the sales figure at which your current model stops being cheapest, check it once a season, and act when it trips. That converts a decision you keep deferring into a gate that fires itself.
And be honest about workarounds. One is normal. Three means you are operating the platform against its design, and the hours that costs are invisible right up until you add them up.
