Where the budget actually goes on a custom software project, why quotes vary so widely, and how to tell a real number from an optimistic one.
Ask five Canadian development shops to quote the same project and you can get five numbers that differ by a factor of ten. That isn't because four of them are trying to overcharge you. It's usually because they've each assumed a different project — and the cheapest quote is frequently the one that assumed the least.
What you're actually buying
A custom software quote is not a price for code. Writing the code is often less than half of it. You're also paying for working out what to build in the first place, designing screens people can use without training, testing it against the ways real users will break it, deploying it somewhere reliable, migrating whatever data already exists, and being able to reach someone when it stops working at 4pm on a Friday. A quote that only priced the code will meet the rest of that list later, and you'll pay for it then instead.
The four things that move the number
First, how many distinct jobs the software does. One workflow done well is a fraction of the cost of five, because each additional one carries its own design, build, edge cases, and testing. Second, whether it needs accounts and permissions — the moment two kinds of user see two different things, you've added authentication, roles, and a whole category of security work. Third, how many outside systems it talks to, since every integration means somebody else's API, their rate limits, and their outages. Fourth, how much existing data has to come across, which is the item most often left out of a quote and occasionally the largest single piece of work in the project.
Rough shape of the ranges
A single focused tool — one internal workflow, one integration, one calculator that replaces a spreadsheet — is the small end, and it's usually the smartest place to start. A departmental system with accounts, a database, and reporting is meaningfully more. A full product with customer accounts, payments, notifications, and an admin side behind it is more again, and is properly quoted to scope rather than from a price list. We give a fixed number after a scoping call rather than publishing a table, because a table would be fiction for at least half the people reading it.
The backend is the part nobody quotes
Almost every underestimated project we've been asked to rescue was underestimated in the same place. The mockups showed screens, the quote priced the screens, and nobody priced the accounts, the database, the permissions, the notifications, the admin tools, or the integrations sitting behind them. For anything with real data in it, that invisible half is frequently the larger half. If a quote seems surprisingly low, this is the first place to look — ask specifically what backend work it includes.
Why the cheapest quote is often the most expensive
A low fixed price and a vague scope is not a bargain, it's a deferred argument. The work that was assumed away comes back as change requests, and change requests are priced without competition because by then you can't easily leave. The pattern is familiar enough to be predictable: an attractive initial number, a series of small additions, and a total well above the quote you turned down. Choosing a partner on track record rather than price is the cheaper decision more often than not.
Offshore, agency, or small studio
Offshore rates are genuinely lower and the work can be genuinely good, but you're paying for that gap somewhere — usually in time zones, specification overhead, and the fact that ambiguity gets resolved by guessing rather than by asking. Large agencies bring process and depth, and you pay for the account managers and the junior team who'll actually write it. A small studio gives you the people who scoped it doing the building, which is efficient right up until they're too busy. There's no universally correct answer, but there is a correct question: who specifically will write this, and what else are they working on while they do?
The recurring costs
Software has a running cost and it's better to plan for it than discover it. Hosting and infrastructure for a typical business application are modest — smaller than most people expect. Third-party services you depend on, like payments or messaging, charge their own fees. And someone has to maintain it: dependencies age, platforms change their rules, browsers and phones update. Budgeting nothing for maintenance doesn't avoid the cost, it just converts it into a larger emergency later.
How to get a number you can trust
Bring the problem rather than the solution. “Invoicing takes my office manager two days a month and we've billed the wrong amount twice this year” produces a far better quote than “we need an invoicing system,” because it lets whoever is quoting propose something smaller and cheaper if smaller and cheaper would work. Ask what the quote excludes, not just what it includes. Ask who owns the code and the accounts at the end. And ask for something live that they built — not a mockup, a URL you can open.
For what it's worth, that's how we run it: a free scoping call, a written fixed price for an agreed scope, and a working build every week so you're never guessing where it stands. If you're weighing a project in the GTA, a Brampton software development team is a half-hour conversation away from giving you a real number.
Xandar Labs is a software development company in Brampton, building custom business software, internal tools, and customer portals for companies across the GTA. See how we approach custom software, or the software we've shipped.