Pillar article
Mobile App Development Cost: How to Break a Quote Into Parts
Mobile app development cost is not something you read off a rate card — it is something someone calculated. The number on a quote is roles multiplied by hourly rates multiplied by hours, plus one-off items and costs that come back every month. That is why two studios can price the same idea several times apart and both figures can be honest. This article is not a price list: it is the method for breaking somebody else’s quote into parts and asking about the items missing from it.
Why two quotes for the same project differ several-fold
Because they price different scope, not the same product at two prices. The cost ranges published online diverge so widely between publishers that you cannot build any reference point out of them — everyone counts something different, and almost nobody shows how the hours turned into a number.
The differences come from four places: the scope (how many screens, how many user roles, whether there is an admin panel), what was included beyond coding, the hourly rate, and the buffer for risk. Before you compare amounts, you need to be sure both quotes describe the same product. The decision about what goes into the first release matters more here than negotiating the rate — it is settled by your MVP scope, not by the vendor’s rate card.
Mobile app development cost broken down into roles, rates and hours
The number on a quote is the sum of three layers: work billed by the hour, one-off items, and recurring costs. The first layer is the largest and it is always calculated the same way: role times rate times number of hours. Everything else in a quote is either an addition to that product or a consequence of it.
The hourly rate billed to clients by Polish software studios was quoted for 2026 by the price-aggregator sites cenauslug.pl and digitay.pl at an average of roughly PLN 170 net per hour, within a range of PLN 110-240/h depending on the city. That is aggregator data on service prices, not an industry study — treat it as an order of magnitude for the conversation, not as a binding benchmark. The same sources note that analyst, UX/UI and architect roles are sometimes priced higher than developers.
The rate billed to the client is not the same thing as a developer’s salary. It also carries the project manager’s and the tester’s time, holidays, recruitment, risk and the warranty on the code delivered. So a vendor quoting a lower rate is not necessarily cheaper — they may simply be counting fewer people into the rate and billing the rest as extras later.
The number of hours is likewise not the same thing as the project’s duration in the calendar, because work can run in parallel or sit waiting on decisions on your side. How long it takes to build an app depends on entirely different factors than how many hours a quote covers, which is why a shorter schedule almost never means a smaller invoice.
The work that is not coding and is in the budget anyway
In every app project a significant share of the hours goes to roles that never write production code. Requirements analysis, interface design, testing, project management and environment setup is work that has to happen whether or not anyone showed it in the quote.
A typical set of roles in a quote looks like this:
- analyst or product owner — writing down requirements, use cases, acceptance criteria,
- UX/UI designer — information architecture, wireframes, visual design, error states,
- developer — implementation, code reviews, fixes after testing,
- tester (QA) — test scenarios, testing on real devices, regression testing before every release,
- project manager — planning, communication, reporting, managing scope changes,
- DevOps — environments, releases to the stores, monitoring.
When a quote shows developer hours only, that does not mean the other roles will not be needed. It means they were either buried inside the rate or they will come back as additional work. The order in which these roles enter a project is covered separately in the guide on how to build a mobile app from idea to release.
Seven line items you will not see in the quote
These are the items that most often return as “additional work”, because nobody asked about them at the quoting stage. Walk this list for every quote you receive:
- Project management — planning, status meetings, reports, handling scope changes. If the line is missing, check whether it is added as a percentage on top of the team’s hours.
- Testing — not only running the tests, but also developer time for fixes and re-verification. A quote with no line for fixes is an incomplete quote.
- Data migration — moving accounts, order history or records out of your current system. In ERP and CRM rollouts, migration is often priced separately, alongside integrations and training.
- Integrations with your systems — every system on your side is separate work, and often separate licences and API limits too; the cost depends on what system integration looks like in your company and whether the vendor exposes a ready API.
- Tool and service licences — maps, payments, push notifications, e-mail and SMS delivery, analytics tools. Some of them bill by usage, so they grow along with your user count.
- Post-launch support — the warranty period, response time, ticket channel. A warranty on defects is not the same thing as building new features.
- Developer accounts and infrastructure — a Google Play Console account costs a one-off USD 25 and the Apple Developer Program costs USD 99 a year. On top of that come the server, the database, the domain, certificates and backups.
Fixed price, time and materials or fixed budget — which model protects you
The billing model decides who carries the risk of a wrong estimate. Three variants are used in Polish IT projects: fixed price, time and materials, and a hybrid called fixed budget — hourly billing with an upper budget cap that allows scope changes without separate orders (description of the models: mobitouch.net, 1 February 2024).
| Model | How the price is calculated | When it protects the client | What to watch for |
|---|---|---|---|
| Fixed price | One amount for a closed scope | Scope frozen before the start, grant-funded work, a rigid budget | Every change goes through a change order; a risk buffer sits inside the price |
| Time and materials | Hours times rate, billed in cycles | The scope will keep changing, the product is still taking shape | Budget risk sits with the client; requires review of the hourly reports |
| Fixed budget | Hours times rate with an upper cap | You want flexible scope but a hard ceiling on cost | Once the cap is reached you either trim scope or add budget |
Under fixed price, vendors add a buffer for the unforeseen to the quote — on 1 February 2024 mobitouch.net gave an order of magnitude of around 30%. That is not an industry norm and not a mandatory markup, only one publisher’s description of practice; treat it as a reason to ask outright what buffer sits inside your quote. The same source notes that fixed price is sometimes forced on grant-funded projects, because the budget in the application is fixed. Which of the two main models your contract should use, and the change-request and acceptance clauses each one needs, is worked through in fixed price vs time and materials.
How to word the request so the quotes can be compared
Comparable quotes go to whoever imposes the structure of the answer. Instead of asking for a price, ask for a breakdown by role, hours and one-off items, and for an explicit list of exclusions. The scoring weights, deadlines and required response format that make three replies line up row by row belong in a software RFP.
"Please provide a quote broken down by role, rate and hours. Please show separately: project management, testing and post-test fixes, data migration, integrations, third-party tool licences, developer account costs and post-launch support. Please include an out-of-scope section: what is deliberately not covered by this price. Please state what risk buffer the amount contains and how scope changes are billed."
One item never belongs in the price column at all: who owns the code once the invoice is paid is settled by the contract, and paying for the work does not transfer the rights by itself.
The rest of the quote’s quality depends on what you describe yourself: the business goal, the users, the feature list and the constraints — in other words, on how to write a software project brief. If you would rather work that out with someone before sending it, talk the project through with our team and then send the same description to every vendor in the same form.
The costs that only start after launch
An app generates costs even when nobody is developing it. Standard maintenance covers uptime monitoring, security updates, backups and handling tickets under an SLA; building new features is a separate budget and a separate contract, and mixing the two is how maintenance retainers quietly run out of hours.
On top of that comes work forced on you from outside. From 31 August 2026 Google Play requires new apps and updates to target Android 16 (API 36) — those are hours that land in the maintenance budget whether or not the owner changes anything in the app. Library and dependency updates, retired operating system versions and changes to store policies work the same way: they are not features, and somebody still has to pay for them.
A rule of thumb circulates online saying that maintenance costs 10-20% of the build cost per year. No study stands behind it that you could point to, so do not use it as a budget line. Break it into components you can actually count instead: hosting and database, monitoring, certificates and domains, usage-billed third-party services, the Apple Developer Program renewal at USD 99 a year, hours for technical updates and hours for handling tickets under the SLA.
How to compare two quotes that do not look alike
Reduce both to a single table of line items and compare row by row, never by the final figure. List every item from this article down the left-hand column — roles with hours, the seven hidden items, the billing model, the buffer, the recurring costs — and ask each vendor to fill in the same rows.
An empty cell matters as much as a filled one: it marks an item that is either out of scope or was never thought about at all. Once the table is complete, the difference between the quotes explains itself, and it usually comes down to one of three reasons: different scope, a different rate, or a different split of risk.
If the difference comes from scope, go back to the feature list and trim it to the scope of the first release instead of hunting for a cheaper vendor to build the same thing. If it comes from assumptions nobody wrote down, the problem sits in your request — fill in the brief for the software house and ask for a corrected quote on the same data. If it comes from a different split of risk, the supplier decides the outcome more than the figure does, and the seven questions in the guide on how to choose a software house tell you which one will absorb that risk instead of billing it back. A price you cannot break into line items is not information, it is only a number.
In this cluster
- Fixed price vs time and materials: what to put in the contract
Fixed price vs time and materials: who carries the estimate risk in each model, and the change-request, acceptance, and exclusion clauses your contract needs.
- How to write a software project brief: template and filled-in example
How to write a software project brief: the eleven sections, a filled-in example you can copy, evaluation criteria, and whether to state your budget.
- Software RFP: template, scoring, and a required response format
A software RFP does more than describe the project: it sets the scoring weights, the deadlines, and the response format that makes three offers comparable row by row.
- Who owns the code: what your contract with a Polish studio must say
Who owns the code you paid for? Paying the invoice does not transfer it. What the contract must contain under Polish law, and why B2B contractors need a separate transfer.
Checklist
Ask for the quote broken down by role and hours, not for a single number for everything.
Check whether project management, testing and post-test fixes are inside the price.
Insist on an out-of-scope section: what the vendor deliberately left out.
Ask directly about data migration, integrations with your systems and training.
Add up the recurring costs: hosting, monitoring, Apple Developer Program at USD 99 a year, Google Play Console at a one-off USD 25.
Agree the billing model and ask what risk buffer sits inside a fixed price.
Ask for the post-launch support terms: response time, SLA scope and what the SLA excludes.
Compare quotes row by row on the same list of line items, not on the final figure.
Frequently asked questions
- Why did two software houses price the same project completely differently?
- Because they priced different scope and booked it differently. One quote may include analysis, UX design, testing, project management and post-launch support, while the other covers coding only and treats the rest as additional work. Add to that a different hourly rate, different assumptions about the number of screens and integrations, and a different risk buffer. The two become comparable only once both break hours down by role and list their exclusions.
- What does out of scope mean and how do I get a list of exclusions?
- Out of scope is the list of things the vendor knowingly did not include in the price and that will be billed separately. To get one, ask in your request for a distinct exclusions section and for confirmation of whether the price covers project management, testing, data migration, integrations, tool licences and post-launch support. A missing list usually does not mean everything is included — it means the scope boundary will be settled during the project instead.
- Fixed price or time and materials — which is safer for the client?
- Fixed price gives you a predictable amount, but only with scope frozen before the start, because every change goes through a change order. Time and materials gives flexibility, but moves the budget risk onto you and requires regular review of the hourly reports. On 1 February 2024 mobitouch.net also described a middle option, fixed budget: hourly billing with an upper budget cap that allows scope changes without separate orders.
- How much does it cost to maintain a mobile app per year after launch?
- There is no single rate, because maintenance is the sum of specific items: hosting and database, uptime monitoring, backups, library and dependency updates, the Apple Developer Program renewal at USD 99 a year, and handling tickets under an SLA. Add the work the stores force on you: from 31 August 2026 Google Play requires new apps and updates to target Android 16 (API 36). The rule of thumb repeated online says 10-20% of the build cost per year, but no study stands behind it — count your own line items.
- Should I state a budget in the request for proposal?
- Yes, a budget range usually helps both sides. The vendor can then propose scope that fits the amount instead of guessing, and you immediately see who can work within your constraints. Without a stated budget you will receive quotes with wildly different scope, and comparing them takes longer than the conversation about money would have.
- Is a freelancer cheaper than a software house?
- A freelancer's hourly rate is usually lower, but the comparison only makes sense once you add the roles a studio includes in its price: analysis, UX design, testing, project management and cover for illness or holidays. On a small, well-described scope a freelancer is often genuinely cheaper, not just cheaper on paper. On a project with integrations and many dependencies the coordination cost comes back to you, so the deciding factor is not the rate but who carries the risk of work continuity.
Sources and methodology
These links lead to primary sources and the rules we use to prepare and update our material.
- Apple Developer Program — enrollmentaccessed: 2026-08-14
- Google Play Console — developer registrationaccessed: 2026-08-14
- GESEL.IO editorial policy