I turn down work for this reason more than any other, and it is the least awkward conversation I have. Telling someone their problem is already solved for €40 a month is a good afternoon: they keep their money, and they remember who told them.
So, honestly: most businesses asking for custom software should buy something instead.
Three times off-the-shelf wins outright
Your process is the standard process. Invoicing, payroll, email marketing, basic accounting, a shop selling physical products in the ordinary way. Thousands of companies have the same requirement, which is why mature products exist and why they are cheap. Building your own means paying to rediscover what everyone already knows, and then maintaining it alone.
The requirement is regulated and changes without you. Fiscal reporting rules, tax rates, statutory formats. A vendor with a compliance team tracks those changes and ships them. If you build it, that becomes your obligation forever, and it is the obligation that never ends and never adds a feature.
You are not sure what you need yet. If you cannot describe the workflow without saying "something like", buy the closest thing and use it for six months. You will learn more about your real requirement from being annoyed by a real product than from any amount of specification, and you will have spent a few hundred euro to find out.
Where it stops winning
There is usually a specific moment, and it is rarely a feature. Three signals, in order of how reliable they are:
Your process no longer fits their data model. The clearest one. You have a field being used for something it was not named for, a status that means two different things depending on who set it, or a rule enforced by a person remembering rather than by the software. The tool is now describing somebody else's business and your staff are translating between the two all day.
The workarounds have become the system. A parallel spreadsheet. An export, edited by hand, imported somewhere else. A colleague who is the only one who knows the order the steps must be done in. Each of these is a piece of software you already have - it is just made of people, and it costs a salary rather than a licence.
The per-seat maths turns. Slower and easier to compute. Four tools at €30 per user per month across thirty people is €43,000 a year, every year, rising. That sits squarely in the range where a platform that replaces all four pays for itself in the second year and is an asset rather than a subscription. Below ten people this almost never works out; above fifty it usually does.
What you give up either way
Both directions cost something, and vendors on both sides are quiet about their own side.
Buying costs you fit and control. You work the way the product works. The price rises and you pay it. A feature you rely on can be deprecated by someone who has never met you. Your data lives with them, and the export is usually worse than the import was.
Building costs you a larger amount at the start and the obligation to maintain it. Nobody else is fixing it at 2am. You need a person or a retainer, forever. And the thing genuinely nobody says: you have to make decisions. A product has made a thousand small choices for you, and building means making them yourself, which takes attention you currently spend on your actual business.
The middle answer, which is usually right
Most of the systems I build are not replacements for everything. They are the one part that is genuinely yours, wired to the bought products for the parts that are not.
Keep the accounting package. Keep the mailing tool. Build the thing that is your actual operation - the scheduling, the workflow your competitors do not have, the thing your staff spend eight hours a day inside - and integrate the rest. That is a smaller build, a shorter dependency on me, and it puts the custom work where it earns its money.
If you want to know what that costs, the ranges are in the note about what a platform actually costs. If you want to see the shape of it, the work page describes twenty-eight of them, including which part was hard.