Short answer: a focused internal system that replaces spreadsheets for one team usually costs $30,000 to $70,000 from a senior team in a lower-cost region. A system with a customer portal, approvals and several integrations more often lands between $80,000 and $200,000, and a staged replacement of a legacy system starts near the top of that range and can go well past it. Domestic agencies in the US, UK, Canada or Australia typically quote two to three times those figures for the same scope. What moves your project within these ranges is rarely the screens. It is integrations, data migration, permissions and reporting.
About these numbers. Everything in this guide is a planning estimate built from typical effort and typical market rates. It is not survey data and it is not a BBR price list. Use it to check whether a quote is plausible and to decide what belongs in a first stage. A real quote needs a written scope and, for business software, a look at the systems and data involved.
The arithmetic, and why business software bends it
Every quote comes from the same formula:
Cost = effort (person-weeks) × blended weekly rate + contingency
How rates vary by region and team type is covered in our guide to MVP pricing and hourly rates, so it is not repeated here. The examples below use two reference points: $50 per hour, about $2,000 per person-week, for a senior studio in Central or Eastern Europe or Türkiye, and $150 per hour, about $6,000 per person-week, for a domestic US, UK or Australian agency.
The difference with business software is where the effort goes. A new product starts from an empty database and answers to nobody's existing habits. A business system starts from years of records, three other tools it must talk to, and a process with exceptions that only the people doing the work can describe. Those three things are why two quotes for "an order management system" can honestly differ by a factor of four.
Effort by building block
The figures assume an experienced team, a conventional web stack and a clean, standard interface. They include backend and front end together.
| Building block | Simpler case | Harder case |
|---|---|---|
| Discovery and process mapping | 1 person-week: one team, documented process | 2–3: several departments, undocumented exceptions, review of an existing system |
| Core workflow (records, statuses, forms, rules) | 4–10 for one workflow | 10–20+ for several modules, pricing or scheduling rules, calculations |
| Roles and permissions | 0.5–1: a few fixed roles | 2–5: per-site or per-record access, multi-step approvals, delegation |
| Audit trail | 0.5–1: who changed what and when | 1.5–3: field-level history, viewable by managers, retention rules |
| Each integration with an existing tool | 0.5–1.5: one-way, modern documented API | 2–5: two-way sync, or an older system reached by file export or database access |
| Data migration | 1–2: one clean source, one-off import | 3–8: several sources, duplicates, free-text fields, history, rehearsed cut-over |
| Reporting and exports | 1–2: a few fixed reports, CSV export | 3–6: management dashboards, filters, scheduled reports |
| Document generation (quotes, invoices, certificates) | 0.5–1.5: one or two PDF templates | 2–4: many templates, numbering rules, branding per entity |
| Notifications | 0.5–1: email on key events | 1.5–3: reminders, escalations, per-user preferences |
| Customer or supplier portal | 2–4: view status, upload documents | 5–8: self-service ordering, account management, messaging |
| Single sign-on with your company directory | 0.5–1 | 1–3 with automatic provisioning and group mapping |
| Interface design | 1.5–3 using a component library | 4–6 for many screens or a customer-facing portal |
| Infrastructure, staging, backups, monitoring | 1–2 | 3–4 with stricter security controls or on-premise constraints |
| Rollout and training | 1–2: single switch-over | 3–5: parallel running, several sites, staged retirement of the old system |
| Testing and project management | Add 20–30% to the total. Not optional. | |
Four of these rows deserve a closer look, because they are the ones that early estimates leave out or lowball.
Integrations
The cost of an integration depends almost entirely on the other system. Ask three questions before anyone estimates: does it have a documented API, is there a sandbox to test against, and does data flow one way or both? A one-way push of invoices to a modern accounting product is days of work. A two-way sync with an older ERP, where both sides can edit the same record, needs conflict rules, retries, an error log a person can read, and a way to replay failed messages. If integration is most of your project, a dedicated integration layer between the tools you already own may be all you need.
Data migration
Volume is rarely the problem. Cleanliness is. Duplicated customers, dates typed as text, statuses that changed meaning in 2019 and columns that one person used differently from everyone else all need a written rule. Budget for at least one full rehearsal on a copy of the data before the real cut-over. The cheapest decision available is often to migrate less: open records and two years of history, with the old system kept read-only for the rest.
Roles, approvals and audit
Every approval step and permission rule multiplies the states the system can be in, and every state needs a screen, a notification and a test. "Managers approve orders over $5,000" is simple. "Unless the manager is away, in which case their delegate approves, unless the delegate raised the order" is three more rules and a settings screen. Collect these exceptions during discovery, because they surface anyway and cost more later.
Reporting
Reports are how management judges the system, and they are consistently underestimated. List the reports people rely on today, including the spreadsheet someone rebuilds by hand every Monday. For a first stage, a clean CSV export plus three or four fixed reports is usually enough. A configurable report builder is an advanced feature and priced like one.
Three worked examples
1. Replacing the job-tracking spreadsheets at a 15-person service company
One workflow from enquiry to invoice, three fixed roles with a basic change history, a one-way push to the accounting product, import from the existing spreadsheets, a handful of reports, email notifications.
| Block | Person-weeks |
|---|---|
| Discovery | 1 |
| Core workflow | 5 |
| Roles and audit trail | 1 |
| Accounting integration (one-way) | 1 |
| Migration from spreadsheets | 1.5 |
| Reporting and exports | 1.5 |
| Notifications | 1 |
| Design | 2 |
| Infrastructure | 1 |
| Rollout and training | 1 |
| Subtotal | 16 |
| Testing and project management (+25%) | 4 |
| Total | 20 |
At $50 per hour that is about $40,000. At $150 per hour, about $120,000. Before spending either, check whether a configured off-the-shelf product or a no-code tool would do the job; our comparison of no-code platforms and custom development gives the decision rules.
2. Order system with a customer portal and an ERP connection
A distributor wants customers to place and track orders online, with customer-specific pricing, approval of large orders, a two-way connection to the ERP for stock and order status, and generated order confirmations.
Discovery: 2. Core workflow with pricing rules: 11. Customer portal: 4. Roles, approvals and audit: 3. Two-way ERP integration: 4. Accounting integration: 1. Migration of customers, products and price lists: 3. Reporting and document generation: 5. Notifications: 1. Design: 4. Infrastructure: 2. Rollout: 2. Subtotal 42; with 25% for testing and management (10.5), about 53 person-weeks. Roughly $106,000 at $50 per hour and $318,000 at $150 per hour.
This scope phases well. A first stage for internal staff only, with a one-way ERP feed (2 instead of 4), no portal and a lighter design effort (3 instead of 4) has a subtotal of 35 and a total of about 44 person-weeks, roughly $88,000 at the lower rate. The portal then follows once the order logic has been proven by your own team.
3. Staged replacement of a legacy system
A company runs on a fifteen-year-old desktop database application that one former employee understood. It covers three areas of the business, feeds the accounts, and holds all the history.
Discovery and review of the old system: 3. Three workflow modules: 18. Roles, approvals and audit: 4. Three integrations, one of them file-based: 7. Migration with history and two rehearsals: 7. Reporting: 6. Document generation: 3. Notifications: 2. Single sign-on: 1. Design: 5. Infrastructure and security controls: 3. Rollout with parallel running: 4. Subtotal 63; with 25% on top (15.75), about 79 person-weeks. Roughly $158,000 at $50 per hour and $474,000 at $150 per hour.
Nobody should buy this as one project. It is three stages, each replacing one module while the old system keeps running for the rest, and the quote for stage two should be revised using what stage one revealed. If the legacy system is a stalled custom build and not an old product, start with a code audit; see our guide to taking over an unfinished software project.
Total cost of ownership: custom build vs subscriptions
The fair comparison is over three to five years, with maintenance counted honestly. The arithmetic below is illustrative. Every input is an assumption; replace them with your own figures.
Assumptions: an off-the-shelf product at $60 per user per month plus $500 per month for the add-ons and automation tools needed to make it fit. Against that, a custom build of $90,000, hosting and services at $250 per month (40 users) or $400 per month (120 users), and maintenance at 18% of the build cost, $16,200 per year.
| 40 users | 120 users | |
|---|---|---|
| Subscriptions per year | 40 × $60 × 12 + $6,000 = $34,800 | 120 × $60 × 12 + $6,000 = $92,400 |
| Subscriptions over 3 years | $104,400 | $277,200 |
| Subscriptions over 5 years | $174,000 | $462,000 |
| Custom: build | $90,000 | $90,000 |
| Custom: running cost per year | $3,000 + $16,200 = $19,200 | $4,800 + $16,200 = $21,000 |
| Custom over 3 years | $147,600 | $153,000 |
| Custom over 5 years | $186,000 | $195,000 |
| Years to break even | $90,000 ÷ $15,600 ≈ 5.8 | $90,000 ÷ $71,400 ≈ 1.3 |
Read the left column carefully: at 40 users, in this example, the subscription is still cheaper after five years. Licence savings alone justify a build mainly when user counts are high or per-seat prices are steep. Three further points keep the comparison honest:
- The subscription includes a roadmap. The vendor ships improvements you do not pay extra for. With custom software, every new feature is your cost. If you expect steady change, add an annual improvement budget to the custom side.
- Subscription prices move. Vendors raise prices and move features between tiers. You do not control that, which is a risk on the subscription side that the table does not show.
- Labor is often the larger number. If three people each spend five hours a week re-typing data between tools, at a loaded cost of $35 per hour over 48 working weeks, that is 3 × 5 × $35 × 48 = $25,200 a year. Savings like this, along with fewer errors and faster turnaround, are usually the real case for custom software. They are also the hardest to estimate, so be conservative.
If the comparison comes out close, buying is normally the better choice. Owning software is a commitment, and a close call does not repay it.
How to phase the spend
- Paid discovery first. One to three weeks with access to the people, the systems and a data sample. The output is a staged roadmap and a fixed quote for stage one. It is the cheapest risk reduction in the whole project.
- Stage one: one workflow, one team, one integration. Choose the workflow with the most manual effort today. Import data once. Keep reports to exports and a few fixed views.
- Stage two: the connections. Remaining integrations, two-way sync where it is needed, approvals that stage one handled by email.
- Stage three: outward-facing parts. Customer or supplier portals, once the internal logic has been exercised by your own staff.
- Last: retire the old system. Full history migration and switch-off happen when the new system has run a complete business cycle, including a month-end or a year-end.
Stages with a written scope suit a fixed price. Open-ended improvement work after rollout suits a monthly arrangement. The trade-offs are set out in fixed price versus time and materials.
Where business software budgets are wasted
- Automating a process that nobody has agreed on. The software then encodes an argument.
- Rebuilding accounting, payroll, email or a CRM when the need was to connect them.
- Migrating every record since the company was founded when two years would serve.
- A configurable workflow engine or report builder for a company with one workflow and six reports.
- Permissions modeled on the organization chart instead of on who actually needs to do what.
- A native mobile app for field staff when a responsive web page would work on the phones they already carry.
- Skipping discovery to save two weeks, then paying for the surprises at build rates.
Getting a quote you can rely on
- Describe the process as it runs today, including the exceptions, in one or two pages
- List every system the software must exchange data with, and whether each has an API
- Provide a sample of real data, anonymized if necessary, before the estimate and not after
- State user numbers by role and any audit or regulatory requirements
- Ask for the quote by stage, with integrations, migration, rollout and testing as separate lines
- Ask what is excluded, who hosts the system, and what monthly support costs after handover
If the system is mainly a browser-based application with clear requirements, the web application cost breakdown may match your project more closely. For smaller back-office systems, see how we approach internal tools and spreadsheet replacements. And if you would like BBR to estimate your system, the custom software development page explains how discovery, staging and pricing work.
