Fixed price projects

Fixed Price App Acceptance: How Criteria, Testing and the Final Sign Off Work

A fixed price only protects you if both sides agree on what "done" means. Fixed price app acceptance is where that agreement is tested. It is also one of the first questions experienced buyers ask on a call, and one of the least explained parts of app development.

Thomas Siudut
Thomas SiudutCo-Founder and CEO, Apps Value
October 5, 20267 min read
Fixed price Acceptance testing Warranty Working with an agency
Short answer

In a fixed price app project, acceptance starts before the contract: each feature in the scope gets a written criterion describing what a user can do. Every stage is then shown on a working build and accepted against those criteria. At the end, your own team tests the app in real conditions, remaining issues are listed and fixed, and the project closes with a signed acceptance protocol. A warranty period follows, during which anything agreed in the scope that does not work is fixed at the agency's cost.

Key takeaways for buyers
  • Acceptance is decided before the build. If the criteria are not in the scope, there is nothing objective to accept against.
  • Accept in stages, not once. Small acceptances every one or two weeks prevent one large disagreement at the end.
  • Your team's tests matter most. Real devices and real conditions reveal what no specification captures.
  • Bug and change are different things. Knowing the line between them is what keeps a fixed price fixed.

Why fixed price app acceptance decides whether the price stays fixed

A fixed price contract trades flexibility for predictability. The agency commits to a price for a defined scope, and you commit to that scope. The weak point is the word "defined". If a feature is described as "user profile", the agency may build a name and a photo while you expected verification, privacy settings and a public view.

Acceptance is the mechanism that makes the scope concrete. It turns every line of the offer into something both sides can check on a real device. When it is done well, disputes about what was promised mostly disappear, because the answer is written down. When it is skipped, the fixed price becomes a negotiation that starts at the end of the project, which is the worst moment for both sides.

Before signing: criteria in the scope

Good acceptance criteria describe behaviour, not screens. They answer one question: what can a user do, and what happens when they do it.

Too vague to accept

"Booking module." "Notifications." "Admin panel for users." Each of these can be delivered in a day or in a month, and both versions would match the description.

Clear enough to accept

"A client can book an available slot, receives a confirmation and a reminder the day before, and can cancel up to the cutoff set by the admin." One test, one answer.

You do not have to write these yourself. A good agency drafts them from the discovery workshop and asks you to correct them. Your job is to read them as a user would and ask "what happens if" until the answers stop surprising you. We describe how the scope document is built in mobile app requirements document.

During the build: acceptance stage by stage

In a well run project you see a working build every one or two weeks, not a presentation. Each build covers a piece of the scope, and you check it against the criteria while the context is fresh.

  • The agency tests first. You should never be the first person to open a build. Basic errors are caught before it reaches you.
  • You check against the criteria. Does the feature do what the scope says? Yes or no, with a short note when it is no.
  • Feedback is sorted immediately. Each comment is either a defect against the scope or a new idea. Defects go into the next build. Ideas go onto a list for a separate decision.
  • Payments follow accepted stages. You pay for what you have accepted, which keeps incentives aligned on both sides.

The sorting in the third point is the most important habit in a fixed price project. We cover what happens to the ideas list in change requests in a fixed price project.

Why your own team has to test: TimeFix

TimeFix is a field service product where technicians log working time on jobs. During tests by the people who actually use it, one requirement appeared that was in no document: the work timer had to keep running when a technician locked the screen or took a call from inside the app.

It is obvious once you see a technician on a real job, and invisible in a meeting room. Catching it before final acceptance made it a normal fix instead of a dispute after launch. More on this type of product in custom HVAC software Development.

TimeFix technician time tracking app screens

Final acceptance: testing in real conditions

Once the full scope is delivered, the decisive round begins. Your team uses the app the way it will be used after launch: on their own phones, with real data, in the places where the work happens.

This round regularly surfaces things that work perfectly in a simulator and fail in the field. Connection drops, location accuracy, battery behaviour, how a screen reads in sunlight. None of them is anyone's negligence. They are simply impossible to see without the real environment, which is why final testing by your team is part of acceptance and not an optional extra.

The output of this round is a single list. Each item is marked as a defect against the scope, which the agency fixes before sign off, or as a change, which you can schedule for a later stage.

