Two apps with the same feature list can be priced twice apart. The difference is almost never the list of screens. It is scope depth, the systems the app has to talk to, and how much of the product still has to be decided during the build.

Cost is set by scope depth rather than feature count. Six things drive it: how many distinct user roles the app serves, how many external systems it connects to, how much of it must work offline, how much custom design it needs, how heavily it must be tested, and how much of the product is still undecided when work starts.
Most first quotes are built from a feature list, and a feature list hides all six. "Bookings" can mean one provider taking reservations on a fixed schedule, or a marketplace where hundreds of providers hold overlapping slots across time zones. Same word, same wireframe, entirely different build.
The useful way to read a quote is to ask what the number assumes. A price is only a price once the assumptions under it are written down. That is also why our own estimates are fixed price after a scoping phase rather than fixed price on a first call.
We estimate every project against the same six layers. Product definition, design, mobile development, backend and integrations, quality assurance, and delivery. Change any one layer and the total moves, which is why identical feature lists produce different prices.
User roles, workflows, edge cases, and the rules the business actually runs on. Cheap to do before the build, expensive to discover during it.
Biggest swing factor: how well the operation is already documentedCost depends on how much is custom. A clean product built on platform patterns is a fraction of a brand-led interface with custom components and motion.
Biggest swing factor: custom components versus system patternsThe largest single layer in most builds. Driven by the number of states per screen rather than the number of screens.
Biggest swing factor: offline behaviour and role based permissionsData model, API, admin tooling, and every system you do not control. Integration cost is dominated by the other side's documentation and sandbox quality.
Biggest swing factor: legacy or undocumented systemsDevice coverage, regression passes before each release, and store review preparation. Scales with the number of roles and with anything money touches.
Biggest swing factor: payments, subscriptions and regulated dataRelease pipeline, store submissions, environments, monitoring, and the coordination around all of it. Small as a share, but never zero.
Biggest swing factor: number of environments and release cadenceProduct definition and delivery are the two layers buyers most often assume are free. They are not free anywhere. They are either paid for in a scoping phase or paid for later, in change requests, at a worse rate of progress.
In our projects the five drivers that change a quote the most are user roles, offline requirements, integrations with systems the agency does not control, real time behaviour, and the admin side that no one demos.
Design and QA behave like multipliers rather than line items. Backend cost tracks the data model and the integrations, not the number of mobile screens. Project management scales with how many people on the client side have to be coordinated.
Yes, but only on two of the six layers. One codebase in Flutter or React Native cuts platform development and long term maintenance, because a fix is written once instead of twice. Design, backend, integrations and QA barely move.
That distinction matters when you compare quotes. An agency that quotes native iOS and Android is pricing two builds of layer three. An agency quoting cross platform is pricing one. If both quotes carry the same product scope, the gap should show up in development and maintenance, not everywhere at once.
The saving is also durable in a way people underestimate. Every change after launch, every OS update, every small fix costs once instead of twice for the rest of the product's life. You can read the practical trade offs on our Flutter app development and React Native pages.
The costly features are the ones that add architecture rather than screens. Offline writes with synchronisation, real time tracking and chat, payments and subscriptions, multi role permissions, marketplace mechanics, and anything integrating with a system that was not designed to be integrated with.
Cheap features are the opposite: they read data, show it, and let a user submit something simple. Onboarding, profiles, content lists, notifications and settings are rarely where a budget goes.
A short worked example from our own delivery makes the point better than a list. On a field service time tracking product, the timer had to keep counting when a technician locked the screen or took a call from inside the app. That was not in the original assumptions. It came out of real use, and it touched background execution, state persistence and platform specific behaviour on both systems. One line in a requirements document, several days of engineering.
On an inland waterways navigation product covering around one thousand kilometres of rivers, the expensive part was not the map. It was that the app had to be useful with no signal for hours, which sets the architecture for everything else in the build.
For how these differences land in a first version specifically, see our breakdown of what an MVP costs by app type. For full production builds, the ranges sit on the mobile app development cost page and on pricing.
A development quote covers building the product. It does not usually cover the running costs of the services the product depends on, and those are yours from day one.
Cut roles and states before you cut features. Removing a whole user role, or deciding that version one is online only, saves more than removing three screens, and it does less damage to what the product is for.
Because they are pricing different assumptions, not different rates. One supplier may assume an online only product with platform design and a single user role, another may assume offline support, custom design and an admin panel. Compare the assumptions under each number before comparing the numbers.
The number of distinct user roles and workflows the app supports. Each role multiplies screens, permissions and testing, and roles are the thing buyers add most casually during a project.
A fixed price includes the risk the supplier carries for scope they agreed to deliver, so the headline number can look higher. What you get in exchange is a defined outcome and a defined budget. We explain the trade off on our fixed price app development page.
No. With a cross platform codebase, building for one platform saves testing, store submission and some platform specific work, but the product layers underneath are already shared. The saving is real and much smaller than half.
Accurate enough to decide whether to continue, and not accurate enough to sign. Before scoping we give a range with the assumptions written next to it. A firm fixed price comes after the scope, workflows and integrations are agreed.
The roles and their workflows, the systems you need to integrate with and their documentation, whether the app has to work without a connection, and who on your side can make decisions. Those four answers remove most of the risk premium in an estimate.

Thomas sets the company's long term strategy and direction, identifies market opportunities, and owns business development and client acquisition. He builds strategic partnerships that last beyond a single project. He works with clients from the first strategy conversation, so their business goals, not just their feature list, drive every decision.
Bring your feature list and we will tell you which parts of it drive the price, what we would cut from version one, and what a fixed price would need before it can be firm.
Book an intro call30 minutes, no preparation needed.