What Determines the Cost of Custom Software?
Business

What Determines the Cost of Custom Software?

Instead of a price list, here is the structure behind the price: which lines are expensive and why, how a quote is calculated, and how to compare quotes on the same scope.

Short answer

The cost of custom software is set by its business rules and exceptions, integrations, data migration, security and accessibility targets, hosting and post-launch maintenance, not by the number of screens. Most of it is engineering effort, with licences, hosting and maintenance added as ongoing costs. Compare quotes not by their totals but by whether they cover the same scope, assumptions and post-launch obligations.

What determines the cost of custom software?

The cost of custom software is set not by the number of screens but by the business rules and exceptions it must enforce, the systems it connects to, the data it must migrate, its security and compliance targets, and how it will be run after launch. Most of the cost is engineering effort: person-days spent on analysis, design, development, testing, deployment and project management. Third-party costs such as hosting and licences come on top, and so does maintenance, which recurs every year after launch.

That is why "how much does an order dashboard cost?" has no single answer. Two dashboards that look alike can differ completely: one has a single approval step and connects to nothing; the other needs three approval layers, delegation rules, an ERP integration and an audit log. The screens may be similar, but the work behind the second is far larger. This article gives no prices. It explains the lines a quote is built from, how the quote is calculated and how to compare quotes.

Which factors move the cost most?

The factors that move cost most are the ones not settled in discovery that surface later: exceptions, integrations and data. The table shows why each factor raises cost and the question to ask during discovery.

FactorWhy it raises costQuestion to ask in discovery
Business rules and exceptionsEvery exception means separate code, tests and failure scenariosWhat happens outside the normal flow: returns, partial approval, delegation, cancellation?
Roles and permission layersEvery role needs its own access checks and tests at screen and data levelWho sees what, who approves what, who can change what?
IntegrationsWhether an API exists, the quality of its documentation, a test environment and the other team's availability drive the scheduleDoes every system to connect have an API, a test environment and a named owner?
Data migrationCleaning, mapping and reconciling old data is a job of its ownHow much data moves, how clean is it, and who verifies it?
Security targetA higher verification level means more requirements and more testingWhich security level are we aiming for, and will there be a penetration test?
AccessibilityThe target level affects design, component choice and testingWhich WCAG level is the target?
ReportingEvery report is a data model, filters and validationWhich reports are essential in the first release, and which can wait?
Load and uptime expectationsConcurrent users and tolerance for downtime change the architecture and hostingHow many people work at once, and how long may the system be down?
Hosting and environmentsCloud or on premises, the number of environments, backups and monitoring set the running costWhere will it run, and how many environments are needed?
Mobile or offline useRequires a separate app, synchronisation and conflict rulesMust people work without a connection in the field?
Availability on the client sideDelays in decisions and testing turn into idle time for the teamWho decides, and who takes part in testing?
Documentation and handoverLetting another team take over requires documents and trainingWill source code, documentation and setup steps be handed over?

How do security and accessibility targets change the cost?

Security and accessibility are not items that are simply "included" or "excluded"; they are requirements with a chosen level, and if you do not write the level down, each vendor prices a different one. OWASP's Application Security Verification Standard (ASVS) 5.0 for web applications defines three levels. Level 1 is the minimum starting point and covers around 20% of the requirements. Complying with Level 2 means meeting around 70% of them. Level 3 is for applications that need to demonstrate the highest level of security. The standard says most applications should aim for Level 2 and recommends choosing the level by the application's sensitivity and its users' expectations. Stating the target level when you request quotes is the quickest way to see whether two vendors are pricing the same security work.

Accessibility works the same way. The W3C's WCAG 2.2 recommendation defines three conformance levels: A, AA and AAA. The target level affects the design system, component choices and the test plan, and deciding it before design rather than after the software is written saves work. A public customer portal and a small internal team tool may need different targets; what matters is that the target is written down before quoting.

How is a software quote built?

A quote is built by breaking the scope into work items, estimating effort for each, adding an allowance for uncertainty and adding third-party costs. The real difference between vendors is how openly these steps are written. A sound quote makes these layers visible:

  1. Scope breakdown: Modules, workflows and integrations as separate lines.
  2. Effort estimate: Person-days or person-weeks per line, by role (analysis, design, development, testing, deployment).
  3. Shared work: Project management, code review, test automation, environment setup, documentation and acceptance testing. If these do not appear, they have either been spread across other lines or will not be done.
  4. Uncertainty allowance: An explicit range or risk allowance for items that are not yet clear.
  5. Third-party costs: Hosting, licences, paid services (maps, SMS, email, payments) and whose account pays for them.
  6. Assumptions and exclusions: The conditions under which the quote holds, and what it does not include.

