{"id":988625,"date":"2026-10-05T14:00:00","date_gmt":"2026-10-05T14:00:00","guid":{"rendered":"https:\/\/croncodestudio.com\/en\/?post_type=croncode_post&#038;p=988625"},"modified":"2026-09-08T22:58:43","modified_gmt":"2026-09-08T22:58:43","slug":"fixed-price-vs-retainer-for-app-work","status":"publish","type":"croncode_post","link":"https:\/\/croncodestudio.com\/en\/journal\/fixed-price-vs-retainer-for-app-work\/","title":{"rendered":"Fixed Price vs Retainer for App Work"},"content":{"rendered":"<div class=\"vgblk-rw-wrapper limit-wrapper\">\n<p>Fixed price buys a written increment. A retainer buys a week of a named team. They are commercial shapes, not moral values. The process essay about store gates is separate: <a href=\"\/en\/journal\/first-app-store-release-fixed-scope-vs-agile\/\">fixed scope vs agile<\/a>. This page is how money and change orders meet. Croncode LLC can invoice from a US entity. Work is done in Istanbul. We will not quote a fantasy Friday.<\/p>\n<blockquote class=\"croncode-kisa-cevap\">\n<p>Use fixed price when the first store increment is written. Use a retainer when you are buying weekly capacity after that increment. Mixing them without a rule is how disputes start.<\/p>\n<\/blockquote>\n<h2>What must be true for a fixed price to be honest?<\/h2>\n<p>A first job, a not-now list, platforms, languages, and who owns Apple. The packet: <a href=\"\/en\/journal\/what-to-send-when-requesting-a-software-quote\/\">what to send<\/a>. If those are missing, a number is a guess you will both regret. Thin MVPs still need those items: <a href=\"\/en\/journal\/when-an-mvp-is-too-thin-for-the-app-store\/\">MVP too thin<\/a>. AI extras need a fail-safe or they are not in the number: <a href=\"\/en\/journal\/how-to-scope-an-ai-feature-that-can-fail-safe\/\">fail-safe AI<\/a>.<\/p>\n<p>Choose the vendor model first: <a href=\"\/en\/journal\/software-studio-vs-freelancer-vs-agency\/\">studio vs freelancer vs agency<\/a>. iOS diligence: <a href=\"\/en\/journal\/how-to-choose-a-custom-software-studio-for-ios\/\">choose an iOS studio<\/a>.<\/p>\n<h2>When is a retainer the cleaner paper?<\/h2>\n<ol>\n<li>Version one is live and you need crash and review response. <a href=\"\/en\/journal\/crash-free-sessions-what-founders-should-ask\/\">Crashes<\/a>, <a href=\"\/en\/journal\/how-to-read-app-store-reviews-as-a-team\/\">reviews<\/a>.<\/li>\n<li>You have two tracks, store and client tool, and hours must be explicit. <a href=\"\/en\/journal\/small-team-multiple-products-how-a-lean-studio-structures-its-engineering-and-design-resources\/\">Lean hours<\/a>.<\/li>\n<li>Seasonal content will change copy without changing the object. <a href=\"\/en\/journal\/seasonal-content-for-consumer-apps\/\">Seasonal content<\/a>.<\/li>\n<li>You want founder-led support covered in the same week. <a href=\"\/en\/journal\/founder-led-support-in-the-first-users\/\">Founder support<\/a>.<\/li>\n<\/ol>\n<p>Retainers fail when they hide an infinite backlog. Write the weekly demo: <a href=\"\/en\/journal\/what-a-sprint-demo-should-show-a-client\/\">sprint demo<\/a>.<\/p>\n<h2>How do you mix them without lying?<\/h2>\n<table>\n<thead>\n<tr>\n<th>Layer<\/th>\n<th>Fixed<\/th>\n<th>Retainer<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>First store job<\/td>\n<td>Usual<\/td>\n<td>Only if discovery is the product<\/td>\n<\/tr>\n<tr>\n<td>Store promise<\/td>\n<td>Yes<\/td>\n<td>Change via a version<\/td>\n<\/tr>\n<tr>\n<td>Week-two experiments<\/td>\n<td>Poor fit<\/td>\n<td>Good fit. <a href=\"\/en\/journal\/retaining-users-in-week-two\/\">Week two<\/a><\/td>\n<\/tr>\n<tr>\n<td>Android later<\/td>\n<td>New fixed or new retainer<\/td>\n<td>Do not sneak it in. <a href=\"\/en\/journal\/when-to-build-android-after-ios\/\">Android<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Paywalls and privacy labels are store events even on a retainer: <a href=\"\/en\/journal\/in-app-paywalls-that-do-not-lie\/\">honest paywalls<\/a>, <a href=\"\/en\/journal\/who-owns-the-app-store-account\/\">account ownership<\/a>.<\/p>\n<h2>What should the invoice describe?<\/h2>\n<p>The increment name or the week dates, the people, and what was not done. People you may see: <a href=\"\/en\/team\/goktug-unver\/\">Goktug Unver<\/a>, <a href=\"\/en\/team\/yusufhan-sokur\/\">Yusufhan Sokur<\/a>, <a href=\"\/en\/team\/ozgur-ismet-ozkan\/\">Ozgur Ismet Ozkan<\/a>. Shipping: <a href=\"\/en\/journal\/how-croncode-ships-ai-consumer-apps-from-istanbul\/\">Istanbul shipping<\/a>. References: <a href=\"\/en\/journal\/how-to-check-istanbul-studio-references\/\">check references<\/a>.<\/p>\n<h2>What mistakes create a fight?<\/h2>\n<ul>\n<li><strong>Fixed price plus a living Figma:<\/strong> that is two contracts.<\/li>\n<li><strong>Retainer with no kill rule:<\/strong> you are renting hope.<\/li>\n<li><strong>Changing the privacy SDK list in silence:<\/strong> a store event.<\/li>\n<li><strong>Assuming a marketing site is in the app price:<\/strong> <a href=\"\/en\/journal\/when-a-wordpress-elementor-site-is-enough\/\">when a site is enough<\/a>.<\/li>\n<\/ul>\n<p>What we will not sell: a number with no job. <a href=\"\/en\/journal\/what-croncode-will-not-build\/\">Will not build<\/a>. Hire: <a href=\"\/en\/hire-software-studio\/\">hire<\/a>. Custom: <a href=\"\/en\/custom-software\/\">custom software<\/a>. Contact: <a href=\"\/en\/contact-us\/\">contact<\/a>. Journal: <a href=\"\/en\/journel\/\">\/en\/journel\/<\/a>. Home: <a href=\"\/en\/\">\/en\/<\/a>.<\/p>\n<h2>How do consumer apps show up in the commercial talk?<\/h2>\n<p>We can point at jobs, not at invented revenue. <a href=\"\/en\/app\/yourstyle-ai-stylist-outfit\/\">YourStyle<\/a>, <a href=\"\/en\/app\/numira-navigate-lifes-choices-with-numira\/\">Numira<\/a>, <a href=\"\/en\/app\/spylie-uncover-the-truth-with-spylie\/\">Spylie<\/a>, <a href=\"\/en\/app\/luviport-flawless-journeys-the-premium-experience\/\">Luviport<\/a>. Catalog: <a href=\"\/en\/journal\/what-croncode-builds-mobile-ai-human-centered\/\">what Croncode builds<\/a>. Handover of an old repo may be a short fixed discovery plus a retainer: <a href=\"\/en\/journal\/how-to-handover-a-codebase-to-a-studio\/\">handover<\/a>.<\/p>\n<p>Istanbul diligence still applies: <a href=\"\/en\/journal\/hiring-an-app-team-in-istanbul-what-to-check\/\">hiring in Istanbul<\/a>. Security before you sign: <a href=\"\/en\/journal\/security-questions-before-you-sign\/\">security questions<\/a>. Write what happens when the increment is done early. Unused retainer hours should not become a forced feature dump. Unused fixed-price time should not become a free second product. The leftover is a conversation, not a raid on the not-now list. Founders who treat leftover hours as a shopping cart will recreate feature creep with a nicer invoice.<\/p>\n<p>Put the overlap hour in the commercial paper if you are hiring Istanbul for a US founder. A retainer that only works at midnight is not capacity. It is a tax on sleep. Write the clock. Overlap is part of the price even when it does not appear as a line item.<\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>Is fixed price cheaper?<\/h3>\n<p>It is more predictable if the increment is real. It is more expensive if you pretend discovery is free.<\/p>\n<h3>Can I pause a retainer?<\/h3>\n<p>Write the notice period. A pause is a product decision. Crashes and deletion requests do not pause themselves.<\/p>\n<h3>Do you take equity instead?<\/h3>\n<p>That is a separate conversation. Do not hide it inside a fixed price for a store increment.<\/p>\n<h3>What if two founders want different commercial shapes?<\/h3>\n<p>Pick one on paper. We will not run two invoices for one fight. Send both versions labeled if you must, then choose.<\/p>\n<h3>Where do I start?<\/h3>\n<p>Send the job and the not-now list to <a href=\"\/en\/contact-us\/\">contact<\/a>. We will say which shape fits.<\/p>\n<\/div>\n<p><!-- .vgblk-rw-wrapper --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fixed price vs retainer for app work: lock a store-shaped increment for a number, or buy a weekly capacity when the job is still moving.<\/p>\n","protected":false},"featured_media":988626,"template":"","croncode_category":[48],"croncode_author":[47],"class_list":["post-988625","croncode_post","type-croncode_post","status-publish","has-post-thumbnail","hentry","croncode_category-studio","croncode_author-yusufhan-sokur"],"_links":{"self":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_post\/988625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_post"}],"about":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/types\/croncode_post"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/media\/988626"}],"wp:attachment":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/media?parent=988625"}],"wp:term":[{"taxonomy":"croncode_category","embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_category?post=988625"},{"taxonomy":"croncode_author","embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_author?post=988625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}