A small, well defined system usually lands between US$ 8,000 and US$ 25,000. A full platform, with several user roles and integrations, goes past that easily. But the enormous gap between the quotes you receive is almost never profit margin. It is a difference in interpretation.
Ask three vendors to quote the same system and you get numbers that are three, five, ten times apart. The first reaction is to assume someone is trying to take advantage. In practice, all three read the same brief and pictured three different products.
What actually drives the price
Screens are cheap. What costs money is the behaviour behind them.
Number of user roles
A system with one type of user is one thing. A system with an administrator, a manager, an operator and an end customer is something else entirely: four sets of permissions, four test paths and four ways for someone to make a mess. Each new role does not add. It multiplies.
Third-party integrations
This is where timelines blow up. Integrating with an ERP, a payment gateway or a tax system means depending on someone else’s documentation, on a sandbox that sometimes does not work, and on a support desk that answers in three business days. I have watched one badly documented integration eat more hours than three full screens.
Hidden business rules
This one is my favourite. The brief says “the system calculates the commission”. Then you sit down with the finance team and discover that commission changes by region, has an exception for legacy customers, is reversed when the order is cancelled in the same month, and the current spreadsheet contains one case nobody can explain. That is not a field. That is a module.
What happens when things go wrong
A prototype that only works on the happy path costs a fraction of a system that handles declined payments, connections dropped mid-upload and a user who clicked the button twice. Most of the cost of serious software sits in what the user never sees.
Why a fixed quote by email is a trap
When someone commits to a price based on a paragraph of description, one of two things will happen.
Either the vendor padded it heavily to protect themselves, in which case you pay for a risk that may never materialise. Or they did not, they will discover the real complexity halfway through, and from that point every request you make gets answered with “that is out of scope”.
Both endings are bad. The second is worse, because it ends with a half-finished project.
How to ask for a quote you can actually compare
Before sending the brief, write down:
- Who uses the system and what each of those roles needs to do.
- The main flow, start to finish. Something like “the customer orders, the sales rep approves, finance invoices, the customer receives the link”.
- What it has to talk to. Product names, not categories. Write “NetSuite”, not “our ERP”.
- How many people use it daily and at what hours. Ten users and ten thousand users are not the same software.
- What already exists. Spreadsheet, old system, paper process. Bring whatever is running today.
One page of that changes the conversation completely. A good vendor comes back with questions. A vendor who comes back only with a price did not read it.
Phasing is the honest way to spend less
The right question is rarely “what does all of it cost”. It is “what is the smallest thing that solves a real problem and pays for the next step”.
One client arrived asking for a complete management system and ended up starting with a single module: work order tracking, which was where the team lost the most time. It went live in six weeks, solved the most expensive pain and funded the three phases that followed. The complete system did get built, only it was paid for by its own return, and the scope was corrected by real usage rather than by the kickoff meeting.
Questions that always come up
Wouldn’t off-the-shelf be better? If your process matches the market, absolutely. Custom software earns its place when the process is your competitive advantage, or when no product fits without forcing the company to change how it works.
Why charge by the hour? Because on high-uncertainty work, a fixed price embeds risk, and you pay for that risk even when it never happens. Well defined scope can and should be fixed. Discovery cannot.
What about maintenance? Budget somewhere between 15% and 20% of the project value per year. Software is not a building you hand over. It is a system in use, with dependencies that change and business rules that evolve.
Need this solved at your company?
A twenty minute call is usually enough to tell whether it makes sense, and you talk straight to the engineer who builds it.