The "cone of uncertainty" from the software estimation literature explains why an uncertainty allowance is unavoidable. As Construx describes it, at the initial concept stage even skilled estimators can be off by a factor of four in either direction, a sixteenfold range between the highest and lowest estimate. The cone does not narrow by itself; it narrows only as decisions about scope, requirements and interface design remove variability. For a buyer the consequence is clear: a firm figure given before any discovery either carries a large risk allowance or will be renegotiated as the project goes on.

The pricing model also decides who carries the risk:

ModelWhen it fitsWhat the buyer should watch
Fixed scope, fixed priceThe scope is detailed and unlikely to changeThe vendor prices in the uncertainty; every change becomes a separate request and price
Time and materialsScope will take shape in discovery and priorities may shiftThe buyer controls the budget; regular effort reports and priority meetings are essential
Phased quoteDiscovery first, then a narrow first release, then further phasesThe buyer decides whether to continue after each phase; acceptance criteria must be written
Capped time and materialsFlexibility is needed, but so is a budget ceilingAgree in advance what leaves the scope as the cap approaches

What should you give vendors to get comparable quotes?

The most effective way to get comparable quotes is to give every vendor the same short needs document; the clearer it is, the smaller the uncertainty allowance in the quotes. You do not need a long specification. For most projects these headings are a sufficient start:

  • Business problem and success measure: What will the software change, and how will you measure it?
  • Users and roles: Who will use it, how many people, with which permissions?
  • Today's workflow: Current spreadsheets, forms, screenshots and a list of known exceptions.
  • Integration inventory: Systems to connect, their API status, test environments and owners.
  • Data: Where migrated data comes from, its approximate volume, sample records and whether it contains personal data.
  • Non-functional targets: Security and accessibility levels, concurrent users and tolerance for downtime.
  • Hosting constraints: Cloud or on premises, and where the data must be kept.
  • Schedule constraints: If there is a real deadline, the reason for it, such as a regulatory change or the start of a season.
  • After launch: Who will maintain it, and during which hours support is needed.

Sharing your budget range also helps: the vendor can suggest how to solve the same problem at different budgets, and what goes into the first release and what waits. The same document becomes the input to discovery, where any missing headings are completed together.

How should you compare quotes?

Compare quotes not by their totals but by whether they cover the same scope, the same assumptions and the same post-launch obligations. The lowest total is often the quote that leaves out the most. That is not a flaw, just a different assumption, but it has to be visible. Fill in this worksheet for every quote:

LineWhat the quote should stateWhat happens if it is missing
Scope and exclusionsList of modules and workflows; what is explicitly left outEvery unclear item later becomes a change request
AssumptionsWhether integrations are ready, who provides test environments, the state of the dataIf an assumption fails, schedule and budget change
Acceptance criteriaWhich test accepts each phase"Done" stays open to dispute
TestingAutomated tests, acceptance tests, load and security testsProblems are found in production
Security and accessibility targetASVS and WCAG levelsThe quotes may be pricing different work
Data migrationWhich data moves, verified by whomMigration comes back as a separate project
Hosting and accountsIn whose name servers and cloud accounts are openedAccess problems when you change vendor
Source code and IPWho owns the code and documentationHandover and extension become harder
Open-source licencesComponents used and their licencesLicence obligations surface later
Warranty and maintenanceScope of bug fixing after launch and what the maintenance agreement coversMaintenance becomes a separate, unexpected cost
Change managementHow scope changes are priced and approvedEvery change turns into a negotiation
Payment schedulePayments tied to phase acceptanceThe link between payment and delivery breaks

Once the worksheet is filled, put the empty lines to each vendor in writing and ask for the quote again on the same scope. For questions about exit, handover and intellectual property, the points in our guide to choosing a development partner apply to non-AI software projects too.

What costs do quotes usually leave out?

The costs a quote usually leaves out begin after launch: maintenance, hosting and operations, third-party licences and services, and your own organisation's time. Asking for them as separate lines at quote stage is how you avoid a surprise at the end of the first year.

  • Separate maintenance from operations: The international standard for software maintenance, ISO/IEC/IEEE 14764, defines the maintenance process and its types but leaves out operational work such as backup, recovery and system administration. Ask the two questions separately: who fixes bugs and applies security and dependency updates, and who runs the servers, backups and monitoring?
  • Hosting is not one number: In the cloud, cost follows usage. AWS's Well-Architected cost optimisation principles give the example of development and test environments used only during working hours on weekdays: stopping them when idle offers a potential saving of about 75% (40 hours instead of 168 a week). The number of environments, their running hours, backup retention, log volume and outbound data transfer are what really drive the hosting line.
  • Licences and services: Per-user components, commercial UI or reporting libraries, and map, SMS, email and payment services grow with usage. On-premises installations add database and operating system licences.
  • Open-source obligations: Open source is free of charge but not free of conditions. Section 13 of the GNU AGPL v3, for example, requires a modified version used over a network to offer its source code to those users. Ask for a list of components and their licences with the quote.
  • Your own time: The product owner's decisions, users' acceptance testing, data owners' verification and IT's access work do not appear in a quote, but they directly affect the schedule.
  • Exit cost: If the code, accounts and documents are not yours, changing vendor becomes a new project.