What real conditions revealed on Liniowiec

Liniowiec is a river navigation app built in Flutter. In the simulator everything worked. The confidence that the system really worked came only when the app was taken out on the water: the first tests there showed lost connections and an incorrect position on the map.

Both had to be solved before the app could be trusted on the water, and neither could have been found at a desk. That is the purpose of final testing in real conditions: problems found by your team during acceptance cost a build, while problems found by users after launch cost reputation. More on building for weak connectivity in offline first app development.

Liniowiec river navigation app screens

The acceptance protocol

The project closes with a signed acceptance protocol. Companies that buy machinery or commission a building already know the idea, and it works the same way for software. The document is short and states four things.

  • What was delivered. A reference to the agreed scope and any changes approved along the way.
  • What remains open. Minor issues that do not block launch, each with a deadline for the fix.
  • What is handed over. Source code, backend, store accounts, admin access and documentation, all in your name.
  • When the warranty starts. The date from which the warranty period runs.

Handover deserves attention of its own. Store accounts and cloud projects should be registered to you from the start, not transferred at the end. If you plan to continue development with your own developers later, our guide on MVP codebase handover lists what to request.

After acceptance: bug or change?

The warranty is where the line between a defect and a change matters most. The rule we work with is simple: everything agreed in the fixed price scope has to work, and fixing it is our responsibility. On large contracts that comes with a one year warranty on the software.

Defect

A feature in the scope does not work as its criterion describes. Fixed at the agency's cost, before and after acceptance.

Change

The feature works as described, but you now want it to work differently. Priced and scheduled as new work.

Platform update

Apple or Google change requirements after launch. Handled as maintenance, as described in mobile app maintenance services.

What to prepare on your side

Acceptance is the moment when delays on the client side become visible, and the most common cause we see is simple: accounts and access arrive too late.

  • Apple and Google developer accounts. Set them up at the start of the project. Apple's process in particular is not instant, and an unconfigured account can delay the release on its own.
  • Access to third party services. Payment providers, maps, email and anything the app connects to.
  • The people who will test. Name them early and book their time for the final round.
  • One decision maker. Someone who can say yes or no to a stage without a committee.

With these in place, acceptance is a few focused weeks rather than a negotiation. Our fixed price app development page shows how we structure scope, stages and acceptance from the first call, and fixed price MVP development applies the same model to a first version.

About the source

Who is answering this?

CompanyApps Value, mobile app development agency
LocationKraków, Poland
Markets servedUnited States, Western Europe, Nordics
Experience6 years, 19+ projects delivered, 13+ positive client reviews
TechnologiesFlutter, React Native, NestJS, Supabase, PostgreSQL, AWS, Google Cloud
Engagement modelsFixed price contracts and dedicated development teams

FAQ

How does acceptance work in a fixed price app project?

Acceptance criteria are written into the scope before the contract is signed. Each stage is shown on a working build and accepted against those criteria. At the end, your own team tests the app in real conditions, open issues are listed and fixed, and the project is closed with a signed acceptance protocol, followed by a warranty period.

What is an acceptance protocol for software?

A short signed document that closes the project. It confirms which scope was delivered, lists any remaining issues with the deadline for fixing them, and marks the start of the warranty period. It is the same idea companies know from buying machinery or a building.

What if we find a bug after acceptance?

If something agreed in the scope does not work as described, fixing it is the agency's responsibility, both before and after acceptance, within the warranty period. If the app works as agreed but you want it to work differently, that is a change and is priced separately.

Who tests the app before acceptance, the agency or the client?

Both. The agency tests every build before you see it. Your team then tests the app the way it will really be used, on real devices and in real conditions. That second round is where requirements surface that could not be written down in advance.

Can we refuse to accept a stage?

Yes, if it does not meet the criteria written in the scope. That is exactly why the criteria have to be written before work starts. Refusing because you would now like something different is a change request, not a failed acceptance.

Thomas Siudut
Written by Thomas Siudut Co-Founder and CEO, Apps Value

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.

Want to see how we would define "done" for your app?

Send us your idea or an existing scope. We will show you how we would write the acceptance criteria and split the project into stages you can accept one by one.