Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
Hiring & Budgets

How We Price a Custom Software Project

Last updated:

What we count

An estimate is not a feeling. We break the scope into components, estimate each in engineer-days, apply a contingency for the parts with genuine unknowns, and add design, QA and project overhead as percentages of the build.

The four things that move the total most are rarely the ones clients expect. It is almost never the number of features.

  1. Distinct screens — each one needs design, build, states and tests
  2. Integrations — every external system is an unknown with its own failure modes
  3. Data migration — driven by quality, not volume
  4. Roles and permissions — three roles is roughly twice the work of one

Why integrations cost more than they look

A feature we build entirely ourselves is predictable: we control the code, the data and the tests. An integration is a negotiation with something we do not control, and the cost is dominated by its failure modes rather than its happy path.

Rate limits, partial failures, silent schema changes, sandbox environments that behave differently from production, authentication that expires at inconvenient times. A “simple” integration with a well-documented modern API might be two days. The same integration with a legacy system and a PDF for documentation can be three weeks, and there is no way to know which one you have without looking.

The honest estimate for an integration with a system we have not seen is a range with a spike attached. Anything else is a guess dressed up as a number.

The data migration multiplier

Migration cost tracks data quality, not row count. Moving five million clean, consistent rows is a scripting exercise. Moving forty thousand rows accumulated over twelve years across three systems, with free-text fields where an enum should be and duplicates nobody agrees are duplicates, is a project.

  • Are there duplicates, and does anyone agree on the rule for merging them?
  • Do required fields have values in every historical record? (They never do.)
  • How many date formats are in the date column?
  • Are there records referencing entities that no longer exist?
  • Does anyone still need the data from before the last system change?

We look at real data before pricing this component. When a client cannot provide it, we price a short investigation first rather than guessing.

Rough bands, honestly stated

Shape of projectTypical rangeTypical duration
Automation of one process, one integration£6k–£15k3–6 weeks
Internal tool, 6–12 screens, 2 integrations£18k–£45k8–14 weeks
Customer-facing web app with accounts and payments£35k–£90k12–20 weeks
Mobile app, two platforms, with a backend£45k–£120k14–24 weeks
Platform replacing a legacy system, with migration£80k–£250k+6–12 months

These are bands, not quotes. A project at the bottom of a band and one at the top usually differ by integration count and data quality rather than by ambition.

How to make it cheaper without making it worse

The only reliable lever is scope, and the best cut is almost always the same one: build for one role first. A system that serves admins properly and everyone else later costs far less than one that serves three roles adequately from day one.

  • Ship one user role, add the others once the core is proven
  • Defer reporting — export to a spreadsheet in v1 and build dashboards when you know which numbers people actually look at
  • Integrate with one system now, the rest after launch
  • Migrate two years of history rather than twelve
  • Use a component library rather than fully bespoke design

What does not work as a cost-saving measure: skipping tests, skipping the architecture week, and cutting QA. All three save money in the quote and cost more in the first quarter of real use.

Where our pricing comes from

We run a UK company with an engineering office in Lahore. That structure is why our day rate sits below a comparable London studio while the engineering is done by permanent staff rather than a marketplace contractor.

We say it plainly because clients find out anyway, and because it explains something real about the quote rather than leaving them to guess whether a lower number means a lower standard.

Frequently asked questions

Why do quotes for the same brief vary so much between agencies?

Usually because they scoped different things. Compare exclusions before comparing prices — the cheapest quote is frequently the one that left migration and testing out.

Do you offer payment in stages?

Yes. Payment is tied to milestones, typically 25% at kick-off and the rest against deliverables you can verify.

Can you work to a fixed budget?

Often, by cutting scope to fit rather than quality. Tell us the number early and we will tell you honestly what fits inside it.

Are your estimates in pounds or dollars?

We quote in GBP, USD, EUR or CAD depending on where you are. The work and the price are the same; only the currency changes.

Keep reading

Want a fixed price you can budget against?

Tell us what the process looks like today. Scoping is free, the specification is yours either way, and the price we quote is the price you pay.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

Custom Software DevelopmentBusiness Automation