Hypothetical example: where does the gap between two quotes come from?

This example is hypothetical and contains no figures. A distributor receives two quotes for a dealer portal where dealers place orders that flow into the ERP. Quote A's total is clearly lower than Quote B's. Once the worksheet is filled in, the picture changes:

LineQuote AQuote BAction
ERP integrationOne-way transfer, assuming "the ERP API is ready"Two-way transfer with retries on failure and a reconciliation reportTell A in writing about the ERP's current state and the need for reconciliation
Data migrationExcludedMigration of active dealer and product dataAgree who is responsible for migration
Security targetNot statedASVS Level 2Ask both vendors to price the same level
TestingManual acceptance testingAutomated tests plus acceptance testingAsk which business rules automated tests will protect
HostingOn the vendor's account, for a monthly feeOn the client's cloud account, set up by the vendorCompare account ownership and exit terms
MaintenanceNot statedA separate maintenance agreement with written scopeAsk A for its maintenance scope and pricing method

Here, A's lower total is not a quality signal but a difference in scope. The buyer will still pay for part of what A leaves out: through another quote, through its own team's time, or through problems that appear after go-live. The fair comparison is to give both vendors the same scope, security target and hosting model in writing and ask for new quotes. B may still be more expensive, but you are now comparing the same work.

How can you reduce cost without lowering quality?

The lasting way to reduce cost is not to cut effort but to cut uncertainty and unnecessary scope:

  • Narrow the first release: A first release that runs the single most valuable workflow end to end carries less risk than one that does a little of everything.
  • Use ready-made components for standard needs: Building your own authentication, payments or notifications only makes sense with a real reason.
  • Open integrations early: Have test environment access and the other system's owner confirmed before the project starts.
  • Free up a decision-maker: Delays in decisions and testing become idle time, and idle time becomes cost.
  • Choose the security level by risk: Not every application needs the highest level, but the chosen level must be written down.
  • Run environments by usage: Stopping development and test environments outside working hours lowers hosting cost.
  • Keep a change allowance: New needs appear once users see the software; an allowance set aside at the start keeps every change from becoming a crisis.

If you are considering replacing an existing system, our application modernisation decision guide covers the cost and risk difference between rewriting and renewing in stages.

How Hatson Tech prepares a quote

We do not have a price list. The first meeting and discovery are free; in discovery we map the business rules, user roles, systems to connect and data. We then quote the pilot and each later phase as a written document showing scope, deliverables, acceptance criteria and the assumptions behind them. If the scope changes, the price changes only through a written amendment, and the open-source libraries used and their licences are listed separately. You can read more about how we work on our custom software development page. If you want to clarify scope before requesting quotes, we can work through the worksheet in this article together at the first meeting.

Key takeaways

  • Cost is driven by exceptions, integrations, data and quality targets, not by the number of screens.
  • A firm figure given before discovery either carries a large risk allowance or gets renegotiated.
  • Write down the security (ASVS) and accessibility (WCAG) level before asking for quotes.
  • Compare quotes on the same scope and assumptions, not on their totals.
  • Ask for maintenance, hosting, licences and your own team's time as separate lines.

Frequently asked questions

Why can't a vendor give a single price for custom software?

Because the difference between two similar-looking systems lies in business rules, integrations and data, not screens. Estimates are also very uncertain at the start: Construx describes estimates at the initial concept stage as possibly off by a factor of four in either direction. The uncertainty shrinks as discovery settles decisions.

Is fixed price or time and materials better?

If the scope is detailed and stable, a fixed price gives predictability, but the vendor prices in the uncertainty. If the scope will take shape in discovery, time and materials or a phased quote is fairer, provided there is regular reporting and written acceptance criteria.

Which costs continue after launch?

Maintenance such as bug fixes and security and dependency updates; operations such as servers, backups and monitoring; hosting; and licence and service fees that grow with usage. Ask for these as separate lines in the quote.

Is choosing the lowest quote risky?

Not in itself, but the lowest total is often the quote that leaves out the most. Ask for new quotes on the same scope, security target, data migration and maintenance assumptions, and compare those.

Does using open source lower the cost?

It often removes licence fees, but licence conditions still apply. The GNU AGPL v3, for example, requires a modified version used over a network to offer its source code to those users, so ask for a list of the components used.

Does Hatson Tech have a price list?

No. The first meeting and discovery are free; after discovery we give a written quote for the pilot and each later phase that shows scope, acceptance criteria and assumptions.

All articles