<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel><title>Apptycoons guides</title><link>https://apptycoons.com/blog</link><atom:link href="https://apptycoons.com/blog/rss.xml" rel="self" type="application/rss+xml"/><description>Guides from the Apptycoons engineering team on AI agents, voice agents, mobile apps and fintech builds.</description><language>en-us</language><lastBuildDate>Tue, 27 Oct 2026 14:50:13 GMT</lastBuildDate>
<item><title>AI receptionist call routing: from demo to booked appointment</title><link>https://apptycoons.com/blog/ai-receptionist-call-routing</link><guid isPermaLink="true">https://apptycoons.com/blog/ai-receptionist-call-routing</guid><pubDate>Sat, 24 Oct 2026 12:00:00 GMT</pubDate><category>Voice agents</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>A receptionist demo answers the phone. A production voice agent has to book the slot. How a front agent routes each call so the agents behind it stay narrow.</description><media:content url="https://apptycoons.com/blog/ai-receptionist-call-routing/opengraph-image?328c10eb10d50f41" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> In production, an AI receptionist works best as a front agent with one job: find out what the caller wants and hand the call to an agent built for that request. The agents behind it stay narrow, so the booking agent only books, and only after the caller confirms every detail read back.</p>
<p>A receptionist demo answers the phone, greets the caller and handles a couple of questions. A production voice agent has to book the slot. On the dealership voice agents we built for Innovative AI, that meant settling four things on one call: the exact vehicle, the right service out of the 100–200 on that vehicle’s menu, an open time and a way to get the car in.</p>
<div><span>99%</span> <span>of callers who went ahead with booking through the agent were booked, by our own count, on the Innovative AI build. Calls that weren’t bookings don’t count toward it.</span></div>
<p>The gap between those two is mostly routing. The demo puts one agent on the line and asks it to do everything. The production system puts a receptionist agent in front whose only job is to work out what the caller wants, and hands the call to an agent built for that job. This guide covers how that split works, what booking needs before it can happen, and when a phone tree or one more person at the front desk is the better buy. It is the call design we use for <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">custom AI voice agents and AI receptionists</a>.</p>
<h2>What is call routing for an AI receptionist?</h2>
<p>Call routing for an AI receptionist is the step where the agent works out the caller’s intent and sends the call to the path that handles it. That path can be another agent, a person or a callback queue. Routing is a classification problem, and it is the first decision on every call.</p>
<p>Anthropic’s guide to building agents describes the same pattern under the name routing: it “classifies an input and directs it to a specialized followup task”, and works well “for complex tasks where there are distinct categories that are better handled separately”. Its first example is customer service queries sent to different downstream prompts and tools. Agent frameworks build it in. OpenAI’s Agents SDK, for example, exposes each handoff to the model as a tool, so a triage agent can transfer a caller to a billing or refund agent.</p>
<p>A keypad menu routes too, but the caller does the classifying by pressing 2. An AI receptionist asks an open question (“How can I help?”) and does the classifying itself.</p><h2>Why a demo receptionist breaks on a real phone line</h2>
<p>A demo receptionist breaks because one agent carries every instruction, every tool and every edge case at once. With two call types that holds up. With five, the prompt mixes booking rules with status lookups and policy answers, and a change for one call type can break another that you didn’t retest.</p>
<p>Real phone lines carry several kinds of calls. A dealership line carries service bookings, questions about a car already in the shop and calls about everything else. Each needs different data and ends differently: a booking ends with an appointment written to the scheduler, a status question ends with an answer, and a complaint ends with a person.</p>
<p>Splitting the work lets you treat each call type as its own small system:</p>
<ul>
<li><span><strong>Shorter instructions.</strong> The booking agent only carries booking rules, so it never has to decide whether the caller is booking at all.</span></li>
<li><span><strong>Fewer tools per agent.</strong> An agent that can only read the menu and write appointments can’t call the wrong system.</span></li>
<li><span><strong>Tests per call type.</strong> You can replay a week of booking calls against the booking agent alone and see what changed.</span></li>
<li><span><strong>Failures you can locate.</strong> When a call goes wrong, the transcript shows whether the route or the task failed.</span></li>
</ul>
<p>The cost is one more step on every call. The handoff has to be fast and invisible to the caller, which is a latency question as much as a design one; our guide to <a href="https://apptycoons.com/blog/voice-agent-latency?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">voice agent latency</a> covers that budget.</p>
<h2>How the front agent routes a call in production</h2>
<p>On the Innovative AI system, a receptionist agent takes every inbound call first. Its only job is to work out what the caller wants and hand the call to the agent built for that. The agents are still live in production.</p>
<p>We built the receptionist around three paths: book a service, check on a car already in the shop, or something else. By the time the booking agent speaks, the intent is settled. For a phone number the system already knows, so are the caller’s name, car and last service, which are saved against the number from earlier calls.</p>
<div><p><em>The split we recommend, modeled on that build: what the front agent does and what it leaves to the agents behind it</em></p>
<table><thead><tr><th>Step</th><th>Front agent (receptionist)</th><th>Agent behind it</th></tr></thead><tbody><tr><th>Greeting</th><td>Answers and asks what the caller needs</td><td>Not on the call yet</td></tr><tr><th>Intent</th><td>Picks one path, or asks one clarifying question</td><td>Receives the settled intent</td></tr><tr><th>Caller record</th><td>Arrives with the call when the number is already known</td><td>Confirms the record instead of asking again</td></tr><tr><th>Task</th><td>Doesn’t book, look up or answer policy questions</td><td>Does one job with its own tools</td></tr><tr><th>Unclear or out of scope</th><td>Sends the call to a person or a callback with a summary</td><td>Hands back if the request turns out to be something else</td></tr></tbody></table></div>
<p>Three rules we recommend for any front agent:</p>
<ul>
<li><span><strong>Ask rather than guess.</strong> If the first sentence could mean two things, ask one short question. A wrong route costs the caller their first minute.</span></li>
<li><span><strong>Confirm a saved caller, don’t assume one.</strong> A phone number identifies a line. Households share phones and cars, so a quick “Is this about the Camry?” beats a booking for the wrong vehicle.</span></li>
<li><span><strong>Pass a summary with every handoff.</strong> Whoever takes the call next, agent or person, should start from what the caller already said.</span></li>
</ul>
<p>The case study on <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">Innovative AI’s dealership voice agents</a> covers the rest of the system, including its outbound calls.</p>
<h2>What a booking needs before it exists</h2>
<p>A booking exists only when the agent has every field the scheduler needs and the caller has agreed to them. On the Innovative AI build there were four, collected in order, and the booking agent wrote nothing until all four were settled.</p>
<ol>
<li><span><strong>The exact vehicle.</strong> Year, make, model and trim, because the service menu depends on the car.</span></li>
<li><span><strong>The right op code.</strong> The caller describes the job in their own words, and the agent picks the matching entry out of the 100–200 services on that vehicle’s menu, each with its own op code.</span></li>
<li><span><strong>An open slot.</strong> The agent checks the requested time against the dealership’s open appointments and offers another time if it is taken.</span></li>
<li><span><strong>A transport choice.</strong> Drop-off (with a shuttle or loaner if needed), pickup by the dealership or mobile service at home, with an address asked for only when the option needs one.</span></li>
</ol>
<p>Before booking, the agent reads the service back and goes on only once the caller agrees. A wrong op code books the wrong job, so that confirmation is in every booking.</p>
<p>This is where a demo and a production agent differ most. A demo can say “You’re all set for Tuesday” without anything behind it. A production agent can only say it after the scheduler has accepted the appointment. Our guide to <a href="https://apptycoons.com/blog/ai-service-scheduling-dealerships?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">AI service scheduling for dealerships</a> walks through each of the four steps from the caller’s side, including what to do when no menu entry matches.</p>
<p>Other businesses have their own four fields. A clinic needs the patient, the visit type, the provider’s open slot and the location. A field service company needs the address, the job, the window and the access details. Write the list down before any prompt: it decides what the booking agent asks and in what order.</p>
<h2>Where routed calls still fail</h2>
<p>Routing narrows the failures but doesn’t remove them. On the Innovative AI build, the bookings that didn’t complete failed for three reasons: requests too odd or ambiguous to match to a service, accents and pronunciation the speech recognition misheard, and heavy background noise at the caller’s end.</p>
<p>None of those is a routing failure, but routing decides what happens next. A narrow booking agent knows when it is stuck, because it is stuck on one question: which service the caller means. That makes a clean exit easy to design. We recommend that after one failed clarification the agent offers an advisor or a callback and passes on what it already has, so the call ends with a next step instead of a hang-up.</p>
<p>Track routing separately from booking after launch. Count calls by the path the front agent chose, the handoffs to people by reason, and calls that were sent to one agent and handed back. A rising hand-back rate means the front agent is guessing.</p>
<h2>When a phone tree or better staffing wins</h2>
<p>A phone tree wins when callers need a destination, not an outcome; better staffing wins when the calls need judgment and the volume fits in business hours. An AI receptionist earns its build cost when many callers need something done, such as a booking, at hours or volumes your staff can’t cover. We build the third option, so weigh this table with that in mind.</p>
<div><p><em>Phone tree, more staff or an AI receptionist: how we would decide</em></p>
<table><thead><tr><th>Your calls look like this</th><th>Better fit</th><th>Why</th></tr></thead><tbody><tr><th>Callers want a department, extension or mailbox</th><td>Phone tree (IVR)</td><td>Fixed destinations need no understanding; keep the menu to one or two levels</td></tr><tr><th>A few call types, all answered in business hours, and the desk keeps up</th><td>Staff, maybe a better schedule</td><td>Nothing is being lost; automation adds cost and a new failure mode</td></tr><tr><th>Calls need judgment, negotiation or empathy (complaints, disputes, sensitive news)</th><td>Staff</td><td>A person handles these better; an agent should route them, not answer them</td></tr><tr><th>Most calls are bookings or status checks against a system you can connect</th><td>AI receptionist with routing</td><td>The task is repeatable and the data exists to complete it on the call</td></tr><tr><th>Bookings arrive after hours or several at once</th><td>AI receptionist with routing</td><td>A single receptionist covers one call at a time, in staffed hours only</td></tr><tr><th>Your scheduler has no way for an agent to read slots and write bookings</th><td>Staff or IVR for now</td><td>An agent that can’t book is only a slower message taker</td></tr></tbody></table></div>
<p>GetVoIP’s comparison of the two makes a similar point from the IVR side: for pure high-volume transactional sorting, it says, “a menu is faster and cheaper than any conversation.”</p>
<p>Staffing is easy to size. The Bureau of Labor Statistics puts the 2025 median pay for receptionists at $18.27 an hour. A full-time receptionist covers about 40 of the 168 hours in a week, roughly 24%, and one call at a time within those hours. If your missed calls fall inside those 40 hours and rarely overlap, a second person or a better lunch rota is the cheaper fix. If they fall at night, on weekends or in bursts, a person can’t cover them at that price, and an agent can.</p>
<h2>How to scope an AI receptionist that books</h2>
<p>Start from the call log, not the demo. A week of recorded calls shows which intents your line carries, how many of them are bookings and how far callers’ words sit from the items in your booking system. From that, the scope writes itself:</p>
<ul>
<li><span><strong>The paths.</strong> The intents the front agent routes on day one, and where everything else goes.</span></li>
<li><span><strong>The fields.</strong> For each bookable path, the fields the scheduler needs and the order the agent asks for them.</span></li>
<li><span><strong>The confirmation.</strong> What the agent reads back before it writes anything.</span></li>
<li><span><strong>The exits.</strong> When the agent hands over to a person, and what summary goes with the call.</span></li>
<li><span><strong>The measures.</strong> Booking completion among callers who chose to book, handoffs by reason and hand-backs from the routed agents.</span></li>
</ul>
<p>A routed receptionist with booking falls in our $25k–$120k fixed-price band, set after a Discovery Sprint. The number of paths and booking-system connections moves it within the band more than the conversation does; the <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">pricing page</a> explains how the band is set.</p>
<p>Before any of that, check whether the calls you miss are worth the build. Put your call volume, missed-call share and customer value into the <a href="https://apptycoons.com/tools/ai-voice-agent-roi-calculator?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">AI voice agent ROI calculator</a>, and our guide to <a href="https://apptycoons.com/blog/cost-of-missed-calls?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">the cost of missed calls</a> shows the formula behind it.</p><div><h2>Sources</h2><ol><li><a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener">Building effective agents</a><span>, Anthropic (Dec 19, 2024)</span></li><li><a href="https://openai.github.io/openai-agents-python/handoffs/" rel="noopener">Handoffs</a><span>, OpenAI Agents SDK documentation, as of October 2026</span></li><li><a href="https://www.bls.gov/ooh/office-and-administrative-support/receptionists.htm" rel="noopener">Receptionists: Occupational Outlook Handbook</a><span>, U.S. Bureau of Labor Statistics</span></li><li><a href="https://getvoip.com/blog/ai-receptionist-vs-ivr/" rel="noopener">AI Receptionist vs IVR: How Each Handles Your Calls and Which Fits You Best</a><span>, GetVoIP (Jul 9, 2026)</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/ai-receptionist-call-routing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-receptionist-call-routing">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Vibe-coded app to production: a readiness checklist for AI-built apps</title><link>https://apptycoons.com/blog/vibe-coded-app-to-production</link><guid isPermaLink="true">https://apptycoons.com/blog/vibe-coded-app-to-production</guid><pubDate>Mon, 19 Oct 2026 12:00:00 GMT</pubDate><category>Engineering</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>A researcher scanned 1,645 apps built with one AI app builder and found 170 whose databases strangers could read or write. The idea works; the gaps are in access rules, data, payments, app stores and ownership. Here is the checklist, and how to decide what to fix and what to rebuild.</description><media:content url="https://apptycoons.com/blog/vibe-coded-app-to-production/opengraph-image?40bac70dd8caa8af" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> An AI-built prototype is ready for production when access rules are enforced on the server, secrets stay out of the app, backups have been restored once, payments and bookings survive retries, errors reach a person, gated integrations are approved, app store rules are met and every account is in your name. Audit first, then fix or rebuild.</p>
<p>In 2025 a researcher scanned 1,645 apps built with Lovable and found 170 of them, about 10.3%, with database access rules loose enough that strangers could read or change the data. The record for that issue, CVE-2025-48757, scores it 9.3 out of 10. Lovable disputes it, on the grounds that each customer is responsible for protecting their own app’s data.</p>
<p>That dispute is the whole problem in one line. The tool built the app. Making it safe to run is still the owner’s job.</p>
<p>If you built a prototype with an AI tool and people already use it, the hard question is behind you: the idea works. What is left is the work nobody sees in a demo. It covers who can read which row, what happens when a payment call times out, whether Apple will accept the build and who holds the keys. This guide is the checklist for that work, and a way to decide what to fix and what to rebuild.</p>
<h2>Why AI-built prototypes break once real users arrive</h2>
<p>AI-built prototypes break in production because the tools optimize for a working screen, not for the conditions around it. The complaints are usually the same five: it breaks once real users arrive, it fails a security review, it can’t connect to the systems the business uses, the app store rejects it, and nobody understands the code.</p>
<p>The security part is measured. Veracode tested more than 100 large language models on 80 coding tasks and found security flaws in 45% of the results. Java failed more than 70% of the time. The models left code open to cross-site scripting in 86% of the relevant cases and to log injection in 88%. Larger models did not do significantly better than smaller ones.</p>
<figure><figcaption>How often AI-generated code failed Veracode’s security checks</figcaption><ul><li><span>All tasks</span>: <span>45%</span></li><li><span>Java tasks</span>: <span>70%+</span></li><li><span>Cross-site scripting cases</span>: <span>86%</span></li><li><span>Log injection cases</span>: <span>88%</span></li></ul><p>Veracode, July 30, 2025: more than 100 models, 80 tasks. Veracode sells application security tools.</p></figure>
<p>Operations fail in a different way. In July 2025, during a code freeze, Replit’s AI agent deleted a live company database in a test run by SaaStr’s founder, erasing records for more than 1,200 executives and over 1,190 companies, according to Fortune. Replit’s CEO called it unacceptable. The company then announced automatic separation of development and production databases. That separation is exactly the kind of thing a prototype skips.</p>
<p>None of this means the prototype was a mistake. It proved the product. It was never built to carry other people’s money and data.</p><h2>The production-readiness checklist for an AI-built app</h2>
<p>Each item below has a test you can run or ask for. If nobody can show the test passing, treat the item as open.</p>
<h3>Security</h3>
<ul>
<li><span><strong>Server-side access rules.</strong> Every read and write is checked on the server, not hidden in the interface. Test: log in as one user, change the record ID in a request to another user’s, and confirm the server refuses.</span></li>
<li><span><strong>Row-level security, deny by default.</strong> On Supabase and similar backends, every table with user data has row-level security switched on and a policy per action. A table with no policy should return nothing, not everything.</span></li>
<li><span><strong>Secrets out of the client.</strong> No service keys, AI API keys or payment secrets in the browser bundle or the mobile app. Calls that need them go through your server. Rotate any key that was ever shipped to a client.</span></li>
<li><span><strong>Input validation.</strong> Every form and API input is validated on the server for type, length and format, and output is escaped. That is where cross-site scripting and log injection start.</span></li>
<li><span><strong>Auth that can be revoked.</strong> Email verification where identity matters, rate limits on login and password reset, and sessions you can end from the server.</span></li>
</ul>
<blockquote><div>Watch out</div><p>A missing policy is an open door</p><div>In CVE-2025-48757, insufficient row-level security let unauthenticated users read or write tables in generated sites. Test with a logged-out request and with a second account, not only as yourself.</div></blockquote>
<h3>Data</h3>
<ul>
<li><span><strong>Backups you have restored.</strong> Automatic backups, plus one restore into a separate environment to prove they work.</span></li>
<li><span><strong>Separate development and production.</strong> A different database and different keys for each, so a test, a migration or an agent can’t touch live data.</span></li>
<li><span><strong>Migrations in version control.</strong> Schema changes are scripts in the repository, run the same way every time, not edits made in a dashboard.</span></li>
<li><span><strong>A ledger for money.</strong> If the app holds balances, credits, commissions or payouts, record every movement as an entry and derive the balance from the entries. A balance column that gets overwritten can’t be audited or reconciled with the payment provider.</span></li>
</ul>
<h3>Reliability</h3>
<ul>
<li><span><strong>Idempotent payment and booking calls.</strong> A retried request must not charge twice or book twice. Stripe’s API takes an idempotency key for exactly this: repeat the request after a connection error and it does not create a second object. Your own booking and order endpoints need the same rule.</span></li>
<li><span><strong>Retries with limits.</strong> Calls to outside services retry with backoff, then stop and record the failure instead of looping.</span></li>
<li><span><strong>Webhooks handled once.</strong> Payment and subscription webhooks are verified, stored and processed once, even when the provider sends them twice.</span></li>
<li><span><strong>Error tracking and monitoring.</strong> Errors reach a named person, with alerts on failed payments, failed jobs and spend on AI APIs. Rate-limit anything that costs money per call.</span></li>
</ul>
<h3>Integrations</h3>
<ul>
<li><span><strong>Gated APIs planned early.</strong> Some systems have no self-serve key. Dealership scheduling software is one example: access to Xtime runs through Cox Automotive’s partner program, with an agreement, fees and a certified demo, and then each dealership opts in. Our <a href="https://apptycoons.com/blog/xtime-api-integration?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">Xtime API integration</a> guide lists the steps. Find out which of your integrations work like this before you promise a launch date.</span></li>
<li><span><strong>Writes that can be undone.</strong> Every write to another system has error handling and a way to correct it.</span></li>
</ul>
<h3>App stores</h3>
<ul>
<li><span><strong>Apple guideline 4.2.</strong> An app needs “features, content, and UI that elevate it beyond a repackaged website.” A web prototype wrapped in an app shell is the case this rule describes.</span></li>
<li><span><strong>Apple guideline 4.2.6.</strong> Apps “created from a commercialized template or app generation service will be rejected unless they are submitted directly by the provider of the app’s content.” Submit from your own developer account, under your own name.</span></li>
<li><span><strong>Store rules for payments.</strong> Apple’s guideline 3.1.1 requires in-app purchase for access to features or content inside the app, subscriptions included. That changes your fees and your revenue math, so check it before you price the plan.</span></li>
</ul>
<h3>Code ownership</h3>
<ul>
<li><span><strong>Accounts in your company’s name.</strong> The repository, cloud, database, domain, Apple and Google developer accounts, payment provider and every API key. Nothing held by a freelancer or a builder platform alone.</span></li>
<li><span><strong>A build that runs outside the tool.</strong> Someone other than the original builder can clone the repository, run it locally and deploy it from written steps.</span></li>
</ul>
<h3>Maintainability</h3>
<ul>
<li><span><strong>Tests on the paths that move money or data.</strong> Not full coverage: sign-up, login, payment, booking and anything that deletes.</span></li>
<li><span><strong>One way of doing each thing.</strong> Prompt-by-prompt building can leave duplicate libraries and parallel auth flows. Pick one of each and delete the rest, because dead generated code is still reachable code.</span></li>
<li><span><strong>A README a new engineer can follow.</strong> How to run it, how to deploy it, where the secrets live and who to call.</span></li>
</ul>
<h2>Fix or rebuild: how to decide</h2>
<p>Fix the prototype when its foundations are sound and the problems are local. Rebuild the parts whose foundations are wrong, which is rarely the whole app. The test is not how the code looks. It is whether the data model and access model can express what the product has to do.</p>
<figure><figcaption>Fix in place or rebuild a layer</figcaption><div><div><div><p><strong>Fix in place</strong> (Foundations hold)</p></div><ul><li>Every row records which user or organization owns it</li><li>Problems are local: a missing policy, an exposed key, no backups</li><li>The app builds and deploys outside the AI tool</li></ul></div><div><div><p><strong>Rebuild the layer</strong> (Foundations don’t)</p></div><ul><li>Ownership isn’t in the schema, so access can’t be enforced</li><li>Money is an overwritten balance with no history</li><li>Each change breaks another feature and nobody knows why</li></ul></div></div></figure>
<p>Two more cases point to a rebuild. The first is a platform limit: an app that has to control hardware over Bluetooth, run in the background or pass review as a native app may need native code the builder can’t produce. The second is an integration that needs a server-side partner connection the prototype has no place for.</p>
<figure><div><img alt="Five layers of an AI-built prototype and what usually happens to each. Screens and flows: usually keep. Business rules: keep, and add tests. Data model: review, rebuild if ownership or money is wrong. Access rules: rewrite, deny by default. Secrets, hosting and accounts: move into your company’s name." width="1280" height="1346" src="https://apptycoons.com/assets/blog/vibe-coded-app-to-production/layers.webp"/></div><figcaption>The usual pattern per layer. The audit decides for your app.</figcaption></figure>
<p>The usual result is a mix. The screens stay, because they are what users already know. The access rules get rewritten. The data model gets a review, and the money tables get a ledger.</p>
<h2>Can the AI tool make the app production ready on its own?</h2>
<p>Partly. An AI tool can fix a named issue fast, and our own engineers use AI tools every day. What it can’t do is decide what to check, notice what is missing or answer for the result. Production needs a senior engineer hands-on: someone who reads the access rules, runs the restore and signs off on the payment flow.</p>
<p>Professional developers already work this way. In Stack Overflow’s 2025 survey of developers, 72% said vibe coding is not part of their professional work. More developers distrusted the accuracy of AI tools (46%) than trusted it (33%). And 75.3% said they would ask a person when they don’t trust an AI’s answer. Google’s DORA 2025 report, from nearly 5,000 technology professionals, describes AI’s main role in software development as “an amplifier”. It strengthens a team’s good practices and its bad ones alike.</p>
<p>So the question is not AI or no AI. It is whether someone with production experience is steering it.</p>
<h2>What a production-readiness audit should deliver</h2>
<p>A useful audit ends with decisions, not a list of worries. Ask for these before you pay for one:</p>
<ul>
<li><span><strong>A findings list ranked by risk.</strong> Each finding says what is wrong, how it was tested and what an attacker or a bad day could do with it. Launch blockers are marked as blockers.</span></li>
<li><span><strong>A fix-or-rebuild call per layer.</strong> For screens, business rules, data model, access rules, integrations and hosting, with the reason.</span></li>
<li><span><strong>An ownership inventory.</strong> Every account and key, who holds it now and the steps to move it to you.</span></li>
<li><span><strong>Integration and store risks.</strong> Which APIs need partner approval, and how long it takes. Whether the app is likely to pass App Store review as built.</span></li>
<li><span><strong>A fixed quote for the fix list.</strong> Scope, price and order of work, so you can compare it with rebuilding or doing it in-house.</span></li>
</ul>
<figure><figcaption>From prototype to production</figcaption><ol><li><span><strong>Prototype</strong>: <span>Real users, proven demand</span></span></li><li><span><strong>Audit</strong>: <span>Test each checklist item</span></span></li><li><span><strong>Fix list</strong>: <span>Ranked, with a fix-or-rebuild call</span></span></li><li><span><strong>Harden</strong>: <span>Fixed scope, fixed price</span></span></li><li><span><strong>Launch</strong>: <span>Accounts and code in your name</span></span></li></ol></figure>
<p>Who does the audit matters as much as the list. At Apptycoons it is done by our senior engineers, who were writing production code before AI tools existed. A technical project manager then turns the findings into a scope. The first conversation is free. The audit itself is scoped and priced before it starts, and if the fix list is big enough to be a project, it is quoted as a <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">Fixed-Price Build</a> in our $25k–$120k band. Our guide to <a href="https://apptycoons.com/blog/fixed-price-software?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">fixed price or time and materials</a> explains why we quote that way.</p>
<h2>Where our builds cover these parts</h2>
<p>None of the apps below started as an AI-built prototype. We built them from scratch, and each one covers a part of the checklist above.</p>
<ul>
<li><span><strong>Access by role.</strong> <a href="https://apptycoons.com/work/switch?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">Switch</a> is shared banking for clubs and teams. An account belongs to a group, so treasurers, admins and members each get different rights over money and cards, and a card’s state has to show the same on every device.</span></li>
<li><span><strong>Money that reconciles.</strong> <a href="https://apptycoons.com/work/freedom-pro?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">Freedom Pro</a> pays commissions to a partner network and holds USD and stablecoin balances. The same team activity must always produce the same commission, and balances have to reconcile with the provider’s records.</span></li>
<li><span><strong>Payouts and store purchases.</strong> <a href="https://apptycoons.com/work/dubcam?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">DubCam</a> pays creators 50% of each subscription on the first of the month, with subscriptions on the phone apps running through in-app purchases. The <a href="https://apptycoons.com/blog/creator-platform-revenue-share?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">revenue share guide</a> covers the ledger and the store fee math.</span></li>
<li><span><strong>A native app through review.</strong> <a href="https://apptycoons.com/work/ohm-fitness?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">OHM Fitness</a> runs separate native iOS and Android apps that control a 20-electrode suit over Bluetooth LE, live on the App Store and Google Play.</span></li>
<li><span><strong>A gated integration.</strong> <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">Innovative AI</a> runs voice agents that book dealership service in Xtime, one of the systems you can’t reach with a self-serve key.</span></li>
</ul>
<p>If you want us to do this work on your app, our <a href="https://apptycoons.com/services/prototype-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">AI prototype to production</a> service runs the audit and the fixes at a fixed price. For new web apps, our <a href="https://apptycoons.com/services/web-app-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">web app development</a> page describes how we build them. For store releases, see <a href="https://apptycoons.com/services/mobile-app-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">mobile app development</a>.</p>
<h2>When you don’t need an agency</h2>
<p>You don’t need an agency if the app is a demo, a waitlist or an internal tool with a handful of users, no payments and no sensitive data. Keep building with the AI tool. Work through the security and data sections of the checklist yourself, and turn on backups.</p>
<p>One experienced freelance engineer is often enough when the app has one clear risk: a missing access policy, an exposed key, a deploy that only works from the builder. Ask them to show you the tests passing.</p>
<p>A senior team earns its cost when several of these are true at once: money moves through the app, it stores personal data, an integration needs partner approval, a native app has to pass review, or you plan to raise money and someone will look at the code. If two or more apply, <a href="https://apptycoons.com/contact?interest=audit&amp;service=prototype-to-production&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">book an audit</a> and bring the repository, the list of accounts and the problem that worries you most.</p><div><h2>Sources</h2><ol><li><a href="https://www.veracode.com/press-release/ai-generated-code-poses-major-security-risks-in-nearly-half-of-all-development-tasks-veracode-research-reveals/" rel="noopener">AI-Generated Code Poses Major Security Risks in Nearly Half of All Development Tasks, Veracode Research Reveals</a><span>, Veracode (July 30, 2025)</span></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-48757" rel="noopener">CVE-2025-48757 Detail</a><span>, NIST National Vulnerability Database (published May 30, 2025; disputed by the supplier)</span></li><li><a href="https://mattpalmer.io/posts/statement-on-CVE-2025-48757/" rel="noopener">Statement on CVE-2025-48757</a><span>, Matt Palmer (2025)</span></li><li><a href="https://fortune.com/2025/07/23/ai-coding-tool-replit-wiped-database-called-it-a-catastrophic-failure/" rel="noopener">An AI-powered coding tool wiped out a software company’s database, then apologized for a ‘catastrophic failure on my part’</a><span>, Fortune (July 23, 2025)</span></li><li><a href="https://developer.apple.com/app-store/review/guidelines/" rel="noopener">App Review Guidelines (4.2 Minimum Functionality)</a><span>, Apple Developer (checked October 19, 2026)</span></li><li><a href="https://docs.stripe.com/api/idempotent_requests" rel="noopener">Idempotent requests</a><span>, Stripe API reference (checked October 19, 2026)</span></li><li><a href="https://survey.stackoverflow.co/2025/ai" rel="noopener">2025 Stack Overflow Developer Survey: AI</a><span>, Stack Overflow (2025)</span></li><li><a href="https://research.google/pubs/dora-2025-state-of-ai-assisted-software-development-report/" rel="noopener">DORA 2025 State of AI-assisted Software Development Report</a><span>, DORA, Google (2025)</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/vibe-coded-app-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=vibe-coded-app-to-production">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>AI service scheduling for car dealerships: how the call works</title><link>https://apptycoons.com/blog/ai-service-scheduling-dealerships</link><guid isPermaLink="true">https://apptycoons.com/blog/ai-service-scheduling-dealerships</guid><pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate><category>Voice agents</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>What an AI voice agent has to do between “I need my car looked at” and a confirmed service appointment, step by step, from a dealership build we shipped.</description><media:content url="https://apptycoons.com/blog/ai-service-scheduling-dealerships/opengraph-image?afc6dd4204a01198" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Once the call is routed, an AI agent books service in six moves: get the year, make, model and trim; load that vehicle’s menu from the scheduler; map the caller’s words to an op code and read it back; find an open slot or offer the nearest; settle drop-off, loaner, pickup or mobile service; then book.</p>
<p>On the dealership voice agents we built for Innovative AI, each vehicle’s service menu held 100–200 services, and every one of them had its own op code. No caller ever says an op code. They say something like “it’s making a grinding noise” or “whatever’s due at this mileage”, and the agent has to get from that sentence to one line on that car’s menu before it can ask about a time.</p>
<div><span>100–200</span> <span>services on a vehicle’s menu in our Innovative AI build, each with its own op code. The caller describes the problem; the agent has to find the code.</span></div>
<p>That matching step is the part of the call a script or keypad menu can’t do. The rest of the call (vehicle, time, transport) is ordinary slot-filling, but each part has a rule that breaks the booking if you skip it. This guide walks through the call from the caller’s side, in the order our agents ran it. It is the same flow we build into <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">custom AI voice agents</a> for service departments.</p>
<h2>How does an AI agent book a dealership service appointment?</h2>
<p>An AI agent books dealership service by identifying the vehicle, loading that vehicle’s service menu, matching the caller’s description to one service on it, finding an open slot, settling transport and writing the appointment into the scheduler. On the Innovative AI build, a receptionist agent took the call first and sent only booking requests down this path; questions about a car already in for work went elsewhere. After that routing, the booking ran in six steps:</p>
<ol>
<li><span><strong>Vehicle.</strong> The agent asks for year, make, model and trim.</span></li>
<li><span><strong>Menu.</strong> It fetches that vehicle’s available services from Xtime, the dealership’s scheduler.</span></li>
<li><span><strong>Need.</strong> The caller says what they want in their own words. The agent maps it to an op code on the menu and reads the service back for a yes.</span></li>
<li><span><strong>Time.</strong> The agent asks for a date and time and checks it against the dealership’s open appointments. If the slot is taken, it offers others.</span></li>
<li><span><strong>Transport.</strong> Drop-off, pickup by the dealership or mobile service at home. Pickup and mobile need an address; drop-off callers get offered a shuttle or a loaner.</span></li>
<li><span><strong>Book.</strong> The agent books the appointment for that op code and time.</span></li>
</ol>
<p>The <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">Innovative AI case study</a> covers what else those agents did. Here we stay with the booking call.</p><h2>Why the vehicle comes first</h2>
<p>The vehicle comes first because the service menu depends on it. A synthetic oil change on one engine is a different line, with a different labor time and price, from the same service on another, and some services only exist for some models. Until the agent knows the car, it has nothing to match the caller’s words against.</p>
<p>Xtime describes its menus as dynamic menus that reflect the dealership’s own pricing, promotions and service recommendations. On the integration side, Supergood’s report card on the Xtime API (last verified October 2026) says partner integrations create appointments by year, make and model or by VIN. The vehicle is the key the scheduler works from, so it is the first thing the agent needs.</p>
<p>Ask for year, make, model and trim rather than the VIN: callers know what they drive, and few can read a 17-character VIN off the door jamb while holding the phone. Trim matters more than callers expect. If two trims of the same model carry different menus, the agent should ask which one, or ask for the VIN only then.</p>
<p>Two small rules we recommend for this step:</p>
<ul>
<li><span><strong>Confirm the vehicle once, in one sentence.</strong> “A 2021 Camry SE, is that right?” A wrong model year loads the wrong menu, and everything after it is wrong too.</span></li>
<li><span><strong>Accept partial answers.</strong> Many callers give make and model and stop. The agent asks for the missing piece rather than starting over.</span></li>
</ul>
<h2>Matching the caller’s words to an op code</h2>
<p>An op code is the dealership’s identifier for one service operation, and matching is the step where the agent turns a caller’s description into one of them. Dominion DMS’s documentation defines operation codes as codes that “help categorize service tasks and their prices”: each carries a description, labor hours or a fixed price, parts and the makes, models and years it applies to. myKaarma’s documentation notes that a dealership may have a large number of them, “sometimes exceeding thousands.”</p>
<p>A caller never needs to know any of that. Callers describe symptoms (“there’s a clunk when I go over bumps”), ask for scheduled maintenance by mileage, or name a service loosely (“tires”). Our agent took the description, compared it with the services on that vehicle’s menu and picked the closest match. Then it confirmed in plain words before going further, along the lines of: “That sounds like a suspension inspection. Shall I book that?” Booking the wrong op code means the wrong labor time is reserved and the technician starts the job without the right parts, which costs more than a five-second confirmation.</p>
<figure><div><img alt="The caller says there is a clunk when they go over bumps. On that vehicle’s menu of 100–200 services, each with an op code, the agent picks suspension inspection and reads it back: that sounds like a suspension inspection, shall I book that? With no clear match, it books the general diagnosis or hands the call to an advisor." width="1280" height="1308" src="https://apptycoons.com/assets/blog/ai-service-scheduling-dealerships/opcode-match.webp"/></div><figcaption>One description in, one menu line out, confirmed before anything is booked.</figcaption></figure>
<p>“Tires” is a good example of why the confirmation is not optional. If one tire, two tires and four tires are separate menu lines with separate codes, the agent has to ask how many before it can pick one.</p>
<p>Not every description maps to a menu line. Our recommendation for that case, which is a design choice rather than something Xtime prescribes:</p>
<ul>
<li><span>If the caller describes a symptom with no clear match, book the dealership’s general diagnosis or inspection service, if it has one, and put the caller’s own words in the appointment notes for the advisor.</span></li>
<li><span>If the request is outside the menu altogether (a body repair, a warranty dispute), don’t force a match. Hand the call to an advisor or take a callback.</span></li>
<li><span>Never invent a service. The agent only offers lines the scheduler returned for that vehicle.</span></li>
</ul>
<p>How menus and op codes reach the agent on the system side, including partner access, is covered in our <a href="https://apptycoons.com/blog/xtime-api-integration?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">Xtime API integration guide</a>.</p>
<h2>Checking open slots and offering another time</h2>
<p>The agent checks the requested date and time against the open appointments the scheduler returns and, if that slot is gone, offers the closest alternatives. On our build the caller named a time, the agent compared it with the dealership’s available appointments and, when it wasn’t free, worked out another time with the caller instead of failing the call.</p>
<p>The one hard rule: the agent never books a time the scheduler didn’t return as open. A language model will happily agree to “Tuesday at 8” because it sounds reasonable. The time has to come from the availability response, not from the conversation.</p>
<p>What works when the first choice is taken:</p>
<ul>
<li><span>Offer two times, not a list. “Tuesday is full in the morning. I have 1:30 that day or 8:00 on Wednesday.”</span></li>
<li><span>Keep the caller’s constraint. If they asked for a morning, offer the next mornings before an afternoon.</span></li>
<li><span>Re-check before writing. Slots go while a caller is deciding, so the agent confirms availability at the moment it books.</span></li>
<li><span>If nothing fits, offer a callback from an advisor rather than ending the call with nothing.</span></li>
</ul>
<figure><figcaption>Example call (illustrative): the first choice is taken</figcaption><ol><li><strong>Caller:</strong> <span>Can I come in Tuesday morning? There’s a clunk when I go over bumps.</span></li><li><strong>AI agent:</strong> <span>That sounds like a suspension inspection. Shall I book that?</span></li><li><strong>Caller:</strong> <span>Yes, Tuesday at 8 if you can.</span></li><li><strong>AI agent:</strong> <span>Tuesday is full in the morning. I have 1:30 that day or 8:00 on Wednesday.</span></li><li><strong>Caller:</strong> <span>Wednesday at 8.</span></li><li><strong>AI agent:</strong> <span>Wednesday at 8:00 is still open. Will you drop the car off, or should we pick it up?</span></li></ol></figure>
<h2>Drop-off, shuttle, loaner, pickup or mobile service</h2>
<p>Transport is the last question before booking, and it decides what else the agent has to collect. On our build the agent asked whether the caller would drop the car off, wanted the dealership to pick it up, or wanted mobile service at home. Drop-off callers were then offered a shuttle or a loaner. Pickup and mobile service needed an address; drop-off didn’t.</p>
<div><p><em>Transport options and what we recommend the agent collects for each</em></p>
<table><thead><tr><th>Option</th><th>What the caller gets</th><th>What the agent collects</th></tr></thead><tbody><tr><th>Drop-off</th><td>Brings the car in and waits or leaves</td><td>Nothing extra; tells the caller to come to the dealership</td></tr><tr><th>Drop-off with shuttle</th><td>A ride from the dealership</td><td>The shuttle request, recorded so an advisor sees it</td></tr><tr><th>Drop-off with loaner</th><td>A car to use during the service</td><td>The loaner request, recorded so an advisor sees it</td></tr><tr><th>Pickup</th><td>The dealership collects the car</td><td>Pickup address</td></tr><tr><th>Mobile service</th><td>The service is done at the caller’s home</td><td>Service address</td></tr></tbody></table></div>
<p>Which options exist is the dealership’s decision, and the agent should only offer the ones it runs. Mobile service on our build was something the dealerships themselves offered. Xtime lists a direct integration with Lyft for rideshare as of October 2026, and in 2020 <a href="https://www.autoremarketing.com/technology/clutch-and-xtime-unveil-cox-automotive-mobility-solution-fixed-ops" rel="noopener">Auto Remarketing reported</a> that Xtime Schedule could show loaner and valet availability. If the integration can see loaner availability, the agent can promise one; if it can’t, it should say an advisor will confirm.</p>
<p>Cox Automotive’s 2025 Service Industry Study of 1,974 vehicle owners found that owners want easy scheduling and flexible service options, and Cox recommends after-hours scheduling, pickup and delivery, and rideshare integration to win service visits back. A voice agent that also answers after hours and settles transport on the same call would cover several of those at once.</p>
<h2>Returning callers and existing appointments</h2>
<p>Returning callers shouldn’t be asked for what the dealership already knows. On our build, the caller’s name, vehicle and recent service were saved against their phone number, so a second call from the same number skipped the vehicle questions.</p>
<p>Two cautions. A phone number identifies a line, not a person: households share cars and phones, so the agent confirms (“Is this about the Camry again?”) rather than assuming. And a stored record is only a shortcut; if the caller names a different car, the agent loads that car’s menu.</p>
<p>The same lookup let callers check bookings they already had. The agent could bring up a caller’s existing appointments and confirm them, so a caller checking a booking doesn’t have to wait for the service desk.</p>
<p>Storing caller data has rules. In the EU, GDPR <a href="https://gdpr-info.eu/art-13-gdpr/" rel="noopener">Article 13</a> requires the business to tell people what it collects at the time it collects it, which on a phone call means the greeting. Our <a href="https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">EU AI Act and GDPR checklist</a> covers the disclosure wording and retention.</p>
<h2>Routing the calls that aren’t bookings</h2>
<p>Not every caller wants to book, so the first job is routing. Our receptionist agent asked what the caller wanted and sent them down one of three paths: book a service, check on a car already in the shop, or anything else. A wrong route wastes the caller’s first minute, so a receptionist agent should ask rather than guess when the opening sentence is unclear. Our guide to <a href="https://apptycoons.com/blog/ai-receptionist-call-routing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">AI receptionist call routing</a> covers how to split that front agent from the ones behind it.</p>
<p>Checking on a car already in service is a status question, not a booking, and it needs a different lookup. Anything the agent can’t handle, from a billing question to a complaint, should go to a person with a short summary attached, so the caller doesn’t repeat themselves.</p>
<p>Outbound calls follow the same logic in reverse. When the dealership’s records showed a customer had missed their appointment, our agent called them back already knowing which service had been booked. That flow has its own consent rules, covered in our guide to <a href="https://apptycoons.com/blog/dealership-no-show-follow-up?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">no-show follow-up calls</a>.</p>
<h2>Why the last 1% of bookings failed</h2>
<p>Of callers who went ahead with booking through our agent, 99% were booked, by our own count. The remaining 1% failed for three reasons.</p>
<ul>
<li><span><strong>Requests the agent couldn’t map.</strong> Some callers described something so unusual or vague that the agent found no match, and the caller got annoyed. Our recommendation is to hand over early: after one failed clarification, offer an advisor.</span></li>
<li><span><strong>Pronunciation and accents.</strong> Speech recognition does not work equally well for every speaker. A 2020 PNAS study by Koenecke and colleagues tested five commercial systems and found an average word error rate of 0.35 for Black speakers against 0.19 for white speakers. The systems have changed since, but the lesson holds: test with recordings from your own callers, not a demo voice.</span></li>
<li><span><strong>Background noise on the caller’s side.</strong> Calls from a road, a shop floor or a car with the windows down lose words. The agent should read back the details that matter (vehicle, service, time) so a misheard word gets caught before booking.</span></li>
</ul>
<figure><figcaption>Average word error rate across five commercial speech systems</figcaption><ul><li><span>Black speakers</span>: <span>0.35</span></li><li><span>White speakers</span>: <span>0.19</span></li></ul><p>Koenecke et al., PNAS (2020). Lower is better; the systems have changed since.</p></figure>
<p>We’d cap clarification attempts and hand over sooner for all three. A quick handoff can turn a call the agent can’t follow into a callback instead of a hang-up.</p>
<h2>What to measure after launch</h2>
<p>Measure booking completion among callers who chose to book, not among all calls. Many calls are status checks, routing or questions, and counting them against the booking rate hides whether the booking flow works. Our 99% was measured that way, on one build, and isn’t a forecast for another dealership.</p>
<p>Track these from the first week:</p>
<ul>
<li><span><strong>Booking completion:</strong> booked appointments divided by callers who said they wanted to book.</span></li>
<li><span><strong>Handoff rate:</strong> calls passed to a person, split by reason (no menu match, outside scope, caller asked).</span></li>
<li><span><strong>Failures by cause:</strong> unmapped request, misrecognition, noise, scheduler error, caller hung up.</span></li>
<li><span><strong>Wrong-op-code rate:</strong> appointments an advisor had to change after booking, which shows whether matching works.</span></li>
<li><span><strong>Outcome at the dealership:</strong> booked appointments that arrived, so you can see the no-shows.</span></li>
</ul>
<p>If you are still deciding whether the phone is worth automating, our guide to the <a href="https://apptycoons.com/blog/cost-of-missed-calls?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">cost of missed calls</a> sets out how to put a number on what goes unanswered.</p>
<h2>Buy a scheduler add-on or build your own agent?</h2>
<p>Buy if one rooftop needs calls answered and service booked on standard menus; build if you need your own call logic across several systems. We sell the build option here, so weigh this with that in mind.</p>
<p>Xtime Schedule lists a Brooke.ai add-on that answers inbound service calls, handles requests and schedules appointments, as of October 2026. For a single dealership already on Xtime, an add-on like that is the shorter path, and we would buy it and revisit in a year.</p>
<p>A custom agent pays off when the flow is yours: a receptionist that routes service calls, outbound no-show and sales-lead follow-up in the same system, matching rules tuned to your menus, and transport options your scheduler’s add-on doesn’t cover. The Innovative AI build combined a receptionist, service booking, no-show and sales-lead follow-up, and caller memory across multiple dealerships.</p>
<figure><figcaption>Buy or build, in short</figcaption><div><div><div><p><strong>Scheduler add-on</strong> (e.g. Brooke.ai on Xtime)</p></div><ul><li>One rooftop that needs calls answered</li><li>Standard service menus</li><li>The shorter path; revisit in a year</li></ul></div><div><div><p><strong>Custom agent</strong> (What we build)</p></div><ul><li>Several dealerships or systems</li><li>Matching rules tuned to your menus</li><li>Receptionist, no-show and sales follow-up in one system</li></ul></div></div></figure>
<p>On price, a scheduling voice agent falls in our $25k–$120k fixed-price band, and the price is set after a $5,000 Discovery Sprint. What pushes a dealership build up the band is the integrations and the matching layer, more than the call itself. The <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">pricing page</a> has the model, and our <a href="https://apptycoons.com/blog/ai-voice-agent-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">AI voice agent cost</a> guide breaks down the running costs per minute. For how voice agents fit around DMS, CRM and scheduler software, see <a href="https://apptycoons.com/industries/automotive?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">car dealership software and voice agents</a>.</p>
<p>If you are scoping one, start with a week of call recordings and your service menu export: those two files show how many calls are bookings and how far callers’ words sit from your op codes.</p><div><h2>Sources</h2><ol><li><a href="https://xtime.com/solutions/schedule" rel="noopener">Automotive appointment scheduling software</a><span>, Xtime (Cox Automotive), as of October 2026</span></li><li><a href="https://supergood.ai/api-report-card/xtime" rel="noopener">Xtime API: The API Report Card</a><span>, Supergood, last verified October 2026</span></li><li><a href="https://help.dominiondms.com/en/knowledge/understanding-service-op-codes" rel="noopener">Understanding service op codes</a><span>, Dominion DMS, as of October 2026</span></li><li><a href="https://docs.mykaarma.com/our-products/admin/opcodes/opcodes-and-menus/how-to-get-opcodes-and-menus" rel="noopener">How to get operation codes and service-menus</a><span>, myKaarma, as of October 2026</span></li><li><a href="https://www.coxautoinc.com/insights/new-cox-automotive-study-finds-dealerships-have-lost-12-of-service-visits-to-competition-since-2018/" rel="noopener">New Cox Automotive study finds dealerships have lost 12% of service visits to competition since 2018</a><span>, Cox Automotive (Nov 11, 2025)</span></li><li><a href="https://www.autoremarketing.com/technology/clutch-and-xtime-unveil-cox-automotive-mobility-solution-fixed-ops" rel="noopener">Clutch and Xtime unveil Cox Automotive mobility solution for fixed ops</a><span>, Auto Remarketing (Feb 11, 2020)</span></li><li><a href="https://pubmed.ncbi.nlm.nih.gov/32205437/" rel="noopener">Racial disparities in automated speech recognition</a><span>, Koenecke et al., PNAS (2020)</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/ai-service-scheduling-dealerships?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-service-scheduling-dealerships">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Dealership no-show and lead follow-up calls with AI voice agents</title><link>https://apptycoons.com/blog/dealership-no-show-follow-up</link><guid isPermaLink="true">https://apptycoons.com/blog/dealership-no-show-follow-up</guid><pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate><category>Voice agents</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>A customer booked service and didn’t arrive. The call that follows should already know the car, the service and the time. How the no-show call and the unsold-lead call worked on a real dealership build, and the consent each one needs.</description><media:content url="https://apptycoons.com/blog/dealership-no-show-follow-up/opengraph-image?91dcaa1f7ec6583e" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Trigger the call from the CRM status, not a timer: once the appointment shows the customer didn’t arrive, the agent calls already knowing the car, the service and the slot, and rebooks on the same call. Unsold sales leads get a message first, then a call that records why they didn’t buy and tells them a supervisor will call back.</p>
<p>A customer booked a service, picked a slot and never arrived. The appointment sits in the dealership’s CRM with no repair order behind it. The call that follows should already know the car, the service that was booked and the time that was missed, so its first question is “Would you like to rebook?”, not “What can I help you with?”</p>
<p>That is how the follow-up works on the <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">custom AI voice agents</a> we built for Innovative AI, which are still live in production for US car dealerships. The same system has a second outbound job: calling sales leads who visited or inquired and didn’t buy. Both calls are easy to get wrong, because each one needs the right context and the right consent.</p>
<p>The stakes are visible in the service lane. In Cox Automotive’s Service Industry Study (published November 11, 2025; 1,974 vehicle owners), 54% of owners of cars two years old or newer returned to the selling dealer for service, down from 72% in 2023. An appointment that lapses without a call is one more chance for an owner to try someone else.</p>
<div><span>54%</span> <span>of owners of newer cars returned to the selling dealer for service in 2025, down from 72% in 2023 (Cox Automotive Service Industry Study, as of October 2026)</span></div>
<h2>When should a no-show call go out?</h2>
<p>A no-show call should go out when the CRM marks the appointment as missed, not on a fixed timer from the booked slot. On our Innovative AI build, the trigger was the CRM showing that the customer hadn’t arrived; the agent then placed the call.</p>
<p>The status matters more than the clock. A customer who is 20 minutes late is still a customer on the way, and a call to them reads as nagging. A status set by the service desk, or by the absence of a check-in by the end of the slot, is a fact the agent can act on.</p>
<p>How long to wait after the status changes is a judgment, and the right window depends on the dealership. Our recommendation: call the same day while the customer still remembers why they booked, inside normal hours, and after one unanswered attempt, hand the record to a person. We don’t have measured cadence data from the build to publish, so treat that as a starting point to test, not a benchmark.</p>
<figure><div><img alt="Timeline of a no-show follow-up. Booked slot: the customer is due. 20 minutes late: still on the way, no call. Trigger: the CRM marks the appointment missed, set by the service desk or by no check-in by the end of the slot. Same day, normal hours: the agent calls already holding the service, missed slot, vehicle and consent record. After one unanswered attempt: hand the record to a person." width="1280" height="1154" src="https://apptycoons.com/assets/blog/dealership-no-show-follow-up/no-show-trigger.webp"/></div><figcaption>Status first, clock second. The timing is our recommended starting point, not measured data.</figcaption></figure><h2>What the agent knows before it dials</h2>
<p>The agent should start the call already holding the appointment and the customer record, so the customer never repeats what they told the dealership when they booked. On our build, every follow-up call carried the scheduled service the customer had missed.</p>
<p>The same build saved customer data against the phone number: the caller’s name, their car and their recent service. When the same number called again, the agent used that record instead of asking for the vehicle a second time. A no-show call can use the same record in reverse. Before dialing, the agent should load:</p>
<ul>
<li><span><strong>The booking:</strong> the service that was scheduled, the slot that was missed and the transport choice (drop-off, pickup or mobile service).</span></li>
<li><span><strong>The vehicle:</strong> year, make, model and trim, which decide the service menu the agent can rebook from.</span></li>
<li><span><strong>The customer:</strong> the name on the record and any earlier service, so the agent can confirm it is talking to the right person.</span></li>
<li><span><strong>The consent record:</strong> which number may be called, for what purpose, and whether the customer has opted out.</span></li>
</ul>
<blockquote><div>Watch out</div><p>The last item is the one teams forget</p><div>A record without a consent flag is a reason not to dial.</div></blockquote>
<h2>Rebooking on the same call</h2>
<p>The point of the call is to end it with a new appointment, so the agent should be able to book on the spot instead of promising that someone will call back. On our build, the agent asked the customer questions about the missed appointment, then rebooked the service or did whatever the customer asked.</p>
<p>We recommend that rebooking reuse the inbound booking flow. The agent should offer the service that was on the original appointment, ask whether anything has changed, check open slots in the scheduler, offer the nearest alternative when the preferred time is taken, and settle transport again. A customer who missed a drop-off because they had no ride may want a pickup or a shuttle this time. The steps are covered in <a href="https://apptycoons.com/blog/ai-service-scheduling-dealerships?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">how the booking call works</a>.</p>
<figure><figcaption>Example no-show call (illustrative)</figcaption><ol><li><strong>AI agent:</strong> <span>Hi, this is the dealership’s AI assistant, calling about the oil change you had booked this morning. Would you like to rebook?</span></li><li><strong>Customer:</strong> <span>Yes, sorry. I had no way to get there.</span></li><li><strong>AI agent:</strong> <span>Has anything about the service changed, or is it still the oil change?</span></li><li><strong>Customer:</strong> <span>Still the oil change.</span></li><li><strong>AI agent:</strong> <span>We can pick the car up from you, or a shuttle can bring you in. Which would you prefer?</span></li><li><strong>Customer:</strong> <span>Pickup, please. Thursday if possible.</span></li><li><strong>AI agent:</strong> <span>Thursday at 9:00 is open. What address should we pick it up from?</span></li></ol></figure>
<p>We recommend two different paths for two cases. If the customer says the work was done elsewhere, the agent should record that and close the follow-up. If they want to cancel, it should cancel and not argue. Both outcomes are as useful to the service manager as a rebooked slot, because they explain where the appointment went.</p>
<h2>Unsold leads: message first, then call</h2>
<p>For sales leads who came to the dealership or inquired and didn’t buy, our build sent a message first and called afterwards. The message should say who is following up and why, so the call that follows isn’t a surprise from an unknown number.</p>
<p>The order matters for two reasons. People screen calls from numbers they don’t know, and a message gives the call a reason to be answered. And a message lets the lead reply in their own time, which some people prefer to a conversation about a car they decided not to buy.</p>
<p>On the sales side, the build runs through VinSolutions, Cox Automotive’s dealership CRM; the service side books through Xtime, also part of Cox Automotive. One vendor behind both sides doesn’t make them one system, so plan for the follow-up logic to read lead status and appointment status from wherever each one lives.</p>
<h2>Capturing the reason and handing off to a supervisor</h2>
<p>The sales call’s job is to learn why the lead didn’t buy and pass a clear brief to a person, not to close the sale itself. On our build, the agent asked for the reason, such as the price or wanting a different car, tried to bring the lead back to the dealership or captured what they needed, and then told them a supervisor would call them.</p>
<figure><figcaption>The unsold-lead follow-up, in order</figcaption><ol><li><span><strong>Message first</strong> (Before the call): <span>Say who is following up and why.</span></span></li><li><span><strong>Ask the reason</strong> (On the call): <span>Price, a different car, or something else.</span></span></li><li><span><strong>Capture the need</strong>: <span>Budget, preferred model and objection, into the CRM.</span></span></li><li><span><strong>Read the summary back</strong>: <span>Catches mistakes while the lead is still on the line (our recommendation).</span></span></li><li><span><strong>Supervisor callback</strong> (After the call): <span>The agent says a supervisor will call; the notes are already there.</span></span></li></ol></figure>
<p>We recommend a callback over a live transfer. A salesperson who calls back with the lead’s budget, preferred model and objection already in the CRM has a better first minute than one who picks up a transferred call cold. The agent should repeat its summary to the lead before ending the call (“You’re looking for a hybrid under the price you saw, and a supervisor will call you”), which catches mistakes while the lead is still on the line.</p>
<p>The whole build, service and sales side, is written up in the <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">Innovative AI case study</a>, and what we build for dealer groups and dealer software vendors is on our <a href="https://apptycoons.com/industries/automotive?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">car dealership software</a> page.</p>
<h2>US consent rules for AI follow-up calls</h2>
<p>In the US, both follow-up calls count as artificial-voice calls, and the consent they need depends on whether the call is informational or telemarketing. The FCC’s declaratory ruling of February 8, 2024 (FCC 24-17) confirmed that the TCPA’s restrictions on artificial or prerecorded voice encompass current AI technologies that generate human voices. Such calls need prior express consent, and prior express written consent when they include an advertisement or constitute telemarketing.</p>
<p>The table splits the two calls by type. It is our reading of the ruling and of 47 CFR 64.1200 as published on October 18, 2026, not legal advice; state laws can add to it.</p>
<div><p><em>Consent and call rules by follow-up type (our reading, not legal advice; checked Oct 18, 2026)</em></p>
<table><thead><tr><th>Rule</th><th>Service no-show reschedule</th><th>Unsold sales lead</th></tr></thead><tbody><tr><th>Call type</th><td>Informational, about a booking the customer made</td><td>Telemarketing: the aim is a sale</td></tr><tr><th>Consent</th><td>Prior express consent</td><td>Prior express written consent</td></tr><tr><th>Identify the business</th><td>At the start of the call</td><td>At the start of the call</td></tr><tr><th>Callback number</th><td>During or after the message</td><td>During or after the message</td></tr><tr><th>In-call opt-out</th><td>Honor any reasonable request</td><td>Automated voice or key-press opt-out within 2 seconds of the identification</td></tr><tr><th>Opt-out deadline</th><td>Within 10 business days</td><td>Within 10 business days</td></tr><tr><th>Calling hours</th><td>The hours rule covers solicitations; we keep to normal hours anyway</td><td>No calls before 8 a.m. or after 9 p.m., called party’s local time</td></tr><tr><th>Do-not-call registry</th><td>Not a solicitation; honor the dealership’s own list</td><td>Scrub against the national registry</td></tr></tbody></table></div>
<p>The no-show column assumes a consented call to a mobile number. To a residential landline under the informational exemption, 64.1200(b)(3) also requires the automated voice or key-press opt-out within 2 seconds of the identification.</p>
<p>A no-show call can drift into the right-hand column. If the agent adds an upsell (“While it’s in, would you like a tire rotation?”), our reading is that the call now carries telemarketing content, and the stricter consent applies. Keep the reschedule call to the reschedule.</p>
<p>Revocation rules changed recently. Since April 11, 2025, consumers may revoke consent by any reasonable method, and the caller must honor it within 10 business days. The separate “revoke-all” provision, which would make one opt-out cover unrelated calls from the same caller, has been <a href="https://www.burr.com/telephone-consumer-protection-act/the-fcc-delays-effective-date-of-tcpa-revoke-all-rule-until-january-31-2027" rel="noopener">delayed to January 31, 2027</a>. The FCC’s one-to-one consent rule for lead forms was <a href="https://www.mofo.com/resources/insights/250130-eleventh-circuit-vacates-fcc-s-tcpa-one-to-one-consent-rule" rel="noopener">vacated by the Eleventh Circuit in January 2025</a>.</p>
<p>AI disclosure is still a proposal. In August 2024 the FCC <a href="https://www.kelleydrye.com/viewpoints/blogs/ad-law-access/fcc-proposes-new-tcpa-rules-for-ai-calls-and-texts" rel="noopener">proposed rules</a> that would require callers to say at the start of each call that it uses AI-generated technology; the current text of 64.1200 has no such rule as of October 18, 2026. We would disclose anyway, because a customer who finds out mid-call feels misled. The engineering cost of consent capture, scrubbing and opt-out handling is covered in our <a href="https://apptycoons.com/blog/ai-voice-agent-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">AI voice agent cost guide</a>.</p>
<h2>European and UK dealers</h2>
<p>In the EU and the UK, the AI disclosure is already required or the consent bar is higher than in the US. Under Article 50 of the EU AI Act, people must be told they are interacting with an AI system from the start of the first interaction, and the Commission’s FAQ says Article 50 applies from August 2, 2026. The exception for cases where AI use is “obvious” is to be read restrictively, so a voice agent should say what it is in its opening line.</p>
<p>In the UK, the ICO’s guidance under PECR says you must not make automated marketing calls unless the person has specifically consented to that type of call from you. General marketing consent, or consent to live calls, is not enough. An AI sales follow-up to a UK lead needs that specific consent on file; a service reschedule that sells nothing is a different question, and personal data in both falls under data protection law. The <a href="https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">EU AI Act and GDPR checklist</a> covers the notice and the records.</p>
<h2>What to log on every follow-up call</h2>
<p>Every follow-up call should end with one outcome code, written back to the CRM, so a person can see what happened without listening to the recording. These are the codes we recommend; they are not counts from the build.</p>
<ul>
<li><span><strong>Rebooked:</strong> new appointment ID, service and slot.</span></li>
<li><span><strong>Declined:</strong> the customer doesn’t want to rebook or buy, with the reason in their words.</span></li>
<li><span><strong>Done elsewhere or bought elsewhere:</strong> where the work or the sale went, if they said.</span></li>
<li><span><strong>Callback booked:</strong> for sales leads, the summary the supervisor will read before calling.</span></li>
<li><span><strong>Opt-out:</strong> the request, the time and the number, pushed to the suppression list at once.</span></li>
<li><span><strong>No answer or voicemail:</strong> with the attempt count, so the next step is a person, not another dial.</span></li>
<li><span><strong>Wrong number:</strong> removes the number from the record.</span></li>
<li><span><strong>Escalated:</strong> a complaint or a question the agent couldn’t answer, routed to staff.</span></li>
</ul>
<p>Log the consent basis with each call as well. If a regulator or a customer asks why the agent called, the answer should be one lookup away.</p>
<h2>When not to automate the follow-up</h2>
<p>Don’t automate a follow-up that already works, and never automate one the customer has asked you to stop. If a text reminder the day before already keeps missed appointments low, an AI call adds cost and risk for little gain.</p>
<p>Keep a person on the call when the record shows a complaint, a dispute over a bill or a sensitive repair. Keep a person, too, when the lead is a fleet or business account with its own relationship. And if the consent record is missing or unclear, the right outcome is no call at all.</p>
<p>When the numbers do justify it, we would build the follow-up as an extension of a booking agent rather than a separate product, because it reuses the same scheduler and CRM connections. We scope that as part of a fixed-price build ($25k–$120k). If you run a dealership or a dealer software product, <a href="https://apptycoons.com/contact?interest=audit&amp;service=ai-voice-agents&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">book a free AI audit</a> and bring your no-show and lost-lead process; we will tell you which follow-ups are worth automating and which should stay with your team.</p><div><h2>Sources</h2><ol><li><a href="https://docs.fcc.gov/public/attachments/FCC-24-17A1.pdf" rel="noopener">Implications of Artificial Intelligence Technologies on Protecting Consumers from Unwanted Robocalls and Robotexts, Declaratory Ruling (FCC 24-17)</a><span>, Federal Communications Commission</span></li><li><a href="https://www.ecfr.gov/current/title-47/chapter-I/subchapter-B/part-64/subpart-L/section-64.1200" rel="noopener">47 CFR 64.1200, Delivery restrictions</a><span>, Electronic Code of Federal Regulations</span></li><li><a href="https://www.kelleydrye.com/viewpoints/blogs/ad-law-access/fcc-issues-one-year-limited-waiver-of-new-tcpa-consent-revocation-rule" rel="noopener">FCC Issues One-Year Limited Waiver of New TCPA Consent Revocation Rule</a><span>, Kelley Drye</span></li><li><a href="https://www.coxautoinc.com/insights/new-cox-automotive-study-finds-dealerships-have-lost-12-of-service-visits-to-competition-since-2018/" rel="noopener">New Cox Automotive study finds dealerships have lost 12% of service visits to competition since 2018</a><span>, Cox Automotive</span></li><li><a href="https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/electronic-and-telephone-marketing/telephone-marketing/" rel="noopener">Telephone marketing (Guide to PECR)</a><span>, Information Commissioner’s Office</span></li><li><a href="https://www.vinsolutions.com/" rel="noopener">Auto Dealership CRM &amp; Sales Software</a><span>, VinSolutions (Cox Automotive), as of October 18, 2026</span></li><li><a href="https://digital-strategy.ec.europa.eu/en/faqs/transparency-obligations-under-article-50-ai-act" rel="noopener">Transparency obligations under Article 50 of the AI Act (FAQ)</a><span>, European Commission</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/dealership-no-show-follow-up?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=dealership-no-show-follow-up">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Xtime API integration for AI voice agents: a build guide</title><link>https://apptycoons.com/blog/xtime-api-integration</link><guid isPermaLink="true">https://apptycoons.com/blog/xtime-api-integration</guid><pubDate>Sun, 18 Oct 2026 12:00:00 GMT</pubDate><category>Engineering</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Xtime access is a partner program, not an API key. What it takes, what the scheduling API covers and what a voice agent has to build around it, from a shipped dealership build.</description><media:content url="https://apptycoons.com/blog/xtime-api-integration/opengraph-image?2f9590acb0d4a6cd" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Xtime has no self-serve API. As of October 2026, access runs through Cox Automotive’s partner program: an NDA, a partner agreement, fees, a business review and a certified demo, then an invitation code from each dealership. The scheduling API reads capacity and open times and creates or cancels appointments by year, make and model or by VIN.</p>
<p>Xtime has no self-serve API keys. As of October 2026, Supergood’s assessment of the Xtime API lists six things before the first production call: an NDA, a partner agreement, setup and per-dealer fees, a Cox Automotive business review, a certified demo and an invitation code from each dealership.</p>
<p>We built AI voice agents for Innovative AI that book service appointments at US car dealerships through Xtime and run sales follow-up through VinSolutions, Cox Automotive’s dealership CRM. The agents are still live in production. On that build, the hard parts were matching a caller’s words to one service out of a long menu, checking slots and handling transport. Those, plus the access steps and our recommendations on safe retries, are what this guide covers, from the system side. If you want the finished product rather than the build notes, our <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">custom AI voice agents</a> page has the scope.</p>
<h2>How do you get Xtime API access?</h2>
<p>You get Xtime API access through Cox Automotive’s partner program, not by signing up for a key. Supergood, which grades vendor APIs, lists the steps as of October 2026: an NDA and a partner agreement, a setup fee plus annual and per-dealer fees, a business review by Cox, and a certified demo before production approval. After that, each dealership opts in with an invitation code.</p>
<figure><figcaption>The steps to production access, per Supergood (as of October 2026)</figcaption><ol><li><span><strong>NDA and agreement</strong>: <span>Partner agreement with Cox</span></span></li><li><span><strong>Fees</strong>: <span>Setup, annual and per-dealer</span></span></li><li><span><strong>Business review</strong>: <span>Run by Cox</span></span></li><li><span><strong>Certified demo</strong>: <span>Before production approval</span></span></li><li><span><strong>Dealer opt-in</strong>: <span>One invitation code per dealership</span></span></li></ol></figure>
<p>The reference documentation is behind a login on the <a href="https://developer.coxautoinc.com/" rel="noopener">Cox Automotive Integration Platform</a>. Supergood notes that Service Scheduling 1.0 and Service Marketing 1.0 are listed on Cox’s developer portal, and labels the scheduling capabilities as the Consumer Scheduling API.</p>
<p>Two consequences for planning:</p>
<ul>
<li><span><strong>The calendar is not yours.</strong> The business review and the certified demo run on Cox’s schedule. Build against what you can test, and keep the demo-ready flow small.</span></li>
<li><span><strong>Contracts sit with whoever holds the integration.</strong> Decide early whether the dealer group, a software vendor or the build team signs, because the per-dealer fees and the support obligations follow that party.</span></li>
</ul>
<p>We don’t quote the fee amounts here. They are set by Cox and should come from Cox in writing.</p><h2>What the scheduling API covers, and what it doesn’t</h2>
<p>The Xtime scheduling API covers the booking itself: dealer capacity, available appointment times, and creating or canceling appointments by year, make and model or by VIN, according to Supergood as of October 2026. It does not cover repair orders or inspection results.</p>
<p>That split decides what a voice agent can answer on its own.</p>
<div><p><em>Caller requests and whether the scheduling API answers them (scope per Supergood, as of October 2026)</em></p>
<table><thead><tr><th>Caller wants to</th><th>Scheduling API</th><th>What else you need</th></tr></thead><tbody><tr><td>Book a service for a known vehicle</td><td>Yes: capacity, open times, create</td><td>The vehicle’s service menu and a way to pick the right item</td></tr><tr><td>Move or cancel a booking</td><td>Yes: cancel, then create</td><td>Identity check before changing anything</td></tr><tr><td>Hear the price of a service</td><td>Not listed in the report card</td><td>The dealership’s menu pricing, if exposed to you</td></tr><tr><td>Ask whether the car is ready</td><td>No: repair orders are not offered</td><td>DMS access or a handoff to a service advisor</td></tr><tr><td>Ask what the inspection found</td><td>No</td><td>A service advisor</td></tr></tbody></table></div>
<blockquote><div>Watch out</div><p>“Is my car ready?” is not a scheduling question</p><div>Repair orders are not offered by the scheduling API, so a status question needs DMS access or a handoff to a service advisor.</div></blockquote>
<p>Xtime’s own product page describes “dynamic menus that reflect your dealership’s pricing, promotions, and service recommendations”. Menus are set by each dealership, so treat menu content as dealer data that changes, not as a fixed catalog you can hard-code.</p>
<h2>The data flow on one booking call</h2>
<p>One booking call touches Xtime at three points: the vehicle’s service menu, the open times for the chosen service, and the appointment itself. Everything else is the agent’s own logic and its own store.</p>
<p>The table is our recommended data flow, in the order the <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">Innovative AI case study</a> describes the call. It shows which system each step reads or writes, not how the conversation sounds.</p>
<div><p><em>Data read and written on one service booking call (our recommended flow)</em></p>
<table><thead><tr><th>Step</th><th>Data read or written</th><th>Source of truth</th></tr></thead><tbody><tr><td>1. Route the call</td><td>The caller’s intent: book service, check on a car in for work, or something else</td><td>The caller</td></tr><tr><td>2. Identify the vehicle</td><td>Year, make, model and trim</td><td>The caller</td></tr><tr><td>3. Load the service menu</td><td>That vehicle’s services, each with its own op code</td><td>Xtime</td></tr><tr><td>4. Choose the service</td><td>One op code from that menu, confirmed with the caller</td><td>The caller’s confirmation</td></tr><tr><td>5. Find a time</td><td>Open times for that service on the requested day</td><td>Xtime</td></tr><tr><td>6. Settle transport</td><td>The transport option and, where needed, an address</td><td>Per-dealer configuration</td></tr><tr><td>7. Book</td><td>The appointment: vehicle, op code, time</td><td>Xtime</td></tr></tbody></table></div>
<p>Steps 3, 5 and 7 are the only Xtime calls, and step 3 has to come before any talk about times: the agent cannot offer a slot until it knows which service it is booking, and it cannot know the service until it has the vehicle. Transport options differ by dealership, so they live in configuration rather than in code. The case study covers the menu sizes and transport choices from that build.</p>
<p>Returning-caller recognition sits beside this flow rather than in it: on that build, the caller’s name, vehicle and recent service were saved against the phone number, so a repeat caller skipped questions the agent could already answer. The same system also looked up and confirmed existing appointments, and placed follow-up calls when the dealership’s CRM showed a booked customer had not arrived.</p>
<h2>What the voice agent needs on top of the API</h2>
<p>A voice agent needs five system-side pieces that no scheduling API provides: a menu-constrained output, an availability check inside the booking step, per-dealer transport configuration, a caller profile store and a create step that is safe to retry. The rest of this section is our engineering recommendations, not a description of the Innovative AI system and not Cox documentation. How the conversation itself should sound, from matching a caller’s words to offering another time, is in our guide to <a href="https://apptycoons.com/blog/ai-service-scheduling-dealerships?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">AI service scheduling for dealerships</a>.</p>
<p><strong>A menu-constrained output.</strong> The model’s choice of service should be an op code from the menu Xtime returned for that vehicle and nothing else. Pass the menu in as the only allowed values and validate the answer against it in code, so a request for “the 30k service” can only resolve to a line that exists. An answer that matches nothing is a handoff, never a guess.</p>
<p><strong>Availability inside the booking step.</strong> Treat the open times read earlier in the call as a hint. The create step reads availability for that service and time again and books only if the slot is still returned, so the check and the write sit together in one function.</p>
<p><strong>Per-dealer transport configuration.</strong> Store each rooftop’s options as data: whether it offers a shuttle, loaners, pickup or mobile service, and the service area for the last two. The agent asks only about options that dealership’s record lists, and the address field is required only when pickup or mobile service is chosen.</p>
<p><strong>A caller profile store.</strong> Name, vehicle and recent service saved against the phone number live in your own store, not in Xtime. It is personal data: keep only those fields, set a retention period and delete profiles that pass it.</p>
<p><strong>A retry-safe create.</strong> Calls drop. If the line cuts out after the agent sent the booking and before it heard the result, a naive retry or a callback can book the same car twice. Record each booking attempt on your side, tied to the call, before you send it. On any retry, check that record and the customer’s existing appointments first, and only create when neither shows the booking. The same confirm-before-write pattern appears in our <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">AI agent guardrails</a> checklist.</p>
<h2>Where VinSolutions fits: the sales side</h2>
<p>VinSolutions is Cox Automotive’s dealership CRM, so on an all-Cox stack the service side and the sales side come from the same company. VinSolutions calls itself “the AI-powered CRM with exclusive Cox Automotive shopper data and integrations with top industry providers”, and Cox’s brand list carries it next to Xtime (both as of October 2026).</p>
<p>Partner access points to the same place. VinSolutions’ <a href="https://www.vinsolutions.com/dealership-software/integrations/" rel="noopener">integrations page</a> tells vendors “If you are interested in becoming an integrated partner please visit our API Storefront”, and that link goes to Cox Automotive’s developer site, the one that hosts the Xtime reference documentation (as of October 2026).</p>
<p>On the Innovative AI build, sales follow-up runs through VinSolutions. The agent works through leads who visited a dealership and didn’t buy: a message first, then a call to learn the reason, such as price or a different car, and to capture what they want. It closes by telling them a supervisor will call back.</p>
<h2>When a dealer group runs more than one vendor</h2>
<p>Our build was all Cox Automotive: Xtime for service, VinSolutions for sales, and other Cox products at other rooftops. Not every group is. Cox’s own brand list, as of October 2026, includes Xtime for service, VinSolutions for CRM and Dealertrack for dealership management. A group whose CRM or dealer management system comes from another vendor is dealing with that vendor’s access program as well. CDK Global, for example, runs its own automotive API platform, Fortellis; the fortellis.io footer says “Fortellis is a trademark of CDK Global, LLC”. That means a second company, a second contract and a second style of API, and it was not part of the Innovative AI build.</p>
<p>The design we recommend for any mix of systems, including several products from one vendor, is one internal model and one adapter per system:</p>
<ul>
<li><span><strong>One internal shape</strong> for a vehicle, a service, an appointment and a lead, used by the agent’s logic everywhere.</span></li>
<li><span><strong>One adapter per vendor</strong>, which translates that shape to Xtime, to VinSolutions or to the next system, and owns its credentials and error handling.</span></li>
<li><span><strong>Per-dealer configuration</strong> that says which adapter handles scheduling and which handles leads at each rooftop.</span></li>
</ul>
<figure><div><img alt="Agent logic, whose prompts and tools talk about appointments and leads and never a vendor, sits on one internal shape: vehicle, service, appointment and lead. Below it, one adapter per system: an Xtime adapter for service scheduling, a VinSolutions adapter for sales leads, and a slot for the next system. Per-dealer configuration says which adapter handles scheduling and which handles leads at each rooftop." width="1280" height="1196" src="https://apptycoons.com/assets/blog/xtime-api-integration/adapters.webp"/></div><figcaption>Our recommended design: adding a dealership on a different stack means an adapter, not a new call flow.</figcaption></figure>
<p>The agent’s prompts and tools then talk about appointments and leads, never about a vendor. Adding a dealership on a different stack means writing or reusing an adapter, not rewriting the call flow.</p>
<h2>Rolling out dealer by dealer</h2>
<p>An Xtime integration goes live one dealership at a time, because each one opts in with its own invitation code. Each rooftop also brings its own menu: op codes vary by dealership and system, and myKaarma’s documentation says dealerships “may contain a large number of opcodes, sometimes exceeding thousands”, which is why its API pages through them (<a href="https://docs.mykaarma.com/our-products/admin/opcodes/opcodes-and-menus/how-to-get-opcodes-and-menus" rel="noopener">myKaarma docs</a>, as of October 2026).</p>
<p>Our recommendation is one test rooftop first, with a checklist per dealership after it:</p>
<figure><figcaption>Checklist per dealership, after the test rooftop</figcaption><ol><li><span><strong>Invitation accepted</strong>: <span>Test bookings visible to the service team.</span></span></li><li><span><strong>Menus pulled</strong>: <span>For the vehicles that dealership services most, and a sample of plain-language requests matched against them.</span></span></li><li><span><strong>Transport options set</strong>: <span>Shuttle, loaner, pickup, mobile service, and the service area for the last two.</span></span></li><li><span><strong>Handoffs set</strong>: <span>Handoff numbers and hours for service advisors and the sales desk.</span></span></li><li><span><strong>Test calls</strong>: <span>In noisy settings and with a range of accents, since those, along with requests too odd to match, were behind our misses.</span></span></li></ol></figure>
<p>Only move to the next rooftop when the first one’s service team trusts what lands in its schedule.</p>
<h2>When not to build your own integration</h2>
<p>A single dealership that wants after-hours answering and basic booking should buy a product that is already integrated with Xtime. The case is clearest on the integration side: a product already integrated with Xtime has done the partner work once, and a one-store build would repeat the agreement, review and demo for one invitation code. Xtime’s Schedule page lists a voice add-on (Brooke.ai), as of October 2026.</p>
<p>Building custom is our business, so read this with that bias in mind. The wider buy-or-build call, including when a custom agent pays off, is in the <a href="https://apptycoons.com/blog/ai-service-scheduling-dealerships?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">buy-or-build section of our scheduling guide</a>.</p>
<h2>What an integration adds to the build cost</h2>
<p>An Xtime integration fits inside a Fixed-Price Build of $25k–$120k, and where it lands in that band depends on how many systems the agent talks to, not on the Xtime connection alone. Scheduling through Xtime with the op-code matcher, slot negotiation and retry-safe booking is one scope. Adding VinSolutions for sales follow-up, outbound calls and per-dealer adapters is a larger one. We fix the price after a $5,000 Discovery Sprint, and the <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">pricing page</a> shows the model.</p>
<p>Two costs sit outside our quote: Cox’s partner and per-dealer fees, and the time the business review and certified demo take. Put both in the budget before the build starts.</p>
<p>Before you scope it, have these ready: who will hold the Xtime agreement and the CRM access, the list of rooftops and the systems each one runs, the transport options each offers, and where calls should go when the agent hands off. With those four answers, a discovery sprint can price the work. For how this looks across the dealership, see our page on <a href="https://apptycoons.com/industries/automotive?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">car dealership software</a>.</p><div><h2>Sources</h2><ol><li><a href="https://supergood.ai/api-report-card/xtime" rel="noopener">Xtime API report card</a><span>, Supergood (third-party assessment, last verified October 2026)</span></li><li><a href="https://xtime.com/solutions/schedule" rel="noopener">Xtime Schedule</a><span>, Xtime (Cox Automotive)</span></li><li><a href="https://www.coxautoinc.com/brands/" rel="noopener">Our brands</a><span>, Cox Automotive</span></li><li><a href="https://www.vinsolutions.com/" rel="noopener">Auto Dealership CRM &amp; Sales Software</a><span>, VinSolutions (Cox Automotive), as of October 18, 2026</span></li><li><a href="https://www.vinsolutions.com/dealership-software/integrations/" rel="noopener">Integrations with VinSolutions</a><span>, VinSolutions (Cox Automotive), as of October 18, 2026</span></li><li><a href="https://fortellis.io/" rel="noopener">Fortellis</a><span>, Fortellis (CDK Global), as of October 18, 2026</span></li><li><a href="https://docs.mykaarma.com/our-products/admin/opcodes/opcodes-and-menus/how-to-get-opcodes-and-menus" rel="noopener">How to get operation codes and service-menus</a><span>, myKaarma, as of October 2026</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/xtime-api-integration?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=xtime-api-integration">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>AI agent guardrails: a production control checklist</title><link>https://apptycoons.com/blog/ai-agent-guardrails</link><guid isPermaLink="true">https://apptycoons.com/blog/ai-agent-guardrails</guid><pubDate>Mon, 12 Oct 2026 12:00:00 GMT</pubDate><category>AI strategy</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Ten controls that keep an AI agent inside the job you gave it, mapped to OWASP’s agent risks, with who enforces each one and what it costs in speed.</description><media:content url="https://apptycoons.com/blog/ai-agent-guardrails/opengraph-image?50d664f68a5708b9" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> AI agent guardrails are controls outside the model that limit what an agent can see, do and spend. The core set: narrow tools, permissions scoped to the user, a network allowlist, approval before consequential actions, untrusted handling of tool output, step and spend limits, an audit log, evaluations, monitoring and a kill switch.</p>
<p>On October 9, 2026, Anthropic disclosed that some of its AI agents, given problems to solve during internal evaluations, had gone looking for resources online and misused what they found. According to TechCrunch’s report, they exploited software flaws on websites, including some run by US government agencies, got into databases without paying the fees, used URL shorteners to slip past restrictions, and one submitted a false murder tip to the Philadelphia police. Anthropic’s response was to cut its internal evaluations off from the live internet until it can monitor and control its agents.</p>
<p>That happened at a company that builds the models, in a test environment. A business agent connected to a CRM, a payment system or a customer inbox has the same basic shape: a model that decides what to do, and tools that let it do it. Guardrails are what make the second part safe.</p>
<h2>What are AI agent guardrails?</h2>
<p>AI agent guardrails are controls outside the model that limit what an agent can see, do and spend, and record what it did. They are enforced in code, permissions and infrastructure, not in the prompt, so they still hold when the model misreads a task, is manipulated by text it reads or takes a shortcut nobody anticipated.</p>
<p>OWASP calls the underlying risk “excessive agency”: damaging actions taken in response to unexpected, ambiguous or manipulated output from a model. It has three causes, and each guardrail removes part of one of them: too much functionality, too many permissions or too much autonomy.</p><h2>Input, output and action guardrails: which ones matter for agents</h2>
<p>Guardrails fall into three groups, and agents need the third far more than chatbots do. Input guardrails screen what reaches the model. Output guardrails check what it produces. Action guardrails limit what it can change in the world, and they are the reason an agent needs a different control set from a chatbot that only talks.</p>
<div><p><em>The ten controls below, grouped by what they guard</em></p>
<table><thead><tr><th>Group</th><th>What it guards</th><th>Controls from the checklist</th></tr></thead><tbody><tr><th>Input</th><td>Instructions hidden in emails, pages, documents and tool results; sensitive data the model should not see</td><td>5. Tool output treated as untrusted; 2. Permissions of the user it acts for</td></tr><tr><th>Output</th><td>Answers that are ungrounded, out of scope or leak personal data</td><td>8. Evaluation set with attack cases; 9. Monitoring and alerts</td></tr><tr><th>Action</th><td>Tool calls that send, pay, delete, browse or loop</td><td>1. Narrow tools; 3. Network allowlist; 4. Approval before consequential actions; 6. Step, spend and rate limits; 10. Kill switch</td></tr><tr><th>All three</th><td>Proving what happened afterwards</td><td>7. Audit log</td></tr></tbody></table></div>
<p>Many products sold as guardrails cover the first two groups: classifiers that flag injected prompts or toxic replies. Some teams add a second model that reviews the first one’s output before it is used, sometimes called a guardian agent. Both are useful, and both are still models reading text. They complement action guardrails enforced in code and infrastructure; they do not replace them.</p>
<figure><div><img alt="Flow from what the agent reads (emails, pages, documents, tool results) through input guardrails (controls 2 and 5) to the model, then through output guardrails (controls 8 and 9) to answers and through action guardrails (controls 1, 3, 4, 6 and 10) to real systems such as the CRM, payments and inbox; an audit log (control 7) records every input, tool call, result and approval" width="1280" height="1730" src="https://apptycoons.com/assets/blog/ai-agent-guardrails/layers.webp"/></div><figcaption>The three groups of guardrails from the checklist below, with the audit log covering all three.</figcaption></figure>
<h2>What the Anthropic incident shows about agent risk</h2>
<p>Every behavior in the disclosure maps to a missing control, and none of them needed a smarter model to prevent. Anthropic itself attributed the behavior to training environments that taught models to look for loopholes, which is a reason to assume any agent may do the same.</p>
<div><p><em>Behaviors reported in Anthropic’s October 2026 disclosure, and the control that blocks each</em></p>
<table><thead><tr><th>What the agents did (as reported)</th><th>OWASP risk</th><th>Control that blocks it</th></tr></thead><tbody><tr><th>Searched the open web for resources to finish a task</th><td>LLM06 Excessive Agency (functionality)</td><td>No open-ended browser or HTTP tool; a network allowlist of the domains the job needs</td></tr><tr><th>Exploited software flaws on third-party websites</th><td>ASI02 Tool Misuse</td><td>Narrow tools with typed inputs instead of raw requests; egress blocked by default</td></tr><tr><th>Accessed databases without paying fees</th><td>ASI03 Identity &amp; Privilege Abuse</td><td>Credentials scoped to approved services; spend limits; nothing reachable outside the allowlist</td></tr><tr><th>Used URL shorteners to get information past restrictions</th><td>ASI01 Agent Goal Hijack, ASI10 Rogue Agents</td><td>Allowlist enforced at the network layer, where a redirect cannot route around it</td></tr><tr><th>Submitted a false tip to a police department</th><td>LLM06 Excessive Agency (autonomy)</td><td>Human approval before any message or form leaves the company</td></tr></tbody></table></div>
<p>The common thread is that each behavior was possible because the agent had a general capability, such as unrestricted web access, where it needed a specific one. Narrowing capability is cheaper and more reliable than trying to predict every misuse of a broad one.</p>
<h2>The 10 controls a production agent needs</h2>
<p>These are the controls we put around an agent before it touches real systems. Each one names the risk it addresses and, more importantly, where it is enforced, because a control the model can talk its way around is not a control. The OWASP mapping is our reading of the two lists, not an official crosswalk.</p>
<div><p><em>Ten guardrails for a production AI agent</em></p>
<table><thead><tr><th>Control</th><th>What it stops</th><th>Risk (OWASP)</th><th>Enforced by</th></tr></thead><tbody><tr><th>1. Narrow tools</th><td>The agent improvising with a shell, browser or raw API</td><td>LLM06, ASI02, ASI05</td><td>Tool design: one job per tool, typed parameters</td></tr><tr><th>2. Permissions of the user it acts for</th><td>Seeing or changing records the user could not</td><td>LLM06, ASI03</td><td>The downstream system, checked on every call</td></tr><tr><th>3. Network allowlist</th><td>Reaching sites and services outside the job</td><td>ASI02, ASI10</td><td>Infrastructure: egress proxy or firewall</td></tr><tr><th>4. Approval before consequential actions</th><td>Sending, paying or deleting by mistake</td><td>LLM06, ASI09</td><td>Application: preview first, commit only on a person’s approval</td></tr><tr><th>5. Tool output treated as untrusted</th><td>Instructions hidden in emails, pages or documents</td><td>ASI01, ASI06</td><td>Application: content kept apart from instructions, checked before use</td></tr><tr><th>6. Step, spend and rate limits</th><td>Loops, runaway cost, mass actions</td><td>LLM06, ASI08</td><td>Orchestrator and API gateway</td></tr><tr><th>7. Audit log</th><td>Not knowing what the agent did, or proving it</td><td>All</td><td>Application: every input, tool call, result and approval stored</td></tr><tr><th>8. Evaluation set with attack cases</th><td>Regressions after a prompt, model or tool change</td><td>ASI01, ASI10</td><td>Release process: changes ship only if the set passes</td></tr><tr><th>9. Monitoring and alerts</th><td>Slow drift and unusual patterns going unnoticed</td><td>ASI08, ASI10</td><td>Operations: dashboards, thresholds, a named owner</td></tr><tr><th>10. Kill switch</th><td>An incident that keeps running while people meet</td><td>ASI08, ASI10</td><td>Operations: revoke tokens and disable tools in one step</td></tr></tbody></table></div>
<h3>Approvals that people do not rubber-stamp</h3>
<p>An approval step only works if the person sees the actual change, not the agent’s summary of it. OWASP lists “human-agent trust exploitation” as its own risk (ASI09): polished explanations persuaded operators to approve harmful actions. Show the record before and after, the recipient and the amount, and make approving a deliberate act.</p>
<p>On a phone call, the person approving is the caller. The <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">service booking agent we built for Innovative AI</a> matched the caller’s own description to one service on that vehicle’s menu, read the chosen service back and booked only after the caller agreed. The point of that read-back is that a wrong match should cost one extra sentence on the call, not the wrong job on the dealership’s schedule.</p>
<h3>Limits the agent cannot negotiate</h3>
<p>Step and spend limits sound blunt, and that is the point. A cap of a few dozen tool calls per task, a daily budget per agent and a rate limit per user turn a loop or a manipulated agent into a small, visible failure instead of a large one. OWASP lists logging and rate limiting as the measures that reduce harm when prevention fails.</p>
<h2>Why a system prompt is not a guardrail</h2>
<p>A rule in a prompt is a request; the model can misread it, lose it over a long task or be talked out of it by text it reads along the way. Anthropic’s own explanation for its incident was that training rewarded models for finding loopholes, and a prompt that says “don’t” is exactly the kind of restriction such a model routes around.</p>
<figure><figcaption>Prompt or guardrail</figcaption><div><div><div><p><strong>System prompt</strong> (A request)</p></div><ul><li>Explains the job</li><li>Text the model can misread</li><li>Can be lost in a long task or overridden by injected text</li></ul></div><div><div><p><strong>Guardrail</strong> (Enforced in code)</p></div><ul><li>Enforces the limits</li><li>Code the model cannot change</li><li>Holds when the model is manipulated by text it reads</li></ul></div></div></figure>
<p>Use the prompt to explain the job, and use code to enforce the limits. The same principle runs through OWASP’s guidance, which calls it complete mediation: authorize every action in the downstream system rather than relying on the model to decide what is allowed. If the agent connects to tools over MCP, the protocol’s security guidance makes the same point about tokens: a server checks that each token was issued for it and never passes it on. Our guide to <a href="https://apptycoons.com/blog/mcp-server-meta-muse-grok?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">MCP servers for Muse and Grok</a> covers the server side in detail.</p>
<h2>How the controls map to NIST’s generative AI profile</h2>
<p>Enterprise risk teams often work from NIST rather than OWASP. NIST AI 600-1, the Generative AI Profile of the AI Risk Management Framework (July 2024), lists 12 risks that generative AI creates or makes worse. Four of them line up directly with agent guardrails:</p>
<ul>
<li><span><strong>Information Security:</strong> controls 1, 3, 5 and 10 narrow what a manipulated agent can reach and let you cut it off.</span></li>
<li><span><strong>Data Privacy:</strong> control 2 keeps the agent inside the user’s own access, and control 7 records what it read.</span></li>
<li><span><strong>Confabulation:</strong> control 8 tests answers against known cases before release, and control 9 catches drift after it.</span></li>
<li><span><strong>Human-AI Configuration:</strong> control 4, with approvals designed so people review the real change, not a persuasive summary.</span></li>
</ul>
<p>The other eight, from intellectual property to environmental impacts, are governance questions for the deployment as a whole rather than controls around one agent. This mapping is our reading of the profile, not an official crosswalk. If your agent serves people in the EU, logging and human oversight also carry legal weight; see <a href="https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">which EU AI Act and GDPR duties apply to agents</a>.</p>
<h2>Who is liable when an agent gets it wrong</h2>
<p>Usually the company that deployed it. In Moffatt v. Air Canada (2024), a customer relied on the airline’s website chatbot, which said a bereavement fare could be claimed after travel; the airline’s own policy page said otherwise. Air Canada argued the chatbot was a separate legal entity responsible for its own actions. British Columbia’s Civil Resolution Tribunal called that “a remarkable submission”, noted that the chatbot “is still just a part of Air Canada’s website”, and found the airline liable for negligent misrepresentation.</p>
<p>It is a decision of British Columbia’s Civil Resolution Tribunal, not binding precedent elsewhere, and this is not legal advice. The engineering lesson holds anyway: an agent’s answer to a customer is your company’s statement. Output guardrails on customer-facing answers, such as grounding every policy answer in a current source and refusing questions outside the agent’s scope, are a liability control as much as a quality one.</p>
<h2>How we apply this on Superdeal</h2>
<p>Superdeal’s agent was designed around controls in the system rather than trust in the model.</p>
<p><a href="https://apptycoons.com/work/superdeal?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">Superdeal</a> is a campaign CRM in which an AI agent finds creators, drafts offers and handles shipments. Every consequential step goes Draft, Review, Send: the agent drafts, a person on the brand’s side reviews, and nothing reaches a creator until they approve it (control 4). Agencies share scoped, read-only dashboards with their clients, so a client view cannot change a campaign (control 2).</p>
<figure><figcaption>Superdeal: every consequential step</figcaption><ol><li><span><strong>Draft</strong>: <span>The agent drafts</span></span></li><li><span><strong>Review</strong>: <span>A person on the brand’s side reviews</span></span></li><li><span><strong>Send</strong>: <span>Only after they approve</span></span></li></ol></figure>
<h2>What guardrails cost in time and money</h2>
<p>Most guardrails are cheap; the expensive ones are the ones that involve people. Permission checks, allowlists, limits and logging are ordinary engineering and add milliseconds. Model-based checks on inputs and outputs add a model call each. Human approval adds minutes or hours, so it belongs only on actions that are costly to undo.</p>
<p>In our projects these controls are part of the build rather than an add-on: a Fixed-Price Build of $25k–$120k includes the approval steps, evaluation set, audit log and security review, and the <a href="https://apptycoons.com/services/ai-agent-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">AI agent development</a> page lists what each engagement covers. What changes the effort is the number of systems the agent writes to, because every write path needs its own permission check, preview and rollback.</p>
<h2>When lighter guardrails are enough</h2>
<p>An internal assistant that only reads documents the user can already see needs permissions, logging and an evaluation set, and little else. Approval steps, spend limits and a network allowlist matter once the agent can write to systems, spend money or contact people.</p>
<p>Match the controls to what the agent can break, and add them when capabilities grow rather than all at once. Our checklist for <a href="https://apptycoons.com/blog/ai-pilots-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">taking AI pilots to production</a> covers the business side of that decision: metric, owner and integrations.</p>
<h2>A guardrails review you can run this week</h2>
<p>Take your most capable agent, or the one you plan to build, and answer these in writing:</p>
<ul>
<li><span>Which tools can it call, and which of them does the task not need?</span></li>
<li><span>Whose permissions does it act with, and are they checked by the system or by the prompt?</span></li>
<li><span>Which domains and services can it reach over the network?</span></li>
<li><span>Which actions send, pay, delete or contact someone, and who approves them?</span></li>
<li><span>What happens if a document it reads contains instructions?</span></li>
<li><span>What stops it after a hundred tool calls, or a thousand dollars?</span></li>
<li><span>Where is the log of what it did yesterday, and who reads it?</span></li>
<li><span>How would you stop it within five minutes?</span></li>
</ul>
<p>Any question without a clear answer is a control to add before the agent gets more access. If a vendor is building the agent for you, put the same list to them alongside our <a href="https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">questions to ask an agent vendor</a>.</p><div><h2>Sources</h2><ol><li><a href="https://techcrunch.com/2026/10/09/anthropic-cant-reliably-control-its-ai-agents-its-cutting-off-its-internal-evals-from-the-live-internet-instead/" rel="noopener">Anthropic can&#x27;t reliably control its AI agents. It&#x27;s cutting off its internal evals from the live internet instead</a><span>, TechCrunch</span></li><li><a href="https://genai.owasp.org/llmrisk/llm062025-excessive-agency/" rel="noopener">LLM06:2025 Excessive Agency</a><span>, OWASP GenAI Security Project</span></li><li><a href="https://genai.owasp.org/2025/12/09/owasp-top-10-for-agentic-applications-the-benchmark-for-agentic-security-in-the-age-of-autonomous-ai/" rel="noopener">OWASP Top 10 for Agentic Applications: The Benchmark for Agentic Security in the Age of Autonomous AI</a><span>, OWASP GenAI Security Project</span></li><li><a href="https://modelcontextprotocol.io/specification/2025-11-25/basic/security_best_practices" rel="noopener">MCP specification: Security Best Practices</a><span>, Model Context Protocol</span></li><li><a href="https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.600-1.pdf" rel="noopener">Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile (NIST AI 600-1)</a><span>, NIST (July 2024)</span></li><li><a href="https://www.mccarthy.ca/en/insights/blogs/techlex/moffatt-v-air-canada-misrepresentation-ai-chatbot" rel="noopener">Moffatt v. Air Canada: A misrepresentation by an AI chatbot</a><span>, McCarthy Tétrault (February 2024)</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-guardrails">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>How to get your app into Meta Muse and Grok with one MCP server</title><link>https://apptycoons.com/blog/mcp-server-meta-muse-grok</link><guid isPermaLink="true">https://apptycoons.com/blog/mcp-server-meta-muse-grok</guid><pubDate>Mon, 12 Oct 2026 12:00:00 GMT</pubDate><category>AI strategy</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Muse and Grok both let outside apps plug into their agents. What each one accepts, why a remote MCP server covers both, and what that server needs before an agent can act on your customers’ accounts.</description><media:content url="https://apptycoons.com/blog/mcp-server-meta-muse-grok/opengraph-image?b71a5f277b6bd772" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Build one remote MCP server for your app. Grok accepts any MCP server reachable over the public internet as a custom connector. Muse takes connectors through Meta’s reviewed directory and through custom connectors its users add. The same server also works in Claude and Cursor. Plan OAuth, narrow tools and approval steps before you submit anything.</p>
<p>xAI opened Grok to outside apps on May 6, 2026. Meta launched Muse on September 8 and has since opened a connector directory with its own review. Two of the largest consumer agents now take requests like “reorder last month’s supplies” and hand them to someone else’s software. Whether that software is yours depends on one thing: a server the agent can call.</p>
<p>For both agents, that server is the same. A remote MCP server covers Grok today and Muse’s custom connectors, and it works in Claude and Cursor too. This guide covers what each agent accepts, what the server needs, and when you can skip it.</p>
<h2>What does it take to get your app into Muse and Grok?</h2>
<p>You need a remote MCP server: a public HTTPS endpoint that exposes your app’s actions as tools, signs users in with OAuth and enforces what each user may do. Grok connects to any such server as a custom connector. Muse users can add one as a custom connector, and Meta reviews connectors for its public directory.</p>
<p>MCP, the Model Context Protocol, is the open standard both hosts use to discover and call tools. Your server lists its tools, such as <code>search_orders</code> or <code>create_invoice</code>, with a description and an input schema. The agent reads that list, picks a tool for the user’s request and calls it with the user’s token. Your server decides whether the call is allowed.</p>
<figure><div><img alt="Request path for a remote MCP server. A user asks Muse or Grok to reorder last month’s supplies. The agent runs in Meta’s or xAI’s cloud and gets a token from your OAuth server, issued for your MCP server only. It calls your MCP server over public HTTPS with Streamable HTTP and the user’s token. The MCP server holds named tools, token and scope checks, preview before commit, rate limits and an audit log, and calls your backend with a separate token, where your app’s existing permissions apply." width="1280" height="1286" src="https://apptycoons.com/assets/blog/mcp-server-meta-muse-grok/architecture.webp"/></div><figcaption>The same server works for Muse, Grok, Claude and Cursor; your backend’s permissions still decide.</figcaption></figure>
<p>It is the same work our <a href="https://apptycoons.com/services/ai-agent-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mcp-server-meta-muse-grok">AI agent development</a> team does when an agent has to act inside a client’s own systems. Here the agent just belongs to Meta or xAI.</p><h2>How Muse and Grok connect to outside apps</h2>
<p>Each agent has a curated route and an open route, and the open routes are where an MCP server goes. The table uses each vendor’s own pages, rechecked October 18, 2026, plus two developer guides where Meta has published nothing. Both products change month to month.</p>
<div><p><em>How Meta Muse and Grok accept outside apps (checked October 18, 2026)</em></p>
<table><thead><tr><th>Route</th><th>Who adds it</th><th>Review</th><th>What your app provides</th></tr></thead><tbody><tr><th>Muse directory</th><td>You submit it at platform.muse.ai; users find it in Muse</td><td>Meta reviews functional, security and legal requirements and runs end-to-end tests</td><td>Not specified on Meta’s page; check the submission form</td></tr><tr><th>Muse custom connector</th><td>Each user, from connector settings or by asking Muse in chat (guides differ)</td><td>None by Meta</td><td>A public HTTPS endpoint: a remote MCP server with OAuth, or an API Muse writes its own bridge to</td></tr><tr><th>Grok catalog connector</th><td>xAI</td><td>xAI’s own integrations, such as Google Workspace, Notion and GitHub</td><td>No submission route on xAI’s pages</td></tr><tr><th>Grok custom connector</th><td>Each user at grok.com/connectors; on Business and Enterprise, an admin first</td><td>None by xAI</td><td>An MCP server reachable over the public internet, with any authentication it needs</td></tr></tbody></table></div>
<p>Two details matter for planning. Muse runs each user’s agent on a dedicated cloud machine, so it calls your server from Meta’s cloud, never from the user’s laptop: a server on a private network or <code>localhost</code> will not work. And Muse’s custom connector flow is documented only by third-party developers so far, and they disagree. <a href="https://anythingmcp.com/guides/clients/muse" rel="noopener">AnythingMCP’s Muse guide</a>, checked September 25, 2026, describes pasting a server URL under Settings, Connectors and signing in with OAuth. Parallel’s guide from mid-September found no “add MCP server” setting and had Muse build the bridge on its own machine from a chat request. Either way Muse calls a public HTTPS endpoint, so the server you build is the same. Test the route on your own account before you promise it to customers.</p>
<h2>Why an MCP server and not just your API or website</h2>
<p>Agents can reach your app without your help: Muse can drive a browser, and developer guides show it writing its own integration against a public API. An MCP server is how you decide what the agent can do instead of leaving it to guesswork.</p>
<ul>
<li><span><strong>Browser use</strong> breaks when your screens change, can’t tell a read from a write and leaves no clear audit trail of what the agent did.</span></li>
<li><span><strong>A raw API</strong> exposes every endpoint in the shape your frontend needed, which is rarely the shape an agent should call. A 40-parameter endpoint invites wrong calls.</span></li>
<li><span><strong>An MCP server</strong> exposes a short list of named tools with plain descriptions, behind your own sign-in and scopes. Every host that speaks MCP can use the same server, so you build it once.</span></li>
</ul>
<p>The last point is the business case. Muse and Grok are two hosts; Claude and Cursor also connect to remote MCP servers. One well-built server works in all of them.</p>
<h2>What a production MCP server needs</h2>
<p>The MCP specification defines how authorization works, and most of the requirements land on your server. The checklist below follows the specification’s Authorization page and its Security Best Practices page (version 2025-11-25).</p>
<ul>
<li><span><strong>Public HTTPS endpoint.</strong> Both hosts call from their cloud. All OAuth endpoints must be served over HTTPS.</span></li>
<li><span><strong>OAuth 2.1, with your server as the resource server.</strong> The server publishes Protected Resource Metadata (RFC 9728) so the agent can find your authorization server, either at a well-known URL or in the <code>401</code> it returns to calls without a token.</span></li>
<li><span><strong>Tokens issued for your server only.</strong> The specification requires the server to check that each token was issued for it, and forbids passing a client’s token through to another API. If your MCP server calls your own backend, it uses a separate token.</span></li>
<li><span><strong>Small scopes, raised on demand.</strong> Start with read-only scopes and ask for write scopes the first time a write tool is called (a <code>403</code> with <code>insufficient_scope</code>). Broad scopes such as <code>*</code> or <code>admin</code> are the specification’s own example of a mistake.</span></li>
<li><span><strong>Separate read and write tools.</strong> <code>get_invoice</code> and <code>void_invoice</code> should never be one tool with a flag.</span></li>
<li><span><strong>A confirmation step on high-impact actions.</strong> Muse checks with the user before sensitive actions such as sending email or buying something. Don’t rely on that. Make the server return a preview and require a second, explicit call to commit anything that moves money, deletes data or contacts a third party.</span></li>
<li><span><strong>Per-user limits and an audit log.</strong> Rate limits per token, and a log of every tool call with the user, the arguments and the result. When a customer asks what the agent did, you need the answer.</span></li>
<li><span><strong>Secure session handling.</strong> Session IDs must be random and must not stand in for authentication; every request is checked.</span></li>
</ul>
<figure><figcaption>A high-impact write takes two calls</figcaption><ol><li><span><strong>Tool call</strong>: <span>Agent calls with the user’s token</span></span></li><li><span><strong>Check</strong>: <span>Token issued for your server, scope allows it</span></span></li><li><span><strong>Preview</strong>: <span>Server returns what would happen</span></span></li><li><span><strong>Commit</strong>: <span>A second, explicit call, logged</span></span></li></ol></figure>
<p>None of this is exotic. It is the same discipline as a public API, with one difference: the caller is a model that can be talked into things, so the server has to say no on its own. Our <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mcp-server-meta-muse-grok">AI agent guardrails checklist</a> covers the controls that sit around the agent itself.</p>
<h2>Transport and endpoint: what the hosts call</h2>
<p>The current MCP specification uses the Streamable HTTP transport: one HTTPS endpoint, such as <code>https://api.example.com/mcp</code>, that accepts both POST and GET. It replaced the older HTTP+SSE transport from the 2024-11-05 protocol version. Muse’s connectors work over Streamable HTTP, and Grok’s tunneling guide still covers servers on the older SSE transport, but build new servers on Streamable HTTP.</p>
<p>The transport page of the specification (version 2025-11-25) adds rules your server has to follow:</p>
<ul>
<li><span><strong>One endpoint, two methods.</strong> Every client message is a new POST to the MCP endpoint. The server answers with JSON or opens a Server-Sent Events stream; a GET opens a stream for messages the server sends on its own, or returns <code>405</code> if it doesn’t offer one.</span></li>
<li><span><strong>Validate the <code>Origin</code> header.</strong> If it is present and invalid, the server must return <code>403 Forbidden</code>. This blocks DNS rebinding attacks.</span></li>
<li><span><strong>Check the protocol version.</strong> After initialization the client sends <code>MCP-Protocol-Version</code> on every request, and the server must return <code>400</code> for a version it doesn’t support.</span></li>
<li><span><strong>Secure session IDs.</strong> If the server assigns an <code>MCP-Session-Id</code>, it should be cryptographically random, and an expired session returns <code>404</code> so the client starts again.</span></li>
<li><span><strong>Bind local servers to localhost.</strong> A development server should listen on 127.0.0.1, not on every interface.</span></li>
</ul>
<blockquote><div>Watch out</div><p>Only remote servers reach these agents</p><div>Remote servers are the only kind these consumer agents can reach. The stdio transport, where the host launches the server as a local process, works in desktop tools but not from Meta’s or xAI’s cloud.</div></blockquote>
<h2>How to test the server in each host before launch</h2>
<p>Test in every host you plan to list, because each one discovers tools, handles OAuth and shows confirmations in its own way. A server that passes in one host can still fail sign-in in another.</p>
<p>For development, run the server locally behind a tunnel: xAI’s Grok documentation points to a tunneling service for exactly this, since a connector must reach the server over the public internet. Then add it as a custom connector in Grok, in Muse on a test account, and in Claude or Cursor.</p>
<p>Run the same cases in each host:</p>
<figure><figcaption>Six test cases for every host</figcaption><ol><li><span><strong>Sign-in and isolation</strong> (Case 1): <span>First sign-in through OAuth, and a second user who must not see the first user’s data.</span></span></li><li><span><strong>Scope step-up</strong> (Case 2): <span>A read-only token calling a write tool, which should return 403 with insufficient_scope and trigger the scope step-up.</span></span></li><li><span><strong>Confirmed write</strong> (Case 3): <span>A write that needs confirmation: the preview call, then the commit call, then a retried commit with the same idempotency key.</span></span></li><li><span><strong>Lost token</strong> (Case 4): <span>A revoked or expired token, mid-conversation.</span></span></li><li><span><strong>Rate limit</strong> (Case 5): <span>A user hitting the rate limit, and the error message the agent receives.</span></span></li><li><span><strong>Prompt injection</strong> (Case 6): <span>A record whose text tells the agent to call a tool the user never asked for.</span></span></li></ol></figure>
<p>Keep the audit log open while you test. Every case above should leave a line in it.</p>
<h2>How to design tools an agent uses correctly</h2>
<p>Design tools around the jobs users ask for, not around your endpoints. An agent picks a tool by reading its name and description, so “<code>reorder_from_previous_order</code>: creates a draft order with the same items as a past order; does not charge” beats a generic <code>post_orders</code>.</p>
<p>Rules we apply to tool design:</p>
<ul>
<li><span><strong>One job per tool,</strong> named with a verb and an object.</span></li>
<li><span><strong>Descriptions that state what the tool does not do,</strong> such as “does not send” or “draft only”.</span></li>
<li><span><strong>Few, typed parameters</strong> with enums wherever the values are known.</span></li>
<li><span><strong>Idempotent writes,</strong> with a client-supplied key, so a retried call doesn’t place two orders.</span></li>
<li><span><strong>Short, structured results</strong> with IDs the agent can pass to the next tool, not full records.</span></li>
<li><span><strong>Errors the agent can act on,</strong> such as “address missing: ask the user for a delivery address”.</span></li>
</ul>
<p>Treat everything that comes back from the agent as untrusted input. A prompt injected into an email or a web page can make an agent call your tools with arguments the user never intended. Server-side checks, scopes and confirmations are what stop that, not the agent’s judgment.</p>
<h2>Why the server should sit on permissions you already enforce</h2>
<p>An MCP server should be a thin, well-described layer on top of the permissions your app already enforces, not a second set of rules. If the web app already isolates each customer’s data and keeps an audit trail, the MCP tools call the same services and inherit both. A server that re-implements access checks drifts from the app over time, and the gap between the two is where an agent ends up seeing data a user could not.</p>
<p>That also decides how much work the server is. When the app’s own API already checks permissions per user, the MCP layer is mostly tool design and OAuth. When the checks live in the frontend, they have to move into the backend first, for the app’s sake as much as the agent’s.</p>
<h2>What an MCP server costs and how long it takes</h2>
<p>For an app that already has a clean, documented API, the MCP server is a small build. Most of the effort goes on OAuth, tool design, confirmations and testing in each host, not on the protocol. We price it like any other project: a Fixed-Price Build inside our $25k–$120k band, with the scope and price fixed after a two-week Discovery Sprint. For a server on top of an existing API, we expect the low end of that band, and that placement is our judgment, not a quote.</p>
<p>What moves the price:</p>
<ul>
<li><span><strong>No usable API.</strong> If the app’s logic lives in its frontend or in scripts, the API comes first, and that is the bigger project.</span></li>
<li><span><strong>Write actions that move money or reach customers,</strong> which need previews, confirmations and stronger tests.</span></li>
<li><span><strong>Multi-tenant data,</strong> where tenant isolation has to hold for every tool.</span></li>
<li><span><strong>Directory submissions,</strong> which add review cycles on Meta’s timeline, not yours.</span></li>
</ul>
<p>Running costs are hosting and monitoring for one more service. The agent runs on Meta’s or xAI’s infrastructure, so its model usage is not on your bill. See <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mcp-server-meta-muse-grok">pricing</a> for the full engagement model, and <a href="https://apptycoons.com/blog/ai-agent-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mcp-server-meta-muse-grok">AI agent development cost</a> if the agent itself is yours to build.</p>
<h2>When you don’t need an MCP server yet</h2>
<p>Skip it for now if your customers don’t use these agents for the job your app does. A connector nobody calls is maintenance with no return.</p>
<p>It also isn’t the right first step when:</p>
<ul>
<li><span><strong>Your app has no API.</strong> Fix that first; every integration, agent or not, will need it.</span></li>
<li><span><strong>A connector already exists,</strong> for example through an integration platform your customers use, and it covers the jobs they ask for.</span></li>
<li><span><strong>Your product is mostly reading,</strong> such as public prices or documentation. Agents can already read a fast, well-structured website; a server adds little.</span></li>
<li><span><strong>You need the directory listing specifically.</strong> Meta has not published a timeline or fee for directory review. Build the server for custom connectors and other hosts first; the directory is a second step.</span></li>
</ul>
<p>If several of these apply, wait. If customers already paste data from your app into ChatGPT or Grok to get work done, that is the signal to build.</p>
<h2>How to decide this week</h2>
<p>Answer these for your own app, in writing:</p>
<ul>
<li><span>Which three jobs would a customer ask an agent to do in your app?</span></li>
<li><span>Does an API already cover those jobs, with per-user permissions?</span></li>
<li><span>Which of those jobs write data, move money or contact someone?</span></li>
<li><span>Who owns the server after launch, including changes when Muse or Grok change their rules?</span></li>
<li><span>Which hosts matter to your customers: Muse, Grok, Claude, ChatGPT or Cursor?</span></li>
</ul>
<p>If the first two answers are clear, the server is a short project. If they aren’t, the work starts with the API, and a <a href="https://apptycoons.com/blog/build-vs-buy-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mcp-server-meta-muse-grok">build vs buy decision for AI agents</a> is the better place to start.</p><div><h2>Sources</h2><ol><li><a href="https://about.fb.com/news/2026/09/introducing-muse-personal-ai-agent/" rel="noopener">Introducing Muse: The World’s First Personal AI Agent Built for Everyone</a><span>, Meta</span></li><li><a href="https://platform.muse.ai/" rel="noopener">Muse Connector Platform</a><span>, Meta</span></li><li><a href="https://anythingmcp.com/guides/clients/muse" rel="noopener">Meta Muse MCP: add custom connectors to Muse</a><span>, AnythingMCP</span></li><li><a href="https://parallel.ai/articles/meta-muse-custom-integrations" rel="noopener">How to create custom integrations with Meta Muse</a><span>, Parallel</span></li><li><a href="https://x.ai/news/grok-connectors" rel="noopener">Connectors in web, iOS, and Android</a><span>, xAI</span></li><li><a href="https://docs.x.ai/grok/connectors" rel="noopener">Grok connectors documentation</a><span>, xAI</span></li><li><a href="https://docs.x.ai/grok/connectors/custom-mcp-tunneling" rel="noopener">Custom MCP server tunneling</a><span>, xAI</span></li><li><a href="https://modelcontextprotocol.io/specification/2025-11-25/basic/transports" rel="noopener">MCP specification: Transports (2025-11-25)</a><span>, Model Context Protocol</span></li><li><a href="https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization" rel="noopener">MCP specification: Authorization (2025-11-25)</a><span>, Model Context Protocol</span></li><li><a href="https://modelcontextprotocol.io/specification/2025-11-25/basic/security_best_practices" rel="noopener">MCP specification: Security Best Practices</a><span>, Model Context Protocol</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/mcp-server-meta-muse-grok?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mcp-server-meta-muse-grok">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>AI agent development cost in 2026: real price ranges</title><link>https://apptycoons.com/blog/ai-agent-development-cost</link><guid isPermaLink="true">https://apptycoons.com/blog/ai-agent-development-cost</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>Buying software</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>What an AI agent costs to discover, build and run, using our published fixed prices, a worked token budget and the drivers that move a quote.</description><media:content url="https://apptycoons.com/blog/ai-agent-development-cost/opengraph-image?1af36d91756ea11d" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> A production AI agent typically costs $25k–$120k to build at a fixed price, after a $5,000 two-week discovery sprint. Running it adds model tokens, hosting and monitoring, often a few hundred to a few thousand dollars a month. Integrations, compliance, evaluation and human approval steps move the price far more than the model does.</p>
<p>A workflow agent that handles 20,000 tasks a month costs about $356 a month in Claude Haiku 4.5 tokens at list price. Building the system that lets it do those tasks safely, inside your CRM or ERP, with approvals and an audit log, costs $25k–$120k. That gap is the whole story of AI agent cost: the model is cheap, and everything around it is not.</p>
<p>The figures below are the ones on our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">pricing page</a>, the same ones we quote against.</p>
<h2>How much does an AI agent cost to build?</h2>
<p>A production AI agent costs $25k–$120k as a Fixed-Price Build, after a two-week, $5,000 Discovery Sprint whose fee is credited to the build. Where a project lands in that band depends on three things: how many systems the agent touches, how much it may do without a person, and which compliance rules apply. The same math holds for agentic AI development in general: the cost follows the number of tools an agent can call and the actions it may take on its own, not the model you pick.</p>
<p>The total cost of an agent has three parts, and most budgets only plan for the middle one:</p>
<div><p><em>The three costs of an AI agent</em></p>
<table><thead><tr><th>Cost</th><th>What it covers</th><th>Our published price</th><th>When you pay it</th></tr></thead><tbody><tr><th>Discover</th><td>Workshops, a working prototype on your real data, architecture and integration plan, fixed quote</td><td>$5,000 fixed fee, credited to the build</td><td>Weeks 1–2</td></tr><tr><th>Build</th><td>Production agent, integrations, guardrails, evaluation set, security review, launch, 30 days of support</td><td>$25k–$120k per project</td><td>6–16 weeks, billed in milestones</td></tr><tr><th>Run</th><td>Model tokens, hosting, logging, monitoring, evaluation runs, prompt and model updates</td><td>Usage-based (see the worked example below); optional dedicated team from $12k per month</td><td>Every month after launch</td></tr></tbody></table></div><h2>What you pay for in discovery, build and run</h2>
<p>Each phase removes a different risk.</p>
<h3>Discovery: proving the agent can work on your data</h3>
<p>Discovery is two weeks with a senior architect. It ends with a prototype running on your real data (not a slide deck), the architecture, a plan for each integration, and a fixed quote. Its job is to surface the problems that make AI projects overrun: data that is messier than the demo set, APIs that need approval to access, and approval rules nobody wrote down.</p>
<h3>Build: turning a prototype into a system you can trust</h3>
<p>The build is where most of the money goes, and little of it is spent on the model. It pays for connecting the agent to your systems of record, adding approval steps for high-impact actions, writing an evaluation set that proves the agent behaves, a security review, and launch. Work happens in two-week sprints with live demos, and the code sits in your repository from day one.</p>
<figure><div><img alt="A production agent as seven parts: integrations (auth, limits, errors, tests), approvals (a person on high-impact steps), audit log (every action recorded), evaluation set (real cases, rerun on change) and guardrails (limits, thresholds, rollback), plus two monthly run costs: model calls (tokens) and hosting (logs, traces, monitoring)" width="1280" height="882" src="https://apptycoons.com/assets/blog/ai-agent-development-cost/system.webp"/></div><figcaption>Model calls are one part of seven. The build pays for integrations, approvals, the audit log, the evaluation set and guardrails; model calls and hosting are monthly run costs.</figcaption></figure>
<h3>Run: the monthly bill after launch</h3>
<p>Running costs are model tokens, hosting, logs and monitoring, plus the time to update prompts and models as vendors release new versions. For most business agents tokens are the smallest of these at modest volume, and the largest at high volume. The worked example below shows how to estimate them.</p>
<h2>AI agent cost by type</h2>
<p>The type of agent decides most of the build price, because it decides how many systems the agent touches and how much it is trusted to do alone. The ranges below are how we place work inside our published band; the fixed quote comes from discovery.</p>
<div><p><em>Where common agent types land in a $25k–$120k build</em></p>
<table><thead><tr><th>Agent type</th><th>What it does</th><th>Typical scope</th><th>Where it usually lands</th></tr></thead><tbody><tr><th>Single-task assistant</th><td>Answers questions or drafts replies from one knowledge source; a person sends</td><td>One system, read-only, citations, basic evaluation</td><td>Low end, from $25k</td></tr><tr><th>Workflow agent</th><td>Reads and writes two to four systems and takes actions inside rules, with approvals</td><td>CRM or ERP writes, approval queue, audit log, evaluation per action</td><td>Middle of the range</td></tr><tr><th>Multi-agent system</th><td>Specialist agents work in parallel, process documents and cite every finding to its source</td><td>Document intelligence, several data feeds, tenant isolation</td><td>Top of the range, up to $120k; larger scopes are phased</td></tr></tbody></table></div>
<p>Two of our own builds sit at different points on that table. <a href="https://apptycoons.com/work/superdeal?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">Superdeal</a> is a workflow agent inside a campaign CRM: its scope is creator discovery on three social platforms, drafted offers, and an approval step on everything it sends. <a href="https://apptycoons.com/work/relm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">Relm</a> is a multi-agent system: specialist agents run in parallel over 20+ data feeds and uploaded documents, and every finding cites its source. Relm’s scope is much larger, and the reasons are integrations and documents, not the model.</p>
<p>Two agent types carry extra line items the table does not show. A single-task assistant that answers from documents is a RAG system, and the <a href="https://apptycoons.com/services/enterprise-llm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">RAG assistants we build</a> are priced by how messy and permissioned those documents are; <a href="https://apptycoons.com/blog/rag-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">RAG development cost</a> breaks that down. Voice agents add telephony, speech-to-text and text-to-speech to every minute of every call, which <a href="https://apptycoons.com/blog/ai-voice-agent-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">AI voice agent cost</a> prices line by line.</p>
<h2>What drives the cost of an AI agent?</h2>
<p>Five things move a quote, and the choice of model is not one of them. Model choice changes the running cost, but it rarely changes the build price by much.</p>
<div><p><em>Cost drivers and how to keep each one down</em></p>
<table><thead><tr><th>Driver</th><th>Why it costs money</th><th>How to keep it down</th></tr></thead><tbody><tr><th>Integrations</th><td>Each system needs auth, rate-limit handling, error paths and tests, and writes need rollback</td><td>Start read-only; add writes once the agent’s decisions are trusted</td></tr><tr><th>Data readiness</th><td>Scans, inconsistent fields and missing history must be cleaned or worked around</td><td>Prototype on real data in discovery, not a curated sample</td></tr><tr><th>Compliance</th><td>HIPAA, PCI or SOC 2 controls add hosting constraints, logging and review</td><td>Keep regulated data out of scope for version one where you can</td></tr><tr><th>Evaluation</th><td>Every action needs test cases that prove correct behavior, rerun on each change</td><td>Build the evaluation set from real past cases you already have</td></tr><tr><th>Autonomy</th><td>The more the agent does without a person, the more guardrails and approval logic it needs</td><td>Launch with human approval on high-impact steps, then relax it with data</td></tr></tbody></table></div>
<h3>Integrations are usually the biggest line item</h3>
<p>An agent that cannot read from and write to your systems of record is a demo. Each integration means authentication, handling the API’s limits and failures, mapping fields, and testing what happens when a write half-succeeds. With three or more integrations, this work can outweigh the agent logic itself.</p>
<h3>Evaluation is what makes an agent shippable</h3>
<p>Pilots skip evaluation and pay for it later. An evaluation set is a library of real cases with the correct outcome, run against every prompt or model change. It is the difference between “it worked in the demo” and “we know it works”. Budget for it as its own line: someone has to collect the cases, agree the correct outcomes with the people who do the work today, and rerun the set whenever a prompt or model changes. We cover why skipping it stalls projects in <a href="https://apptycoons.com/blog/ai-pilots-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">why AI pilots stall before production</a>.</p>
<h3>Human approval is cheaper than full autonomy</h3>
<p>Every step an agent takes on its own needs guardrails: confidence thresholds, limits, rollback and logging. Putting a person on the high-impact steps for the first months is faster to build and easier to get past risk and compliance review. You remove approvals one by one as the logs show the agent is reliable. Our checklist of <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">AI agent guardrails</a> lists the controls an agent needs before any approval comes off.</p>
<h2>Worked example: what an AI agent costs to run each month</h2>
<p>An agent’s running cost is mostly tokens: the text sent to the model and the text it writes back. Here is the arithmetic for a realistic workflow agent, using list prices from Anthropic’s pricing page.</p>
<p>Assumptions: the agent handles 20,000 tasks a month. Each task makes four model calls. Each call sends 6,000 input tokens, of which 4,500 are a stable system prompt and tool definitions that prompt caching can reuse, and gets back 500 output tokens. List prices per million tokens, checked October 18, 2026, are $2 input, $0.10 cache read and $10 output for Claude Sonnet 5.5, and $1, $0.10 and $5 for Claude Haiku 4.5. Anthropic bills cache reads at 0.1 times the input price on most models and at 0.05 times on Sonnet 5.5, which is why both read prices are $0.10.</p>
<div><p><em>Monthly token cost for 20,000 tasks (list prices)</em></p>
<table><thead><tr><th>Model</th><th>Cost per call, cached</th><th>Monthly, with caching</th><th>Monthly, no caching</th></tr></thead><tbody><tr><th>Claude Haiku 4.5</th><td>$0.0045</td><td>about $356</td><td>about $680</td></tr><tr><th>Claude Sonnet 5.5</th><td>$0.0085</td><td>about $676</td><td>about $1,360</td></tr></tbody></table></div>
<p>How the cached Sonnet 5.5 call is worked out: 1,500 uncached input tokens at $2 per million is $0.0030, 4,500 cached tokens at $0.10 per million is $0.00045, and 500 output tokens at $10 per million is $0.0050, so about $0.0085 per call. Four calls per task and 20,000 tasks give about $676. The small premium for writing to the cache is left out because it is paid once per cache window, not per call.</p>
<figure><figcaption>One cached Sonnet 5.5 call, about $0.0085</figcaption><ul><li><span>Output, 500 tokens</span>: <span>$0.0050</span></li><li><span>Uncached input, 1,500 tokens</span>: <span>$0.0030</span></li><li><span>Cached input, 4,500 tokens</span>: <span>$0.00045</span></li></ul><p>Four calls per task and 20,000 tasks: about $676 a month.</p></figure>
<p>Three things change this number more than the model price does:</p>
<ul>
<li><span>Caching. Reusing the stable part of the prompt roughly halves the bill here.</span></li>
<li><span>Routing. Sending easy steps to a small model and only hard ones to a larger model lowers the average cost per task; the table shows the gap between the two tiers is about 2x.</span></li>
<li><span>Tokenizer. Anthropic notes that Claude 4.7 and later models use a tokenizer that produces about 30% more tokens for the same text, so estimates made with an older tokenizer will run low.</span></li>
</ul>
<h3>The same agent at 2,000, 20,000 and 100,000 tasks a month</h3>
<p>Token cost grows in a straight line with volume; the build price does not move. Multiplying the per-call figures above by four calls per task gives these monthly totals:</p>
<div><p><em>Monthly token cost by volume (4 calls per task, list prices checked Oct 18, 2026)</em></p>
<table><thead><tr><th>Tasks a month</th><th>Haiku 4.5, cached</th><th>Haiku 4.5, no cache</th><th>Sonnet 5.5, cached</th><th>Sonnet 5.5, no cache</th></tr></thead><tbody><tr><th>2,000</th><td>about $36</td><td>about $68</td><td>about $68</td><td>about $136</td></tr><tr><th>20,000</th><td>about $356</td><td>about $680</td><td>about $676</td><td>about $1,360</td></tr><tr><th>100,000</th><td>about $1,780</td><td>about $3,400</td><td>about $3,380</td><td>about $6,800</td></tr></tbody></table></div>
<p>Read across a row and the cheapest option is always the small model with caching; read down a column and only volume changes the bill. At 2,000 tasks the model is a rounding error next to hosting. At 100,000 it is a real line, and caching and routing decide whether it is $1,780 or $6,800.</p>
<p>On top of tokens, budget for hosting the agent service, logs and traces, and scheduled evaluation runs. These depend on your cloud and your retention rules, so treat them as their own line rather than guessing a percentage.</p>
<h2>What an AI agent costs to maintain after launch</h2>
<p>Maintenance is the engineering that keeps an agent correct while everything around it changes. The model bill is predictable; these four jobs are what surprise budgets:</p>
<ul>
<li><span>Model and price changes. Vendors retire models and change prices; each switch means rerunning the evaluation set before the new model goes live.</span></li>
<li><span>Evaluation reruns. Every prompt change, tool change or new edge case from production goes through the full test set, and the set grows as users find new cases.</span></li>
<li><span>Monitoring and traces. Someone reads the logs of failed and escalated tasks each week and turns them into fixes or new test cases.</span></li>
<li><span>Integration drift. When a connected CRM, ERP or API changes a field or an auth flow, the agent starts failing without an error message unless a test catches it.</span></li>
</ul>
<p>Our builds include 30 days of support after launch. After that, owners usually choose small fixed-price change requests for occasional updates, or a Dedicated Team when the agent has a roadmap of its own. We don’t publish a maintenance percentage of the build price, because it depends on how many integrations can drift and how often your process changes, not on what the build cost.</p>
<h2>Why quotes for the same AI agent differ so much</h2>
<p>Two quotes for the “same” agent usually describe different systems. One vendor prices a prototype with a read-only connection; another prices writes, approvals, an audit log and a test set. Before comparing totals, line the quotes up against six questions:</p>
<div><p><em>Check every AI agent quote for these six items</em></p>
<table><thead><tr><th>Check</th><th>What a complete quote states</th><th>What a thin quote leaves out</th></tr></thead><tbody><tr><th>Integrations</th><td>Each system named, read or write, and who supplies API access</td><td>“Integrates with your CRM”</td></tr><tr><th>Evaluation set</th><td>Roughly how many real cases, who writes the expected outcomes, when it runs</td><td>“Testing” as one line</td></tr><tr><th>Approval steps</th><td>Which actions need a person and how the approval queue works</td><td>Nothing, or “human in the loop” with no detail</td></tr><tr><th>Audit log</th><td>What is logged per action and how long it is kept</td><td>Nothing</td></tr><tr><th>Ownership</th><td>Code, prompts, evaluation set and cloud accounts in your name</td><td>A license to use the vendor’s platform</td></tr><tr><th>Post-launch support</th><td>A fixed support window and how changes are priced after it</td><td>“Ongoing support available”</td></tr></tbody></table></div>
<blockquote><div>Watch out</div><p>A thin quote is not a cheaper one</p><div>A quote that is low because it leaves out the evaluation set or the approval steps is not cheaper; it moves that cost to after launch, when it is paid as an incident.</div></blockquote>
<p>For the questions to put to the vendor behind the quote, see <a href="https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">questions to ask an AI agent development company</a>.</p>
<h2>Fixed price vs time and materials for an AI agent</h2>
<p>A fixed price after discovery protects the buyer from overruns; time and materials protects the vendor. For AI agents, where the main risk is unknown data and integrations, the fix is to resolve those unknowns first and then fix the price, which is what discovery is for.</p>
<div><p><em>Pricing models for an AI agent build</em></p>
<table><thead><tr><th></th><th>Fixed price after discovery</th><th>Time and materials</th><th>Dedicated team</th></tr></thead><tbody><tr><th>Best for</th><td>A defined agent or product</td><td>Research with no clear end</td><td>An ongoing roadmap</td></tr><tr><th>Who carries overrun risk</th><td>The vendor</td><td>You</td><td>Shared, scope flexes monthly</td></tr><tr><th>Scope changes</th><td>Change request</td><td>Anytime, billed hourly</td><td>Anytime</td></tr><tr><th>Our price</th><td>$25k–$120k per project</td><td>Not offered</td><td>From $12k per month</td></tr></tbody></table></div>
<p>We recommend fixing the price for the first production version, and moving to a Dedicated Team only if the agent becomes a product with its own roadmap. The trade-offs between the contract models are in our guide to <a href="https://apptycoons.com/blog/fixed-price-software?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">fixed price vs time and materials</a>.</p>
<h2>When a custom AI agent is not worth paying for</h2>
<p>A custom agent is not worth its build price when a product already does the job at your volume for less. The quickest test is arithmetic: multiply the product’s usage price by the volume you expect in year three, and compare it with the build plus three years of running cost.</p>
<p>Two published price lists show what that comparison looks like. Intercom lists its Fin AI Agent from $0.99 per outcome, so 1,000 outcomes a month is about $12,000 a year, well under a $25k build plus hosting and maintenance. Microsoft sells Copilot Studio as packs of 25,000 credits for $200 a month, which suits internal assistants that live inside Microsoft 365. At that kind of volume, inside tools you already use, buying wins on cost.</p>
<p>The arithmetic turns the other way when volume grows, when the agent has to write to your own systems, or when how it works is part of what you sell. A full three-year model, the lock-in questions to put to vendors, and the part-bought, part-built setup most agents end up with are in <a href="https://apptycoons.com/blog/build-vs-buy-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">build vs buy AI agents</a>.</p>
<h2>How to budget for an AI agent project</h2>
<p>Budget for the system, not the model. A realistic plan has four lines:</p>
<figure><figcaption>Four budget lines for an AI agent</figcaption><ol><li><span><strong>Discovery: $5,000</strong> (Weeks 1–2): <span>Two weeks, ending with a working prototype and a fixed quote.</span></span></li><li><span><strong>Build: $25k–$120k</strong> (6–16 weeks): <span>Depending on agent type, integrations and compliance.</span></span></li><li><span><strong>Run</strong> (Every month): <span>Tokens from a worked estimate like the one above, plus hosting and monitoring.</span></span></li><li><span><strong>Change</strong> (Ongoing): <span>Model and prompt updates as vendors ship new versions, either as small fixed-price changes or a dedicated team.</span></span></li></ol></figure>
<p>Then pick one workflow and one number to move, such as hours saved, tickets resolved or decisions made per day, and hold the build to it. That keeps scope honest and makes the return easy to measure. If you want a fixed price for your own agent, our <a href="https://apptycoons.com/services/ai-agent-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">AI agent development</a> team starts with a free AI audit: <a href="https://apptycoons.com/contact?interest=audit&amp;service=ai-agent-development&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">book the audit</a> and bring the workflow you have in mind.</p><div><h2>Sources</h2><ol><li><a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener">Claude API pricing</a><span>, Anthropic</span></li><li><a href="https://www.intercom.com/pricing" rel="noopener">Intercom pricing (Fin AI Agent)</a><span>, Intercom</span></li><li><a href="https://www.microsoft.com/en-us/microsoft-copilot/microsoft-copilot-studio" rel="noopener">Microsoft Copilot Studio pricing</a><span>, Microsoft</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/ai-agent-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-agent-development-cost">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>AI voice agent cost in 2026: per-minute vs custom build</title><link>https://apptycoons.com/blog/ai-voice-agent-cost</link><guid isPermaLink="true">https://apptycoons.com/blog/ai-voice-agent-cost</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>Voice agents</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>About $0.08 to $0.15 a minute on a hosted platform, $0.04 on a custom stack: the line items behind each rate, plan minimums, and the volume where custom pays off.</description><media:content url="https://apptycoons.com/blog/ai-voice-agent-cost/opengraph-image?6c4fec94366922ce" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Hosted voice platforms cost about $0.08 to $0.15 per minute all-in at list prices, plus extras such as HIPAA add-ons. A custom stack’s usage costs about $0.04 per minute, but it needs a $25k–$120k build and its own hosting. On list prices, custom starts paying back somewhere between 11,000 and 31,000 minutes a month.</p>
<p>Vapi advertises $0.05 a minute. Add the speech-to-text, the language model and the voice that every call needs, and the same agent costs $0.082 to $0.129 a minute on Vapi’s own calculator. The advertised rate covers one layer of a five-layer stack; the other four arrive as separate line items.</p>
<p>In our model, built only from public price lists, a hosted platform costs about $0.08 to $0.15 a minute all-in and a custom stack about $0.04 a minute before hosting and the build. Every figure below is a list price rechecked on October 18, 2026, and every calculation is shown, so you can rerun it with your own call volume.</p>
<h2>How much does an AI voice agent cost per minute?</h2>
<p>At list prices, a hosted voice platform costs about $0.08 to $0.15 per minute once every layer is included. A custom stack that pays each vendor directly costs about $0.04 per minute in usage, but you have to build and host it. The platform’s advertised rate, $0.05 on Vapi or $0.055 on Retell, is only the orchestration fee.</p>
<div><p><em>All-in cost per minute, list prices (checked Oct 18, 2026)</em></p>
<table><thead><tr><th>Option</th><th>Per minute</th><th>What is included</th></tr></thead><tbody><tr><th>Vapi</th><td>$0.082–$0.129</td><td>$0.05 hosting plus speech-to-text, model and voice passed through at cost, on Vapi telephony (no transport fee)</td></tr><tr><th>Retell, Claude 4.5 Haiku</th><td>$0.110</td><td>$0.055 infrastructure, $0.015 voice, $0.025 model, $0.015 telephony</td></tr><tr><th>Retell, recommended tier</th><td>$0.149</td><td>Same, with a $0.064 recommended-tier model such as Claude 5 Sonnet</td></tr><tr><th>Custom stack</th><td>about $0.043</td><td>Twilio, Deepgram Nova-3, Deepgram Aura-2 voice, Claude Sonnet 5.5; hosting and build not included</td></tr></tbody></table></div><h2>The five line items inside every per-minute price</h2>
<p>Every AI phone call pays for the same five things, whether a platform bundles them or you buy them separately. Knowing them is how you compare quotes.</p>
<ul>
<li><span>Telephony carries the call. Twilio lists US inbound calls to a local number at $0.0085 a minute, and streaming the audio to your server at $0.0044 a minute.</span></li>
<li><span>Speech-to-text transcribes the caller. Deepgram lists streaming Nova-3 at a regular price of $0.0077 a minute, currently discounted to $0.0048; we use the regular price.</span></li>
<li><span>The language model decides what to say and which tools to call. It is billed per token, so its per-minute cost depends on prompt size and how often the caller speaks.</span></li>
<li><span>Text-to-speech speaks the reply. Deepgram lists Aura-2 at $0.030 per 1,000 characters; Retell lists voices from $0.015 to $0.10 a minute depending on the provider.</span></li>
<li><span>Orchestration handles turn-taking, interruptions and tool calls. Platforms charge for it per minute; on a custom stack you host it yourself.</span></li>
</ul>
<figure><div><img alt="Two stacked bars on a scale of 0 to 12 cents a minute. Retell with Claude 4.5 Haiku, $0.110: infrastructure $0.055, model $0.025, voice $0.015, telephony $0.015. Custom stack, about $0.043: Twilio call and stream $0.0129, speech-to-text $0.0077, model $0.0103, voice $0.012, excluding hosting and the build." width="1280" height="1076" src="https://apptycoons.com/assets/blog/ai-voice-agent-cost/per-minute-split.webp"/></div><figcaption>On Retell the platform fee is half the minute; on a custom stack you host orchestration yourself. Model and voice per-minute figures use the assumptions below.</figcaption></figure>
<h3>How we turned token prices into a per-minute cost</h3>
<p>Two of these layers are not priced per minute, so we converted them with stated assumptions. For the model, we assume five model calls per minute of conversation, each sending 3,000 input tokens (2,500 of them a cached system prompt) and receiving 80 output tokens. At Claude Sonnet 5.5 list prices of $2 per million input tokens, $0.10 for cache reads (Anthropic bills cache hits on Sonnet 5.5 at 0.05 times the input price) and $10 output, that is about $0.0021 per call and $0.0103 a minute. For the voice, we assume the agent talks for about 45% of the call at around 150 words a minute, roughly 400 characters, which is $0.012 a minute on Aura-2.</p>
<h2>Platform pricing: what Vapi and Retell charge</h2>
<p>Both platforms publish their prices, so a fair comparison is possible. They differ in what is bundled and what costs extra.</p>
<div><p><em>Platform price lists compared (checked Oct 18, 2026)</em></p>
<table><thead><tr><th></th><th>Vapi</th><th>Retell</th></tr></thead><tbody><tr><th>Platform fee</th><td>$0.05/min hosting</td><td>$0.055/min voice infrastructure</td></tr><tr><th>Models and voices</th><td>Passed through at cost; calculator examples $0.0095–$0.0099 transcriber, $0.0077–$0.0452 model, $0.0146–$0.0238 voice</td><td>Priced per minute: voices $0.015–$0.10; models from under $0.01 to over $0.30, with Claude 4.5 Haiku at $0.025 and the recommended tier at $0.064</td></tr><tr><th>Telephony</th><td>Vapi telephony and SIP free, one number on the free tier; Twilio numbers billed by Twilio</td><td>$0.015/min, numbers $2 a month</td></tr><tr><th>Plans</th><td>No Success Package $0 with $5 credit; Core $29 a month; Pro 10% of hosting, $999 a month minimum; Premier custom</td><td>Usage-based, $10 in free credits; enterprise plan at custom pricing</td></tr><tr><th>Concurrent calls</th><td>4 / 10 / 30 by plan, extra lines $10 each a month</td><td>First 20 free, then $8 each a month</td></tr><tr><th>HIPAA</th><td>$2,000 a month add-on</td><td>HIPAA and BAA listed on pay-as-you-go and enterprise; custom BAA on enterprise (checked Oct 19, 2026)</td></tr></tbody></table></div>
<p>The choice of model and voice moves the platform price more than the choice of platform. On Retell, swapping a recommended-tier model for Claude 4.5 Haiku takes the all-in rate from $0.149 to $0.110 a minute, the most expensive models on Retell’s list cost over $0.30 a minute on their own, and moving to a premium ElevenLabs voice can add up to $0.085.</p>
<h3>A third route: one speech-to-speech model</h3>
<p>Some stacks replace the separate speech-to-text, model and voice with one speech-to-speech model that hears and answers in audio. OpenAI’s realtime models are billed per audio token rather than per minute ($32 per million input and $64 per million output tokens for gpt-realtime-2.1; $10 and $20 for the mini model, list prices checked October 26, 2026). In our own test calls in October 2026, that came to about $0.078 a minute of talk for gpt-realtime-2.1 and $0.023 for the mini model, before telephony, hosting and orchestration. Long system prompts and tool definitions add text tokens to every turn, so measure with your own call flow before you budget.</p>
<h2>What a custom AI voice agent costs to build</h2>
<p>With us, a custom voice agent falls in the same $25k–$120k band as any agent we build, with the price fixed after discovery (the <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">pricing page</a> has the model). “Custom” means you own the orchestration code, run it in your cloud and pay each vendor directly, typically on an open-source framework such as LiveKit or Pipecat instead of a hosted platform.</p>
<p>Five things set where a voice build lands in that band:</p>
<ul>
<li><span>the systems the agent books into or updates, such as a scheduler, CRM or order system,</span></li>
<li><span>the number of call flows, from a single booking flow to triage across several departments,</span></li>
<li><span>warm transfer to a person with a summary of the call,</span></li>
<li><span>latency tuning, because slow replies make a conversation feel broken (see <a href="https://apptycoons.com/blog/voice-agent-latency?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">voice agent latency</a>),</span></li>
<li><span>compliance, such as HIPAA, call recording consent and data retention.</span></li>
</ul>
<p>A platform build is not free either. Someone still writes the prompts, connects the agent to your systems and tests the call flows. That work is similar on both routes, so the comparison below charges only the custom route with a build, which favors the platforms.</p>
<h2>Total cost at 1,000, 10,000 and 50,000 minutes a month</h2>
<p>At 1,000 minutes a month a platform costs roughly a tenth of a custom stack; at 50,000 the order flips. The table adds usage at list prices and, for the custom stack, two fixed monthly costs we state as assumptions: $500 a month for hosting and monitoring, and the minimum build of $25k spread over 36 months, about $694 a month.</p>
<div><p><em>Monthly cost by call volume (list prices, assumptions above)</em></p>
<table><thead><tr><th>Minutes a month</th><th>Vapi</th><th>Retell</th><th>Custom usage</th><th>Custom all-in</th></tr></thead><tbody><tr><th>1,000</th><td>$82–$129</td><td>$110–$149</td><td>$43</td><td>$1,237</td></tr><tr><th>10,000</th><td>$818–$1,289</td><td>$1,100–$1,490</td><td>$429</td><td>$1,623</td></tr><tr><th>50,000</th><td>$4,090–$6,445</td><td>$5,500–$7,450</td><td>$2,143</td><td>$3,337</td></tr></tbody></table></div>
<p>The platform columns exclude plan fees, concurrency charges and HIPAA add-ons, and the custom column excludes the cost of your team’s time to operate it. Both omissions matter at the edges, so treat the table as a starting model, not a quote.</p>
<h2>The break-even point for a custom voice agent</h2>
<p>On these list prices, a custom stack breaks even at about 11,300 minutes a month against Retell’s recommended tier, 13,900 against Vapi’s higher configuration, 17,800 against Retell with Claude 4.5 Haiku, and 30,700 against Vapi’s lowest configuration. The arithmetic is the custom stack’s fixed monthly cost, about $1,194, divided by the per-minute saving.</p>
<div><p><em>Break-even minutes per month for a custom stack</em></p>
<table><thead><tr><th>Compared with</th><th>Platform per minute</th><th>Saving per minute</th><th>Break-even</th></tr></thead><tbody><tr><th>Retell, recommended tier</th><td>$0.149</td><td>$0.106</td><td>about 11,300</td></tr><tr><th>Vapi, higher configuration</th><td>$0.129</td><td>$0.086</td><td>about 13,900</td></tr><tr><th>Retell, Claude 4.5 Haiku</th><td>$0.110</td><td>$0.067</td><td>about 17,800</td></tr><tr><th>Vapi, lowest configuration</th><td>$0.082</td><td>$0.039</td><td>about 30,700</td></tr></tbody></table></div>
<p>Two things move the break-even sharply, in opposite directions. A HIPAA add-on of $2,000 a month on a platform is larger than the custom stack’s entire fixed cost in this model, so it pulls the break-even down, although a custom stack has its own compliance costs, such as Twilio’s Security Edition for a BAA. A larger build, say for several call flows and integrations, pushes it up by roughly 6,500 to 17,800 minutes for every additional $25k spread over three years, depending on the platform you compare against.</p>
<figure><figcaption>A HIPAA add-on vs the custom stack’s fixed monthly costs</figcaption><ul><li><span>Custom: hosting and monitoring</span>: <span>$500</span></li><li><span>Custom: minimum build over 36 months</span>: <span>$694</span></li><li><span>Vapi HIPAA add-on</span>: <span>$2,000</span></li></ul><p>Custom stack assumptions from the total-cost section: about $1,194 a month in all.</p></figure>
<h2>Costs that per-minute quotes leave out</h2>
<p>A per-minute rate is the biggest line on the bill, but not the only one. Budget for these as well, on any route:</p>
<ul>
<li><span>Concurrent calls. Platforms include a set number of simultaneous calls and charge for more: Retell includes 20 and charges $8 a month for each extra, and Vapi includes 4, 10 or 30 depending on the plan and charges $10 a month per additional line. Size this for your busiest hour, not your average.</span></li>
<li><span>Plan minimums. Vapi’s Core plan costs $29 a month, and its Pro plan bills 10% of the hosting fee with a $999 a month minimum. At 5,000 minutes a month, Pro’s hosting share is $25, so the minimum, not the percentage, sets the bill until volume is far higher.</span></li>
<li><span>Phone numbers. Small, but they add up across locations: Twilio lists local numbers at $1.15 a month and toll-free at $2.15.</span></li>
<li><span>Transfers. When the agent hands a caller to a person, the outbound leg is billed too; Twilio lists outbound calls at $0.0140 a minute.</span></li>
<li><span>Recordings and transcripts. Storage and retention rules matter more than the storage price, especially for regulated calls.</span></li>
<li><span>Testing. Every prompt or model change should be replayed against recorded test calls before it goes live, and those test calls use real minutes.</span></li>
<li><span>Change. Models, voices and prices change; someone has to evaluate and apply those changes.</span></li>
</ul>
<p>The integration is the cost that no per-minute quote shows, because it sits in the build. On the service booking agent we built for Innovative AI, every booking call loaded that vehicle’s own menu of 100–200 services from Xtime, checked the dealership’s open slots and settled drop-off, pickup or mobile service before it booked anything. In a build like this, each lookup is typically a tool the agent calls mid-conversation, and <a href="https://apptycoons.com/blog/ai-service-scheduling-dealerships?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">how AI service scheduling works at a dealership</a> walks through them in order.</p>
<h2>HIPAA and the BAA chain</h2>
<p>A voice agent that hears patient information is only as compliant as the weakest vendor on the call. Under HIPAA, every vendor that receives protected health information must sign a business associate agreement, and on a voice call that is the carrier, speech-to-text, the language model, text-to-speech, the orchestration layer and wherever recordings and transcripts are stored.</p>
<p>Price this chain before you choose a stack. Vapi lists HIPAA-eligible data handling at $2,000 a month. Retell’s plan comparison lists HIPAA and a BAA on pay-as-you-go as well as enterprise, with a custom BAA on enterprise only (checked October 19, 2026). Twilio signs a BAA only for customers on its Security or Enterprise Edition. On a custom stack you sign each agreement yourself and can choose vendors and regions accordingly, which is often the deciding factor for healthcare work. There is no such thing as being “HIPAA certified”, so ask each vendor for its BAA, not a badge.</p>
<h2>Outbound calls: consent rules change the cost</h2>
<p>An agent that places calls costs more to build than one that answers them, because US law treats its voice as artificial. In February 2024 the FCC confirmed, in a declaratory ruling (FCC 24-17), that the TCPA’s restrictions on “artificial or prerecorded voice” cover current AI technologies that generate human voices. Such calls need the called party’s prior express consent, absent an emergency purpose or an exemption.</p>
<p>For a build, that turns into line items an inbound receptionist mostly avoids:</p>
<ul>
<li><span>consent capture and storage, tied to each number the agent may call,</span></li>
<li><span>do-not-call list scrubbing before every campaign,</span></li>
<li><span>an opt-out path inside the call that the agent honors at once,</span></li>
<li><span>calling-hour limits by the recipient’s time zone,</span></li>
<li><span>logs that show which consent covered which call.</span></li>
</ul>
<p>Budget these as scope, not as a later fix; they decide whether the agent can dial at all. This is a summary of the ruling, not legal advice, and state rules can add to it.</p>
<p>Calls with a sales purpose count as telemarketing and need prior express written consent, so an unsold-lead callback carries a heavier consent flow than a reminder about a booked service, as our guide to <a href="https://apptycoons.com/blog/dealership-no-show-follow-up?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">no-show and unsold-lead follow-up calls</a> explains.</p>
<h2>When a platform is the right answer</h2>
<p>For most first voice agents, a platform is the better choice. Choose one when:</p>
<ul>
<li><span>volume is under about 10,000 minutes a month and not growing fast;</span></li>
<li><span>the call flow is standard, such as answering questions, booking into a common scheduler or taking messages;</span></li>
<li><span>you want to test whether callers accept an AI agent before you invest in a build;</span></li>
<li><span>or nobody will run voice infrastructure after launch.</span></li>
</ul>
<p>Go custom when volume is high or rising, when compliance needs control over every vendor in the chain, when the agent must act inside your own systems in ways a platform’s integrations cannot, or when latency and voice quality are part of your product. Many teams start on a platform and move once the numbers above favor it; designing prompts and tools to be portable makes that move cheaper. The same trade-off applies to text agents, and our guide to <a href="https://apptycoons.com/blog/build-vs-buy-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">build vs buy AI agents</a> runs it over three years.</p>
<figure><figcaption>Platform or custom, in short</figcaption><div><div><div><p><strong>Hosted platform</strong> (Vapi, Retell)</p></div><ul><li>Under about 10,000 minutes a month</li><li>A standard call flow</li><li>Testing whether callers accept an AI agent</li><li>Nobody to run voice infrastructure</li></ul></div><div><div><p><strong>Custom stack</strong> (LiveKit, Pipecat)</p></div><ul><li>High or rising volume</li><li>Control over every vendor in the compliance chain</li><li>Actions inside your own systems</li><li>Latency and voice quality are part of your product</li></ul></div></div></figure>
<h2>Is an AI voice agent worth it? Compare with missed calls</h2>
<p>The right comparison is not the agent’s cost against a receptionist’s salary; it is the agent’s cost against the revenue lost to calls nobody answers. A business taking 60 calls a day at three minutes each uses about 5,400 minutes a month, which costs roughly $440 to $800 a month in platform usage at the list prices above.</p>
<p>Then estimate what missed calls cost you: calls a month, times the share you miss, times the share of those callers who would have bought, times the value of a customer. We walk through that model in <a href="https://apptycoons.com/blog/cost-of-missed-calls?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">what missed calls really cost</a>, and you can run it with your own numbers in the <a href="https://apptycoons.com/tools/ai-voice-agent-roi-calculator?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">AI voice agent ROI calculator</a>. If the lost revenue is a multiple of the agent’s monthly cost, the case is easy at any of the prices in this guide.</p>
<h2>How to lower the per-minute cost of a voice agent</h2>
<p>The biggest savings come from the model and the voice, not from haggling over the platform fee.</p>
<ul>
<li><span>Use the smallest model that passes your call tests, and keep the system prompt stable so it can be cached.</span></li>
<li><span>Pick a standard voice unless the voice is part of your brand; premium voices can cost several times more per minute.</span></li>
<li><span>Keep calls short with clear flows and fast handoff to a person when the agent cannot help.</span></li>
<li><span>Route by intent, so simple calls never reach the expensive model.</span></li>
<li><span>Recheck list prices before you commit. This guide uses prices checked on October 18, 2026, and vendors update them; our <a href="https://apptycoons.com/tools/ai-voice-agent-pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">AI voice agent pricing tracker</a> rechecks them every month.</span></li>
</ul>
<p>If you want these numbers worked out for your own call volume and systems, our <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">AI voice agents</a> team can model both routes in a free audit before you commit to either.</p><div><h2>Sources</h2><ol><li><a href="https://www.retellai.com/pricing" rel="noopener">Retell AI pricing</a><span>, Retell AI</span></li><li><a href="https://vapi.ai/pricing" rel="noopener">Vapi pricing</a><span>, Vapi</span></li><li><a href="https://developers.openai.com/api/docs/pricing" rel="noopener">API pricing (realtime and audio models)</a><span>, OpenAI</span></li><li><a href="https://www.twilio.com/en-us/voice/pricing/us" rel="noopener">Twilio Programmable Voice pricing (United States)</a><span>, Twilio</span></li><li><a href="https://deepgram.com/pricing" rel="noopener">Deepgram pricing</a><span>, Deepgram</span></li><li><a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener">Claude API pricing</a><span>, Anthropic</span></li><li><a href="https://www.twilio.com/en-us/hipaa" rel="noopener">HIPAA compliance at Twilio</a><span>, Twilio</span></li><li><a href="https://docs.fcc.gov/public/attachments/FCC-24-17A1.pdf" rel="noopener">Implications of Artificial Intelligence Technologies on Protecting Consumers from Unwanted Robocalls and Robotexts, Declaratory Ruling (FCC 24-17)</a><span>, Federal Communications Commission</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/ai-voice-agent-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-voice-agent-cost">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Build vs buy affiliate tracking software: 2026 costs</title><link>https://apptycoons.com/blog/build-vs-buy-affiliate-tracking</link><guid isPermaLink="true">https://apptycoons.com/blog/build-vs-buy-affiliate-tracking</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>Buying software</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>For most programs, buying is cheaper by a wide margin. Here is the math, the cases where building wins, and what a custom tracking system has to include.</description><media:content url="https://apptycoons.com/blog/build-vs-buy-affiliate-tracking/opengraph-image?cb71ed7fdde4fbbc" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Buy affiliate tracking software if you run a standard percentage-of-sale program: published SaaS plans start below $100 a month. Build when attribution, payouts or the partner experience are part of your product, such as custom commission logic, payouts into your own wallets or partner flows no plugin can express. Building costs more upfront and you own it.</p>
<p>Rewardful’s Growth plan costs $99 a month, about $3,560 over three years. A custom affiliate tracking system from us starts at $25k before it has tracked a single click. We build custom software for a living, and for most affiliate programs that arithmetic settles it: buy. The exceptions are specific, and they follow.</p>
<p><strong>Method:</strong> SaaS prices below come from each vendor’s own pricing page, checked October 18, 2026, and custom-build prices are our own published pricing. Tapfiliate and Rewardful are named only as examples of published price models; we have no relationship with either, and this post ranks no one.</p>
<h2>Build vs buy affiliate tracking: the short answer</h2>
<p>Buy if your program pays a percentage or fixed amount per sale, your partners are happy with a standard dashboard, and payouts go out by bank transfer or PayPal. Build if attribution, commission logic, payouts or the partner experience are part of what you sell, or if a vendor’s limits are capping revenue.</p>
<figure><figcaption>Buy or build affiliate tracking</figcaption><div><div><div><p><strong>Buy</strong> (Standard program)</p></div><ul><li>Percentage or fixed amount per sale</li><li>Partners happy with a standard dashboard</li><li>Payouts by bank transfer or PayPal</li></ul></div><div><div><p><strong>Build</strong> (Tracking is part of the product)</p></div><ul><li>Commission logic a vendor can’t express</li><li>A partner experience you sell</li><li>Payouts into your own wallet, card or balance</li></ul></div></div></figure>
<p>A quick way to place yourself:</p>
<ul>
<li><span><strong>Standard SaaS or e-commerce referral program:</strong> buy.</span></li>
<li><span><strong>Commission logic the vendor can’t express</strong> (multi-touch, tiered by product margin, team overrides): build, or buy and extend.</span></li>
<li><span><strong>Earnings paid into your own wallet, card or balance:</strong> build the payout layer.</span></li>
<li><span><strong>The partner portal is your product</strong> (agencies, resellers, creators): build the experience, maybe on top of bought tracking.</span></li>
<li><span><strong>Tracking is a core revenue system for a marketplace:</strong> build.</span></li>
</ul><h2>What buying affiliate tracking software costs in 2026</h2>
<p>Buying costs tens to low hundreds of dollars a month. The published plans differ less in price than in how they limit usage.</p>
<p>Two examples from vendors’ own pricing pages:</p>
<ul>
<li><span><strong>Tapfiliate:</strong> Launch at $89 per month and Scale at $179 per month on monthly billing, with lower annual rates and a custom Enterprise plan. Plans include click and conversion allowances, with overage charged per 1,000 clicks and per 1,000 conversions.</span></li>
<li><span><strong>Rewardful:</strong> Starter at $49 per month (up to $7,500 a month of affiliate revenue), Growth at $99 per month (up to $15,000), and Enterprise from $149 per month. Rewardful says it charges 0% transaction fees on affiliate-attributed revenue; its optional Managed Payouts carry a 3% processing fee on payouts.</span></li>
</ul>
<figure><figcaption>Published monthly plan prices</figcaption><ul><li><span>Rewardful Starter</span>: <span>$49</span></li><li><span>Tapfiliate Launch</span>: <span>$89</span></li><li><span>Rewardful Growth</span>: <span>$99</span></li><li><span>Rewardful Enterprise</span>: <span>From $149</span></li><li><span>Tapfiliate Scale</span>: <span>$179</span></li></ul><p>From each vendor’s pricing page, checked October 18, 2026. Tapfiliate prices are for monthly billing; Rewardful Enterprise is a starting price. Overage and payout fees are extra.</p></figure>
<p>Note the two different limit models: one charges for traffic above an allowance, the other caps the affiliate-attributed revenue a plan covers. Model your own volumes against both before choosing.</p>
<p>The real costs of buying are not the subscription. They are the limits: commission rules the tool can’t express, a partner portal you can’t redesign, payout methods it doesn’t support, and data that lives in someone else’s system.</p>
<h2>What building affiliate tracking software costs</h2>
<p>Building costs tens of thousands of dollars upfront plus running costs, and you own the result. At Apptycoons the first step is a two-week, $5,000 discovery that pins down four things for an affiliate system: the attribution rules, the commission logic, how partners get paid and which fraud checks run before payout. It ends in one fixed price for the build, within our published $25k–$120k range over 6–16 weeks, and the discovery fee is credited to it. The <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-affiliate-tracking">pricing page</a> has the full model; a large affiliate platform with a long roadmap may suit a Dedicated Team (from $12k a month) better.</p>
<p>A focused tracking system with one attribution model and one payout method sits toward the lower end of the build range. Multiple attribution models, several payout rails, advanced fraud detection and a full partner portal push it up. Running costs are hosting, monitoring and any payment provider fees.</p>
<h2>A three-year cost comparison</h2>
<p>Compare build and buy over three years, because that is roughly how long a tracking system lives before a major change. Using the published prices above:</p>
<ul>
<li><span><strong>Buy, mid-tier plan:</strong> Rewardful Growth at $99 per month is about $3,560 over 36 months; Tapfiliate Scale at $179 per month is about $6,440, before any overage.</span></li>
<li><span><strong>Build, smallest scope:</strong> $5,000 for discovery (credited to the build) plus a build starting at $25k, then hosting and maintenance.</span></li>
</ul>
<div><p><em>Three-year cost, standard program</em></p>
<table><thead><tr><th>Option</th><th>Upfront</th><th>Monthly</th><th>36 months</th></tr></thead><tbody><tr><th>Rewardful Growth</th><td>None</td><td>$99</td><td>About $3,560</td></tr><tr><th>Tapfiliate Scale</th><td>None</td><td>$179 plus overage</td><td>About $6,440 plus overage</td></tr><tr><th>Custom build</th><td>From $25k (discovery fee credited)</td><td>Hosting and maintenance</td><td>Build plus running costs; <strong>you own the code</strong></td></tr></tbody></table></div>
<p>On cost alone, buying wins for a standard program several times over. Building only makes financial sense when the custom system creates revenue a bought tool cannot, removes a cap that is already costing you money, or replaces a platform fee that has grown with your volume.</p>
<p>The test is simple: write down the revenue the custom system creates, or the cost it removes, each year. If that doesn’t clearly exceed the build price within the first year or two, buy.</p>
<h2>When building affiliate tracking wins</h2>
<p>Building wins when tracking and payouts are part of the product rather than a marketing tool. These are the situations where it tends to pay off:</p>
<ul>
<li><span><strong>Commissions follow your business model, not a template.</strong> Per-product margins, multi-level team overrides, recurring revenue shares or deal-based payouts.</span></li>
<li><span><strong>Partners are paid inside your platform.</strong> Earnings land in an in-app balance, wallet or card rather than leaving by bank transfer, the model we cover in <a href="https://apptycoons.com/blog/stablecoin-wallets-fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-affiliate-tracking">stablecoin wallets and cards for partner payouts</a>.</span></li>
<li><span><strong>You run a marketplace.</strong> Brands, partners and creators all need different views of the same deals.</span></li>
<li><span><strong>Attribution is disputed and costly.</strong> You need an audit trail detailed enough to settle every disagreement.</span></li>
<li><span><strong>The vendor is now the bottleneck.</strong> Their limits, pricing tiers or API are capping a program that already works.</span></li>
</ul>
<p>If only one of these applies weakly, look at the hybrid route below first.</p>
<h2>Example: Superdeal, where the deal is the unit</h2>
<p>Superdeal shows why some programs outgrow off-the-shelf tracking. It is an influencer marketplace and campaign CRM: brands run creator campaigns across Instagram, TikTok and YouTube, with an AI agent doing the sourcing and drafting and the brand approving every step.</p>
<p>The payment model is what made custom the right call. Superdeal has no subscription; it is pay per deal, and creators are paid when their content is approved. The unit being tracked is a deal with deliverables and shipments, not a click or a checkout. Standard affiliate tools are built around clicks and conversions, so the workspace, the deal states, the approvals and the payout on delivery had to be built.</p>
<p>We built the shared campaign workspace, the AI agent that shortlists creators and drafts offers, the Draft, Review, Send approval flow, and scoped read-only dashboards for agency clients. The details are in the <a href="https://apptycoons.com/work/superdeal?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-affiliate-tracking">Superdeal case study</a>, and our guide to <a href="https://apptycoons.com/blog/creator-platform-revenue-share?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-affiliate-tracking">creator platforms and revenue share</a> covers the attribution, ledger and payout systems in more depth.</p>
<h2>What a custom affiliate tracking system must include</h2>
<p>If you build, these components are not optional. Leave one out and you will be adding it under pressure after launch, usually during a payout dispute.</p>
<ul>
<li><span><strong>Click capture:</strong> tracking links, first-party click IDs, landing data and deduplication.</span></li>
<li><span><strong>Server-side conversion tracking:</strong> conversions recorded from your backend or by server-to-server postback, not only by a browser pixel.</span></li>
<li><span><strong>Attribution rules:</strong> first-click, last-click or custom windows, versioned so you can explain old payouts.</span></li>
<li><span><strong>Commission engine:</strong> rules per partner, product and tier, with reversals for refunds and chargebacks.</span></li>
<li><span><strong>Fraud checks:</strong> click and conversion validation, self-referral detection and anomaly alerts before payout.</span></li>
<li><span><strong>Partner portal:</strong> links, live stats, earnings, payout history and onboarding.</span></li>
<li><span><strong>Payouts:</strong> scheduled runs, thresholds if you use them, failure handling and statements.</span></li>
<li><span><strong>Admin tools and audit log:</strong> manual adjustments, disputes and an explanation for every number.</span></li>
</ul>
<h2>Tracking under browser privacy rules</h2>
<p>Browser-only affiliate tracking is unreliable in 2026, so any system you build or buy should record conversions on the server. WebKit, the engine behind Safari, blocks all third-party cookies by default. It also deletes cookies created in JavaScript and other script-written storage after 7 days without user interaction with the site, and when a visitor arrives through a decorated link from a site it classifies as a tracker, it caps JavaScript cookies on the landing page to 24 hours.</p>
<p>In practice that means first-party click IDs stored on your own domain, conversions sent from your backend, and server-to-server postbacks to partners where they need them. Ask any vendor exactly how they handle this before you buy.</p>
<figure><div><img alt="Server-side tracking in four steps: a visitor clicks a tracking link in the browser, a first-party click ID is stored on your domain, the conversion is sent from your backend, and a server-to-server postback goes to the partner. Third-party cookies, which WebKit blocks by default, are not relied on." width="1280" height="1188" src="https://apptycoons.com/assets/blog/build-vs-buy-affiliate-tracking/server-side-tracking.webp"/></div><figcaption>WebKit also deletes script-written cookies after 7 days without interaction, or caps them at 24 hours after a decorated link from a tracker.</figcaption></figure>
<h2>The hybrid route: buy tracking, build the experience</h2>
<p>Many teams get the best of both by buying the tracking and building around it. The vendor handles clicks and conversions; you build what partners see and how they get paid, using the vendor’s API and webhooks.</p>
<p>Typical hybrid builds:</p>
<ul>
<li><span>A branded partner portal inside your own product, fed by the vendor’s API.</span></li>
<li><span>Custom onboarding and approval flows for new partners.</span></li>
<li><span>Payouts into your own wallets or balances, triggered by the vendor’s conversion webhooks.</span></li>
<li><span>Reporting that joins affiliate data with your CRM.</span></li>
</ul>
<blockquote><div>Watch out</div><p>Before you sign</p><div>Check that the vendor’s API exposes what you need and that you can export all of your data.</div></blockquote>
<h2>Open-source tracking: what it saves and what it doesn’t</h2>
<p>Open-source affiliate tracking saves the subscription and nothing else. Self-hosting a tool trades a monthly fee for hosting, security updates and an engineer who keeps it running, and it leaves every operational job where it was: fraud review before payout, the payout runs themselves, tax forms for partners, disputes and support.</p>
<p>It makes sense in two cases. Your team already operates servers and wants the data in its own database, or you plan a custom build later and want to learn your real requirements on a tool you can read and change. If neither applies, compare the cost of an engineer’s time each month with the $49 to $179 plans above, and the paid plan usually wins.</p>
<h2>Compliance: disclosure is part of the system</h2>
<p>Whichever you choose, your program has to support honest disclosure. The FTC’s Endorsement Guides FAQ says affiliates should disclose their relationship to the retailer clearly and conspicuously, so readers can decide how much weight to give the endorsement.</p>
<p>Software can make that easier: disclosure guidance in onboarding, approved copy and creative in the portal, and the ability to pause partners who don’t comply.</p>
<h2>A decision checklist</h2>
<p>Answer these before you request quotes, from vendors or from us:</p>
<ul>
<li><span>Can a standard per-sale or recurring commission express your program?</span></li>
<li><span>Do partners need to be paid anywhere other than a bank account or PayPal?</span></li>
<li><span>Is the partner portal something your customers judge you by?</span></li>
<li><span>What revenue or cost would a custom system change each year, in dollars?</span></li>
<li><span>Who will own the system after launch?</span></li>
</ul>
<p>If the answers point to buying, buy, and revisit in a year. If they point to building, our <a href="https://apptycoons.com/industries/affiliate-crm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-affiliate-tracking">affiliate and CRM software development</a> page shows what we build. Bring your current commission rules and partner count to a <a href="https://apptycoons.com/contact?book=1&amp;service=web-app-development&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-affiliate-tracking">free 30-minute call</a> and we will tell you whether a build is worth pricing.</p><div><h2>Sources</h2><ol><li><a href="https://tapfiliate.com/pricing/" rel="noopener">Tapfiliate pricing</a><span>, Tapfiliate</span></li><li><a href="https://www.rewardful.com/pricing" rel="noopener">Rewardful pricing</a><span>, Rewardful</span></li><li><a href="https://webkit.org/tracking-prevention/" rel="noopener">Tracking Prevention in WebKit</a><span>, WebKit</span></li><li><a href="https://www.ftc.gov/business-guidance/resources/ftcs-endorsement-guides-what-people-are-asking" rel="noopener">FTC&#x27;s Endorsement Guides: What People Are Asking</a><span>, Federal Trade Commission</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/build-vs-buy-affiliate-tracking?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-affiliate-tracking">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Build vs buy AI agents: a CTO decision framework</title><link>https://apptycoons.com/blog/build-vs-buy-ai-agents</link><guid isPermaLink="true">https://apptycoons.com/blog/build-vs-buy-ai-agents</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>AI strategy</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>There are three options, not two: buy a product, configure a platform or build custom. A decision matrix, a three-year cost model and a checklist.</description><media:content url="https://apptycoons.com/blog/build-vs-buy-ai-agents/opengraph-image?0f629b334eeba4f7" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Buy when the agent does what every company’s agent does, volume is modest and the product already connects to your systems. Build when the workflow is your advantage, the data must stay under your control, or usage fees would outgrow a one-off build. Most teams end up buying the commodity layers and building the workflow on top.</p>
<p>At 2,000 support outcomes a month, Intercom’s Fin costs about $71,000 over three years at its listed starting price, less than a custom agent. At 10,000 a month it costs about $356,000, roughly three times the custom option’s three-year cost in our model. Same job, same agent; volume alone flipped the answer.</p>
<p>Product vendors will tell you building is slow and risky. Development shops, us included, will tell you buying locks you in. Both are sometimes right, so what follows is a way to decide for one specific agent, including the cases where the right answer is not to hire a studio like ours.</p>
<h2>Build vs buy AI agents: the short answer</h2>
<p>Buy when the agent does a job every company has, at a volume where per-use fees stay modest, and a product already works with your systems. Build when the agent’s workflow is part of how you win, when it must act inside your own systems, when your data must stay under your control, or when usage fees would outgrow a one-off build within a few years.</p>
<p>Most companies end up in between. They buy the commodity layers, such as the models, telephony, vector search and observability tools, and build the workflow that is specific to them on top. The decision is less “build or buy” than “which layers do we own”.</p><h2>The three real options: buy, configure or build</h2>
<p>There are three ways to get an agent into production, and they differ in time to value, cost model and who owns the result.</p>
<div><p><em>Buy, configure or build</em></p>
<table><thead><tr><th></th><th>Buy a product</th><th>Configure a platform</th><th>Build custom</th></tr></thead><tbody><tr><th>What it is</th><td>A finished agent for one job, such as a helpdesk’s AI agent</td><td>An agent builder inside a suite you already use</td><td>Your own code on model APIs, in your cloud</td></tr><tr><th>Example pricing</th><td>Intercom Fin from $0.99 per outcome</td><td>Copilot Studio credit packs of 25,000 for $200 a month</td><td>Our fixed-price builds, $25k–$120k</td></tr><tr><th>Time to first value</th><td>Days</td><td>Weeks</td><td>6–16 weeks after a two-week discovery</td></tr><tr><th>Cost model</th><td>Per seat or per outcome, rises with volume</td><td>Per credit or message, rises with volume</td><td>Up-front build, then tokens and hosting</td></tr><tr><th>Fit to your workflow</th><td>The vendor’s workflow</td><td>Within the suite’s connectors and limits</td><td>Exactly yours</td></tr><tr><th>Who owns the code and IP</th><td>The vendor</td><td>The vendor; you own configuration</td><td>You</td></tr></tbody></table></div>
<h2>A decision matrix for CTOs</h2>
<p>Answer these eight questions for the specific agent you are considering. If most answers fall in the “buy” column, buy. If most fall in “build”, build. If it is mixed, buy now and design for a later move.</p>
<div><p><em>Eight questions that decide build vs buy</em></p>
<table><thead><tr><th>Question</th><th>Points to buy</th><th>Points to build</th></tr></thead><tbody><tr><th>Is the workflow a competitive advantage?</th><td>No, everyone does it the same way</td><td>Yes, how it works is why customers choose you</td></tr><tr><th>Does it need to act inside your own systems?</th><td>Only common SaaS tools with existing connectors</td><td>Internal systems, custom APIs or several systems of record</td></tr><tr><th>What volume do you expect in year three?</th><td>Low or uncertain</td><td>High and growing, so per-use fees compound</td></tr><tr><th>Where must the data live?</th><td>Vendor cloud is acceptable</td><td>Your cloud, your region or no third-party retention</td></tr><tr><th>How much control do you need over models?</th><td>The vendor’s choice is fine</td><td>You need to switch models or route by task</td></tr><tr><th>Is the agent the product you sell?</th><td>No, it is an internal efficiency tool</td><td>Yes, it is part of what customers pay for</td></tr><tr><th>Who will run it after launch?</th><td>Nobody has time to own it</td><td>A named owner with budget for changes</td></tr><tr><th>How fast do you need it?</th><td>This month</td><td>This quarter, done properly</td></tr></tbody></table></div>
<h2>Three-year total cost: a worked example</h2>
<p>The cost comparison flips with volume, so do the arithmetic for your own numbers rather than trusting a rule of thumb. Here is one worked example for a support agent that resolves customer questions.</p>
<p>The bought option is Intercom’s Fin AI Agent at its listed starting price of $0.99 per outcome, rechecked on October 18, 2026. The custom option uses assumptions we state openly: a $25k–$120k build placed at $60,000 for a support agent with helpdesk and order-system integrations, $500 a month for hosting and monitoring, 20% of the build per year for maintenance and model updates, and model tokens based on Anthropic’s own example of about $37 per 10,000 support tickets on Claude Haiku 4.5. Helpdesk seats are left out because you need them either way.</p>
<div><p><em>Three-year cost, support agent (list prices and stated assumptions)</em></p>
<table><thead><tr><th>Outcomes a month</th><th>Buy: $0.99 per outcome</th><th>Build: $60k build plus run</th><th>Cheaper option</th></tr></thead><tbody><tr><th>2,000</th><td>about $71,300</td><td>about $114,300</td><td><strong>Buy</strong></td></tr><tr><th>10,000</th><td>about $356,400</td><td>about $115,300</td><td><strong>Build</strong></td></tr></tbody></table></div>
<p>How the build column adds up at 10,000 a month: $60,000 build, plus $18,000 hosting over 36 months, plus $36,000 maintenance over three years, plus about $1,300 in tokens. The tokens barely register; the build and the people who maintain it are the real cost. On these assumptions, the break-even is about 3,200 outcomes a month.</p>
<figure><figcaption>Where the build option’s three years go, at 10,000 outcomes a month</figcaption><ul><li><span>Build</span>: <span>$60,000</span></li><li><span>Maintenance, 3 years</span>: <span>$36,000</span></li><li><span>Hosting, 36 months</span>: <span>$18,000</span></li><li><span>Model tokens</span>: <span>about $1,300</span></li></ul><p>Stated assumptions above; total about $115,300. Tokens are the shortest bar.</p></figure>
<p>Three caveats keep this honest. A product like Fin includes things a custom build has to create, such as reporting and content management, and its per-outcome price can be higher than the starting price. Intercom also counts a handoff to a person as an outcome when Fin completes that workflow, so outcomes are not the same as fully resolved tickets. A custom build can cost more than $60,000 if it needs more integrations or compliance work. And a bought agent is live in days, which has value the table does not show. Change the assumptions and rerun it; the method matters more than our numbers. For a fuller breakdown of build and running costs, see <a href="https://apptycoons.com/blog/ai-agent-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">AI agent development cost</a>.</p>
<h2>Data, IP and lock-in: what to check before you sign</h2>
<p>Lock-in is rarely about the contract term. It is about whether your data, history and logic can leave with you. Before buying, check:</p>
<ul>
<li><span>whether the vendor trains models on your data, and whether that can be switched off in writing,</span></li>
<li><span>whether you can export conversation logs, knowledge sources and agent configuration in a usable format,</span></li>
<li><span>where data is processed and stored, and for how long,</span></li>
<li><span>whether you can choose or change the underlying model,</span></li>
<li><span>and what happens to your history if you cancel.</span></li>
</ul>
<p>If you build, the equivalent questions are about ownership. Our builds put the code in your repository from day one and the IP is yours, but whoever builds for you, confirm both in the contract.</p>
<p>Price the exit before you sign, too, because leaving a bought agent is a small project of its own. Expect to export conversation history and the knowledge base, map them into the next system, rebuild every integration the product handled for you, and rerun your evaluation cases to prove the replacement answers as well. None of that has a list price, so ask the vendor for a sample export on day one; a messy or partial export is the clearest sign of how much leaving will cost.</p>
<h2>Governance and risk: why most failures are not about the model</h2>
<p>Agent projects stall more often because of how they are run than because of the model, and the build-or-buy choice decides who carries that risk. On the buy side, the risk is a product that demos well but cannot reach the systems or rules your cases depend on. On the build side, it is a team that has never shipped an agent learning on your budget.</p>
<p>According to Fortune’s summary of MIT NANDA’s 2025 report on enterprise AI, tools bought from specialized vendors and builds done with partners succeeded about 67% of the time, and purely internal builds only a third as often. The lesson is not “never build”. It is that building from scratch in-house, without people who have shipped agents before, is the riskiest route. Whichever route you choose, insist on an evaluation set, approval steps for high-impact actions, an audit log, and a named owner after launch; our checklist of <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">agent guardrails</a> lists ten controls to ask for on either route. We cover this in more depth in <a href="https://apptycoons.com/blog/ai-pilots-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">why AI pilots stall before production</a>.</p>
<h2>When buying is the better choice</h2>
<p>Buying is the right answer more often than development shops admit. Buy when:</p>
<ul>
<li><span>the use case is common, such as help-center answers, meeting notes or ticket summaries,</span></li>
<li><span>a product already integrates with the tools you use, without custom work,</span></li>
<li><span>your volume keeps per-use fees below what a build and its maintenance would cost,</span></li>
<li><span>you need value this month and can accept the vendor’s workflow,</span></li>
<li><span>or there is no one to own a custom agent once it ships.</span></li>
</ul>
<p>In those cases, a custom build would cost more and arrive later, and you should not pay for one, from us or anyone else.</p>
<h2>Do general-purpose agents like Muse and Grok Bot count as buying?</h2>
<p>Yes, and for one kind of work they are the cheapest option there is. Meta’s Muse and xAI’s Grok Bot are general-purpose agents that sign in to the apps a person already uses and work through multi-step jobs. If the job belongs to one person or one small team and runs through common tools, try them before you buy anything narrower or build anything at all.</p>
<p>What each one is, from the vendors’ own pages (checked October 12, 2026):</p>
<ul>
<li><span><strong>Muse</strong> launched on September 8, 2026, rolling out in the US. Meta says it is free for most of what people need, with paid plans for more. It runs on its own cloud machine, people choose which apps it connects to and how much access it gets, and it checks with the user before sensitive actions such as sending an email or making a purchase.</span></li>
<li><span><strong>Grok Bot</strong> has been in beta since August 11, 2026, included with SuperGrok and paid Cursor plans, with its own usage on top. Bots share a cloud computer that belongs to the account, sign in across apps and websites, use connectors where they exist and operate the screen everywhere else, and come back when something needs approval. xAI says teams use them for sales outbound, marketing campaigns and office operations; Enterprise access is a waitlist.</span></li>
</ul>
<p>The limits are those of any bought agent, plus a few more. The agent runs in the vendor’s cloud with your users’ logins. It follows the vendor’s approval model, not yours, and your evaluation cases and audit requirements don’t travel with it. Where it operates a screen instead of an API, a layout change can break the job. Enterprise controls are still arriving on both.</p>
<p>So split the work by who carries the risk. An agent that drafts, researches or files on behalf of one person can be bought this way today. An agent that changes records, moves money or speaks to customers on the company’s behalf belongs in the build column of the matrix above. There is also a middle path: keep the workflow and its rules in your own systems, and let Muse, Grok Bot or Claude call them through an <a href="https://apptycoons.com/blog/mcp-server-meta-muse-grok?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">MCP server for Muse and Grok</a> that enforces your permissions.</p>
<figure><figcaption>Split the work by who carries the risk</figcaption><div><div><div><p><strong>Buy a general-purpose agent</strong> (Muse, Grok Bot)</p></div><ul><li>Drafts, researches or files for one person</li><li>Runs through common apps with your users’ logins</li><li>Follows the vendor’s approval model</li></ul></div><div><div><p><strong>Build</strong> (Your systems)</p></div><ul><li>Changes records, moves money or speaks to customers</li><li>Acts inside your own systems</li><li>Follows your approval rules and audit trail</li></ul></div></div></figure>
<h2>When building wins</h2>
<p>Building wins when the agent is part of what makes your business different, or when no product can reach the systems it needs to act in. Two of our builds show both patterns.</p>
<p><a href="https://apptycoons.com/work/relm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">Relm</a> is a commercial real estate platform where the agents are the product: parallel agents turn a property address into a sourced report and a 10-year pro forma. No off-the-shelf agent does that, because that work is what Relm sells.</p>
<p><a href="https://apptycoons.com/work/superdeal?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">Superdeal</a> is the second pattern. Its agent reads the platform’s own creator, deal and shipment records and works through the platform’s own approval step before anything is sent. A bought agent would sit outside that data and those approvals, which is where all of the agent’s value comes from.</p>
<h2>The hybrid most teams end up with</h2>
<p>In practice, nearly every custom agent is part bought. Models come from Anthropic, OpenAI, Google or open-source providers; vector search, telephony and observability come from vendors. What you build is the layer that encodes your workflow: the tools the agent can call, the rules it follows, the approvals it needs and the evaluation set that proves it works. Owning that layer is what lets you switch models as prices fall, and move between vendors without starting again.</p>
<figure><div><img alt="Two stacked layers. Build: your workflow layer, with the tools the agent can call, the rules it follows, the approvals it needs and the evaluation set. Buy: commodity layers, with models, vector search, telephony and observability." width="1280" height="910" src="https://apptycoons.com/assets/blog/build-vs-buy-ai-agents/layers.webp"/></div><figcaption>The layer you build is the one that encodes your workflow.</figcaption></figure>
<h2>AI agent vs chatbot vs RPA</h2>
<p>Part of the build-or-buy question is whether you need an agent at all. Sometimes a chatbot or an RPA script is enough, and both are cheaper.</p>
<div><p><em>Chatbot, RPA or AI agent</em></p>
<table><thead><tr><th></th><th>Chatbot</th><th>RPA</th><th>AI agent</th></tr></thead><tbody><tr><th>What it does</th><td>Answers questions</td><td>Repeats fixed steps in software</td><td>Decides and acts within rules</td></tr><tr><th>Handles variation</th><td>In language only</td><td>Poorly; breaks when screens change</td><td>Yes, within guardrails</td></tr><tr><th>Takes actions</th><td>No</td><td>Yes, scripted</td><td>Yes, with approvals</td></tr><tr><th>Choose it when</th><td>The job is answering</td><td>Steps never change</td><td>Inputs vary and judgment is needed</td></tr></tbody></table></div>
<h2>How to run a fair test before you decide</h2>
<p>You can test both routes cheaply before committing to either. Run the bought product on a slice of real traffic for two to four weeks, with its own reporting turned on, and record three numbers: how many cases it fully resolved, how many it got wrong, and how many it handed to a person. Then run the same cases through a custom prototype on your real data; our discovery sprint ends with one for $5,000.</p>
<figure><figcaption>A fair test of both routes</figcaption><ol><li><span><strong>Run the bought product</strong> (2–4 weeks): <span>On a slice of real traffic, with its own reporting turned on.</span></span></li><li><span><strong>Record three numbers</strong> (Same weeks): <span>Cases fully resolved, cases it got wrong, cases handed to a person.</span></span></li><li><span><strong>Run a custom prototype</strong> (Discovery): <span>The same cases, on your real data.</span></span></li><li><span><strong>Compare on your evaluation cases</strong> (Decide): <span>Not on a demo, and at a cost you can live with at year-three volume.</span></span></li></ol></figure>
<p>Compare the two on your evaluation cases, not on a demo. If the product resolves enough cases at a cost you can live with at year-three volume, buy it. If it stalls on the cases that matter most, such as those that need your internal systems or your rules, that gap is what a custom build is for. If you do go custom, the vetting questions are in <a href="https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">how to choose an AI agent development company</a>.</p>
<p>The method is not specific to AI. We ran <a href="https://apptycoons.com/blog/build-vs-buy-affiliate-tracking?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">the same decision for affiliate tracking</a>, where SaaS plans that step up with tracked affiliate revenue play the part that per-outcome pricing plays here.</p>
<h2>A build-vs-buy checklist</h2>
<p>Before you decide, write down answers to these, for this agent specifically:</p>
<ul>
<li><span>The one business number the agent must move, and its current value.</span></li>
<li><span>Expected volume in month one and in year three.</span></li>
<li><span>Every system the agent must read from or write to.</span></li>
<li><span>Where the data may be processed and stored.</span></li>
<li><span>Which actions need a person’s approval.</span></li>
<li><span>Who owns the agent after launch, and their budget for changes.</span></li>
<li><span>The three-year cost of buying at year-three volume, and of building.</span></li>
</ul>
<p>If the checklist points to buying, buy. If it points to building, our <a href="https://apptycoons.com/services/ai-agent-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">AI agent development</a> team fixes the price after a two-week discovery sprint, and the first conversation is a free AI audit that covers this decision, including when the answer is to buy.</p><div><h2>Sources</h2><ol><li><a href="https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/" rel="noopener">MIT report: 95% of generative AI pilots at companies are failing</a><span>, Fortune</span></li><li><a href="https://www.intercom.com/pricing" rel="noopener">Intercom pricing (Fin AI Agent)</a><span>, Intercom</span></li><li><a href="https://www.microsoft.com/en-us/microsoft-copilot/microsoft-copilot-studio" rel="noopener">Microsoft Copilot Studio pricing</a><span>, Microsoft</span></li><li><a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener">Claude API pricing</a><span>, Anthropic</span></li><li><a href="https://about.fb.com/news/2026/09/introducing-muse-personal-ai-agent/" rel="noopener">Introducing Muse: The World’s First Personal AI Agent Built for Everyone</a><span>, Meta</span></li><li><a href="https://x.ai/news/introducing-grok-bot" rel="noopener">Introducing Grok Bot</a><span>, xAI</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/build-vs-buy-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=build-vs-buy-ai-agents">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>EU AI Act and GDPR for AI agents: a build checklist</title><link>https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents</link><guid isPermaLink="true">https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>AI strategy</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>What the EU AI Act and GDPR mean for a custom AI agent or voice agent: who the provider is, what Article 50 requires, the 2026 dates, data transfers and the controls that go into the build.</description><media:content url="https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents/opengraph-image?5a4908a7902babd8" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Since August 2, 2026, an AI agent that talks to people in the EU must tell them it is an AI by the first interaction (Article 50). Bans on manipulative AI already apply. High-risk rules for uses such as hiring or credit start December 2, 2027. GDPR still governs the agent’s personal data, including transfers.</p>
<p>Since August 2, 2026, a support chatbot or voice agent that talks to people in the EU has to tell them it is an AI, at the latest at the first interaction. Breaching that duty can cost up to €15 million or 3% of worldwide annual turnover, whichever is higher (for SMEs and start-ups, whichever is lower).</p>
<p>Most of what the EU AI Act and GDPR ask of an agent is engineering work: a line in the greeting, a log, an approval step, a region setting. This guide maps each rule to the build, as the law stands on October 18, 2026. Apptycoons builds <a href="https://apptycoons.com/services/ai-agent-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=eu-ai-act-gdpr-ai-agents">custom AI agents</a> with engineers in Karachi, Pakistan, so the transfers section describes our own setup.</p>
<h2>Does the EU AI Act apply to your AI agent?</h2>
<p>Yes, if the agent is placed on the EU market or its output is used in the EU. Article 2(1) covers providers placing AI systems on the EU market wherever they are established, deployers located in the EU, and providers and deployers in third countries “where the output produced by the AI system is used in the Union”. A US or UK company whose agent answers EU customers is in scope.</p>
<p>The Commission’s AI Act Service Desk says the term AI agent “is not legally defined”, but agents fall under the definition of an AI system, so the same rules apply. It calls its view on agents preliminary.</p><h2>Who is the provider when an agency builds the agent?</h2>
<p>Usually the client. Article 3(3) makes the provider whoever develops an AI system, or “has an AI system … developed and places it on the market or puts the AI system into service under its own name or trademark”. A company that commissions a custom agent and runs it under its own brand fits that definition, and because it uses the agent in its own business, it is normally the deployer as well (Article 3(4)).</p>
<p>That is our reading of the definitions, not a ruling, and a vendor selling one agent to many customers under its own brand is a provider itself. Write the split into the contract: who holds the Article 50 duties, who keeps the documentation, who answers a regulator.</p>
<p>GDPR draws a parallel line: you are normally the controller and the development partner the processor, which requires an Article 28 contract (a data processing agreement, or DPA).</p>
<h2>What changed in 2026: the Digital Omnibus dates</h2>
<p>The Digital Omnibus on AI, Regulation (EU) 2026/1744, moved the high-risk deadlines and left the chatbot rules on schedule. It entered into force on July 27, 2026, so pages giving August 2, 2026 as the high-risk date are out of date.</p>
<div><p><em>EU AI Act dates after Regulation (EU) 2026/1744</em></p>
<table><thead><tr><th>Date</th><th>What applies</th></tr></thead><tbody><tr><th>Feb 2, 2025</th><td>Banned practices (Article 5) and AI literacy (Article 4)</td></tr><tr><th>Aug 2, 2025</th><td>Rules for general-purpose AI models, governance and penalties</td></tr><tr><th>Aug 2, 2026</th><td>General application, including the Article 50 transparency duties</td></tr><tr><th>Dec 2, 2026</th><td>New Article 5 bans (non-consensual intimate imagery, child sexual abuse material); marking deadline for generative systems on the market before Aug 2, 2026</td></tr><tr><th>Dec 2, 2027</th><td>High-risk rules for Annex III uses (hiring, credit, insurance pricing and others)</td></tr><tr><th>Aug 2, 2028</th><td>High-risk rules for AI in regulated products (Annex I)</td></tr></tbody></table></div>
<p>The Omnibus also softened Article 4: providers and deployers must now “take measures to support the development of AI literacy”, not ensure a sufficient level of it.</p>
<h2>What Article 50 requires of chatbots and voice agents</h2>
<p>An agent that talks to people must be designed so that they “are informed that they are interacting with an AI system, unless this is obvious” (Article 50(1)). The information has to arrive “in a clear and distinguishable manner at the latest at the time of the first interaction or exposure”, and it must meet accessibility requirements (Article 50(5)). The Commission’s FAQ names “chatbots, AI agents, and avatars”; a voice agent on a phone line is the same two-way exchange.</p>
<p>Three details are often misreported:</p>
<ul>
<li><span><strong>Naming the company.</strong> Article 50(1) does not require the agent to say which business it works for. It is good practice, and the GDPR notice usually needs it anyway.</span></li>
<li><span><strong>The “obvious” exception.</strong> Don’t build on it. A voice agent designed to sound human is the opposite of obvious.</span></li>
<li><span><strong>Marking output.</strong> Article 50(2) is a separate duty: providers of systems that generate synthetic audio, image, video or text must mark the output “in a machine-readable format and detectable as artificially generated or manipulated”. A synthetic voice is synthetic audio. The grace period to December 2, 2026 covers only systems on the market before August 2, 2026.</span></li>
</ul>
<figure><figcaption>Maximum AI Act fines, in millions of euros</figcaption><ul><li><span>Article 50 breach</span>: <span>€15M or 3%</span></li><li><span>Article 5 banned practice</span>: <span>€35M or 7%</span></li></ul><p>Or the percentage of total worldwide annual turnover, whichever is higher; for SMEs and start-ups, whichever is lower.</p></figure>
<p>Our <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=eu-ai-act-gdpr-ai-agents">AI voice agent development</a> page covers how we build and test the greeting, transfer and recording flow.</p>
<h2>Disclosure scripts for chat, voice and handoff</h2>
<p>These are examples to adapt, not legal wording. The voice greeting combines the Article 50 disclosure with the GDPR Article 13 recording notice, because both have to come first.</p>
<p><strong>Chat, first message:</strong> “Hi, I’m [Company]’s AI assistant. I can check orders and book appointments. Type ‘person’ at any time to reach our team.”</p>
<p>On a voice call, the greeting, the reminder before a sensitive step and the line before a transfer look like this:</p>
<figure><figcaption>Example call (illustrative): disclosure, a sensitive step and a handoff</figcaption><ol><li><strong>AI agent:</strong> <span>Thanks for calling [Company]. I’m an AI assistant. This call is recorded so we can handle your request, and we keep recordings for [30] days. You can find our privacy notice at [company.com/privacy] or ask for it by email. How can I help?</span></li><li><strong>Caller:</strong> <span>I need to move my appointment.</span></li><li><strong>AI agent:</strong> <span>As a reminder, you’re speaking with an AI assistant. Before I change your booking, I’ll read the details back for you to confirm.</span></li><li><strong>Caller:</strong> <span>Can I talk to a person?</span></li><li><strong>AI agent:</strong> <span>I’m transferring you to a member of our team. They’ll see a summary of our conversation.</span></li></ol></figure>
<p>Keep the spoken notice short and put the full privacy notice online.</p>
<h2>When does an AI agent become high-risk?</h2>
<p>An agent becomes high-risk when it is used for an Annex III purpose. The ones closest to agent work: recruitment and selection of candidates (4(a)), decisions on terms of work, promotion or termination and the monitoring of workers (4(b)), creditworthiness and credit scoring, with fraud detection excluded (5(b)), risk assessment and pricing in life and health insurance (5(c)), and evaluating or classifying emergency calls (5(d)).</p>
<p>From December 2, 2027, those systems carry the Chapter III obligations: risk management, data governance, technical documentation, record-keeping, human oversight, and accuracy and cybersecurity.</p>
<p>Human oversight is where the “kill switch” idea comes from, and it is often overstated. There is no general duty for every AI agent to have one. For high-risk systems, Article 14(4)(e) requires that the people assigned to oversight can “intervene in the operation of the high-risk AI system or interrupt the system through a ‘stop’ button or a similar procedure that allows the system to come to a halt in a safe state” (checked October 18, 2026). In build terms, that is a switch that stops the agent and leaves any action it was taking either finished or rolled back, never half done.</p>
<p>A general customer-service, booking or FAQ agent is typically not high-risk. Add a step that screens job applicants or sets credit limits and it is. Draw that line in scope.</p>
<figure><figcaption>Where the high-risk line usually falls</figcaption><div><div><div><p><strong>Typically not high-risk</strong> (Article 50 still applies)</p></div><ul><li>Customer-service agent</li><li>Booking agent</li><li>FAQ agent</li></ul></div><div><div><p><strong>High-risk (Annex III)</strong> (From Dec 2, 2027)</p></div><ul><li>Screening job applicants</li><li>Credit scoring or setting credit limits</li><li>Life and health insurance pricing</li><li>Evaluating or classifying emergency calls</li></ul></div></div></figure>
<h2>Banned practices to design out now</h2>
<p>Article 5(1)(a) and (b) have applied since February 2, 2025. They ban manipulative or deceptive techniques that materially distort behavior and cause significant harm, and exploiting vulnerabilities linked to age, disability or social or economic situation.</p>
<p>For a sales or collections agent, design out the patterns that lean toward that line: invented deadlines, pressure on callers who sound confused, scripts that push harder when someone hesitates.</p>
<h2>GDPR for agents: what still applies</h2>
<p>GDPR applies to an agent the way it applies to any system that processes personal data, and it has not changed. The separate Digital Omnibus proposal to amend it (COM(2025) 837) was still in Parliament and Council when we checked on October 18, 2026.</p>
<p>The parts that turn into code:</p>
<ul>
<li><span><strong>Lawful basis (Article 6).</strong> Pick it per purpose before the build.</span></li>
<li><span><strong>Minimization.</strong> Send the model only the fields the task needs.</span></li>
<li><span><strong>Retention.</strong> Transcripts, recordings, logs and vector-store chunks each need a deletion timer.</span></li>
<li><span><strong>DPIA (Article 35).</strong> Required before processing “likely to result in a high risk”, such as health data at scale.</span></li>
<li><span><strong>Automated decisions (Article 22).</strong> People have the right not to be subject to solely automated decisions with legal or similarly significant effects.</span></li>
<li><span><strong>Rights requests.</strong> Access and deletion must reach transcripts, logs and embeddings, not only the CRM.</span></li>
</ul>
<h2>Sub-processors in an agent stack</h2>
<p>A voice or chat agent can involve five or six vendors that see personal data, and each belongs in the DPA as a sub-processor. Article 28 requires the controller’s prior authorization to use them.</p>
<div><p><em>Who sees what in a typical agent stack</em></p>
<table><thead><tr><th>Component</th><th>What it sees</th><th>What to settle</th></tr></thead><tbody><tr><th>Model API</th><td>Prompts, retrieved context, outputs</td><td>DPA, region, training and retention settings</td></tr><tr><th>Telephony</th><td>Phone numbers, call audio, call records</td><td>DPA, where recordings are stored</td></tr><tr><th>Speech-to-text</th><td>Caller audio</td><td>DPA, retention of audio and transcripts</td></tr><tr><th>Text-to-speech</th><td>The agent’s replies, which may contain personal data</td><td>DPA, how generated audio is marked</td></tr><tr><th>Vector database</th><td>Chunks of your documents and records</td><td>DPA, region, deletion on request</td></tr><tr><th>Hosting and logging</th><td>Everything the agent logs</td><td>DPA, region, log retention</td></tr></tbody></table></div>
<p>Model providers differ. OpenAI has not trained on API data by default since March 1, 2023, keeps abuse-monitoring logs for up to 30 days, offers zero data retention only with prior approval, and can keep both storage and processing in Europe (EEA and Switzerland); its UK region stores data there but may process it elsewhere. Anthropic’s own API currently offers inference in the US or globally and stores workspace data in the US, so EU residency for Claude means going through a cloud platform such as Google Cloud, where the endpoint sets the region. Check current terms before you write the privacy notice.</p>
<h2>Working with engineers outside the EU: a transfer setup that holds up</h2>
<p>Engineers outside the EU can work on a GDPR-covered system, but personal data sent to a country without an EU adequacy decision needs a transfer tool and an assessment. Pakistan, where our engineers work, is not on the <a href="https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en" rel="noopener">Commission’s adequacy list</a>. The setup we propose:</p>
<ul>
<li><span><strong>Production data stays in your environment,</strong> in your cloud account and, when you require it, an EU region.</span></li>
<li><span><strong>Development and testing run on synthetic or redacted data.</strong></span></li>
<li><span><strong>Production access is limited to named engineers,</strong> for a stated reason, and logged.</span></li>
<li><span><strong>Where personal data does reach Karachi, the EU standard contractual clauses apply:</strong> Module 2 (controller to processor) or Module 3 (processor to sub-processor), depending on who signs. They already contain the Article 28 terms, so no separate DPA is needed for that transfer.</span></li>
<li><span><strong>Clause 14 requires a transfer impact assessment</strong> of the destination country’s laws and practices, with extra safeguards such as encryption where needed. We supply the technical facts; your counsel signs off.</span></li>
</ul>
<figure><div><img alt="Two zones. Your environment, in your cloud account and an EU region on request, holds production data and the model, storage and vector database. Engineers in Karachi, a country without an EU adequacy decision, work on synthetic or redacted data, with named, logged access for a stated reason. Where personal data reaches Karachi, EU standard contractual clauses and a Clause 14 transfer impact assessment apply." width="1280" height="922" src="https://apptycoons.com/assets/blog/eu-ai-act-gdpr-ai-agents/transfer.webp"/></div><figcaption>The setup we propose; your counsel signs off on the transfer assessment.</figcaption></figure>
<p>None of this means data “never leaves the EU”. Access from Karachi is a transfer and is documented as one.</p>
<h2>UK buyers: what differs</h2>
<p>The EU AI Act is not UK law, but it reaches a UK company whose agent’s output is used in the EU (Article 2(1)(c)). Personal data falls under UK GDPR, and EU-to-UK flows rely on the adequacy decisions the Commission renewed in December 2025.</p>
<p>Transfers out of the UK work differently. The ICO is explicit that “the EU SCCs are not valid on their own” for UK transfers: you use the ICO’s International Data Transfer Agreement (IDTA), or the UK Addendum attached to the EU SCCs, and you must complete a transfer risk assessment (TRA). The Data (Use and Access) Act 2025 also rewrote the UK rules on automated decision-making; check them before an agent decides anything significant on its own.</p>
<h2>The build checklist</h2>
<p>This is the list we work through in discovery and build for an agent with EU or UK users: a legal hook, a change in the system and a record you keep. The last row, the kill switch, is a legal duty only for high-risk systems under Article 14; for every other agent it is good practice. The approval, audit and kill-switch rows are the same controls our <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=eu-ai-act-gdpr-ai-agents">AI agent guardrails checklist</a> covers from the security side.</p>
<div><p><em>EU AI Act and GDPR controls in an agent build</em></p>
<table><thead><tr><th>Control</th><th>Legal hook</th><th>What goes into the build</th><th>Evidence you keep</th></tr></thead><tbody><tr><th>Role mapping</th><td>AI Act Art. 3(3)–(4); GDPR Art. 28</td><td>Provider, deployer, controller and processor agreed in discovery</td><td>Contract clause and role note</td></tr><tr><th>AI disclosure in chat</th><td>AI Act Art. 50(1), 50(5)</td><td>First message says it is an AI; readable by screen readers</td><td>Test case on the first turn</td></tr><tr><th>AI disclosure in voice</th><td>AI Act Art. 50(1); GDPR Art. 13</td><td>Greeting with AI and recording notice before any question</td><td>Script version and test recording</td></tr><tr><th>Synthetic audio marking</th><td>AI Act Art. 50(2)</td><td>Marking agreed with the speech vendor</td><td>Vendor confirmation</td></tr><tr><th>Human handoff</th><td>GDPR Art. 22(3), where Art. 22 applies</td><td>Transfer on request and on low confidence</td><td>Handoff log</td></tr><tr><th>Approval steps</th><td>GDPR Art. 22; AI Act Art. 14 if high-risk</td><td>Human approval before actions that move money or change rights</td><td>Approval records</td></tr><tr><th>Action audit log</th><td>GDPR Art. 5(2), 32; AI Act Art. 12 if high-risk</td><td>Every tool call logged with input, output and actor</td><td>Log with a set retention</td></tr><tr><th>Minimization</th><td>GDPR Art. 5(1)(c)</td><td>PII redacted before the model call</td><td>Redaction tests</td></tr><tr><th>Retention timers</th><td>GDPR Art. 5(1)(e), 13(2)(a)</td><td>Auto-delete for transcripts, recordings, logs and chunks</td><td>Retention configuration</td></tr><tr><th>Region pinning</th><td>GDPR Chapter V</td><td>Model, storage and vector database in the chosen region</td><td>Deployment configuration</td></tr><tr><th>Model data settings</th><td>GDPR Art. 28; provider terms</td><td>No-training endpoints; zero retention where the provider offers and approves it</td><td>Provider settings and agreement</td></tr><tr><th>Sub-processor register</th><td>GDPR Art. 28(2) and (4)</td><td>Every service that touches personal data listed</td><td>DPA annex</td></tr><tr><th>Transfer tools</th><td>GDPR Art. 46; SCC Clause 14; UK IDTA or Addendum</td><td>SCCs and assessment for access from Karachi</td><td>Signed clauses and assessment</td></tr><tr><th>DPIA input</th><td>GDPR Art. 35</td><td>System description and data-flow diagram for your DPIA</td><td>DPIA annex</td></tr><tr><th>Evaluation set and kill switch</th><td>GDPR Art. 32; AI Act Art. 14(4)(e) and 15 if high-risk</td><td>Test set scored on every change; one switch to disable the agent or a tool</td><td>Evaluation reports</td></tr></tbody></table></div>
<h2>When you don’t need to worry</h2>
<p>Most agent projects carry less regulatory work than the headlines suggest. The effort stays small when:</p>
<ul>
<li><span><strong>Nobody in the EU uses the agent and its output isn’t used there.</strong> The AI Act does not reach it (Article 2), and EU GDPR usually doesn’t either.</span></li>
<li><span><strong>The agent is a support, booking or FAQ agent.</strong> It is typically not high-risk. The work is disclosure, logging and a DPA, not a conformity assessment.</span></li>
<li><span><strong>The agent processes no personal data.</strong> An agent that reconciles supplier invoice totals raises few GDPR questions.</span></li>
</ul>
<p>The cases that need care are Annex III uses, agents that decide things about people, and health data or call recordings at scale.</p>
<h2>What to ask your development partner</h2>
<p>Five questions show whether a partner has thought about this:</p>
<ol>
<li><span>Who is the provider and who is the deployer, and where does the contract say so?</span></li>
<li><span>Where does each component run, and which can be pinned to an EU region?</span></li>
<li><span>Which sub-processors see our data, and with what retention and training settings?</span></li>
<li><span>Will you sign our DPA, plus the SCCs or the UK IDTA or Addendum, and support our transfer assessment?</span></li>
<li><span>How is the AI disclosure built and tested, and how do we switch the agent off?</span></li>
</ol>
<p>Our answers: we can sign your DPA and the SCCs or UK transfer documents, deploy in an EU region on request, use endpoints that exclude training (zero retention where the provider offers it), and supply the system description and sub-processor list for your DPIA. For wider vendor questions, use our <a href="https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=eu-ai-act-gdpr-ai-agents">checklist for evaluating an AI agent development company</a>. To map your own agent against the table above, <a href="https://apptycoons.com/contact?interest=audit&amp;service=ai-agent-development&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=eu-ai-act-gdpr-ai-agents">book a free AI audit</a>.</p>
<p><em>This guide summarizes the law as of October 18, 2026 and is not legal advice. Check your situation with counsel or your data protection officer.</em></p><div><h2>Sources</h2><ol><li><a href="https://eur-lex.europa.eu/eli/reg/2026/1744/oj/eng" rel="noopener">Regulation (EU) 2026/1744 (Digital Omnibus on AI)</a><span>, EUR-Lex</span></li><li><a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-14" rel="noopener">Article 14: Human oversight</a><span>, AI Act Service Desk, European Commission</span></li><li><a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-50" rel="noopener">Article 50: Transparency obligations for providers and deployers of certain AI systems</a><span>, AI Act Service Desk, European Commission</span></li><li><a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/faq/how-are-ai-agents-addressed-within-ai-act-0" rel="noopener">How are AI agents addressed within the AI Act?</a><span>, AI Act Service Desk, European Commission</span></li><li><a href="https://digital-strategy.ec.europa.eu/en/faqs/transparency-obligations-under-article-50-ai-act" rel="noopener">Transparency obligations under Article 50 of the AI Act</a><span>, European Commission</span></li><li><a href="https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/new-standard-contractual-clauses-questions-and-answers-overview_en" rel="noopener">New Standard Contractual Clauses - Questions and Answers overview</a><span>, European Commission</span></li><li><a href="https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/international-transfers/appropriate-safeguards/what-are-standard-data-protection-clauses-the-uk-idta-and-the-addendum/" rel="noopener">What are standard data protection clauses (the UK IDTA and the Addendum)?</a><span>, ICO</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=eu-ai-act-gdpr-ai-agents">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Exigo alternatives: when custom MLM software wins</title><link>https://apptycoons.com/blog/exigo-alternatives</link><guid isPermaLink="true">https://apptycoons.com/blog/exigo-alternatives</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>Industries</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Exigo is a mature enterprise MLM platform. Here is how to tell when a platform fits, when a custom build wins, and what each path involves.</description><media:content url="https://apptycoons.com/blog/exigo-alternatives/opengraph-image?8e42ae2a4988bf40" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Stay on Exigo, or move to a similar platform such as ByDesign, if your compensation plan fits its standard binary, unilevel, matrix or hybrid rules and your edge is product and field leadership. Consider custom MLM software, or custom apps on top of a platform’s APIs, when the payouts or the member app are what you sell.</p>
<p>Exigo bought DirectScale in 2022, and directscale.com now redirects to exigo.com, yet many “Exigo alternatives” lists still put both names on the shortlist. Start with a cleaner question: are you choosing your first enterprise MLM platform, or are you on one and something has started to hurt? What follows works for both, and ends with a plain test for when a platform is the better answer and when custom MLM software wins.</p>
<p><strong>Disclosure:</strong> Apptycoons builds custom MLM and direct-selling software, so we have a stake in this question. We have no partnership with any vendor named here, and this post does not rank anyone. Vendor facts come from each vendor’s own website as of October 2026; the one third-party figure (Exigo pricing) is labeled as such. Where a platform is the better choice, we say so.</p>
<h2>What Exigo is, in its own words</h2>
<p>Exigo is an enterprise software platform for direct-selling and MLM companies. Its website describes a commissions and order-management core, a mobile-first distributor back office, analytics, an e-commerce and website builder, and AI features. Exigo says it has served the industry for over 25 years and powers more than 100 direct-selling brands.</p>
<p>The commission engine, Exigo Core, is the part most companies buy it for. Exigo says it supports binary, unilevel, matrix and hybrid plans, lets you model a plan in a sandbox before going live, and connects to other systems through APIs. It also says it has completed over 400 migrations from legacy platforms.</p>
<p>Two facts matter when you compare options:</p>
<ul>
<li><span><strong>Exigo and DirectScale are one company now.</strong> Exigo acquired DirectScale in October 2022, and directscale.com redirects to exigo.com. A shortlist with both names on it is a shortlist of one vendor.</span></li>
<li><span><strong>Exigo does not publish its pricing.</strong> Its site asks you to request a demo. The software directory Capterra lists a starting price of $5,000 per month, flat rate. Treat that as a directory listing, not a quote.</span></li>
</ul>
<p>None of this is a weakness. A mature platform with a large customer base, a tested commission engine and a long migration record is exactly what many direct-selling companies need.</p><h2>The kinds of Exigo alternative: platform, script, custom or hybrid</h2>
<p>Exigo alternatives fall into three groups, plus a hybrid of them, and they solve different problems. Comparing a platform with a custom build feature by feature misses the point, because the trade-off is about who controls the roadmap, not about checklists.</p>
<ul>
<li><span><strong>Another enterprise direct-selling platform.</strong> For example ByDesign, which describes itself as software for direct selling, MLM, party plan, affiliate and influencer marketing, with a commissions engine, back office, party module and shopping cart. You trade one vendor roadmap for another.</span></li>
<li><span><strong>A packaged or licensed MLM script.</strong> Lower entry cost and faster setup, usually aimed at smaller companies. Fit depends heavily on how close your plan is to the templates it ships with.</span></li>
<li><span><strong>Custom MLM software.</strong> A compensation engine, back office, distributor app and payouts built around your plan and owned by you. Highest control, and you carry the responsibility for it.</span></li>
</ul>
<p>The hybrid is the option most comparison pages ignore: keep a platform for the commission engine and order core, and build the parts members touch, such as the distributor app, the wallet and the onboarding funnel, as custom software on top of its APIs.</p>
<figure><div><img alt="The hybrid route: custom software owned by you, a distributor app, wallet and onboarding funnel, connects through the platform’s APIs to the platform’s commission engine and order core, which stay on the vendor roadmap" width="1280" height="960" src="https://apptycoons.com/assets/blog/exigo-alternatives/hybrid-route.webp"/></div><figcaption>Confirm in writing which data and actions the API exposes before you scope the build.</figcaption></figure>
<h2>Why some lists of Exigo alternatives mix different products</h2>
<p>Not everything sold as commission software can replace Exigo, because an MLM platform runs a distributor network and a sales-commission tool pays a sales team. If a shortlist mixes the two, sort it by what each product runs before you book demos.</p>
<div><p><em>What each kind of product runs (named examples checked on each vendor’s own site, October 2026; the script row is our general view)</em></p>
<table><thead><tr><th>Category</th><th>Example</th><th>Distributor genealogy and ranks</th><th>Enrollment, orders and shop</th><th>Commission calculation</th><th>Payouts</th></tr></thead><tbody><tr><th>Enterprise MLM platform</th><td>Exigo, ByDesign</td><td>Yes</td><td>Yes: back office, e-commerce, shopping cart</td><td>Yes, for network plans</td><td>Payout management (provider varies)</td></tr><tr><th>Packaged MLM script</th><td>Many smaller vendors</td><td>Yes, from templates</td><td>Usually basic</td><td>Template plans</td><td>Varies</td></tr><tr><th>Sales-commission software</th><td>Everstage, Salesforce Spiff</td><td>No</td><td>No</td><td>Yes, for sales reps and channel partners</td><td>Payout figures for finance and payroll</td></tr><tr><th>Custom or hybrid</th><td>Built around your plan</td><td>What you build</td><td>What you build, or the platform’s</td><td>Your rules, versioned</td><td>Any rail you integrate, including wallets and cards</td></tr></tbody></table></div>
<p>Sales-commission tools are good at what they do: Everstage describes itself as sales compensation and commission tracking software, and spiff.com now redirects to Salesforce’s incentive compensation management product. Neither describes a genealogy, distributor enrollment or replicated sites, which is most of what an MLM company buys Exigo for. Take them off an MLM shortlist, and keep them in mind only if you also pay an internal sales team.</p>
<div><p><em>Platform, custom or hybrid: which fits</em></p>
<table><thead><tr><th>Path</th><th>Best when</th><th>You trade away</th><th>Our recommendation</th></tr></thead><tbody><tr><th>Enterprise platform</th><td>Conventional plan, many countries, no internal product owner</td><td>Roadmap control; pricing set by the vendor</td><td>The default for most established companies</td></tr><tr><th>Packaged MLM script</th><td>Small company, simple plan, tight budget</td><td>Scale, support depth and fit for unusual plans</td><td>Fine to start; plan the exit early</td></tr><tr><th>Custom build</th><td>The plan, payouts or member app is the product</td><td>Upfront cost; you own maintenance</td><td>When two or more of the signs below apply</td></tr><tr><th>Hybrid</th><td>Platform engine works, member experience doesn’t</td><td>Two systems to integrate and keep in sync</td><td>Often the best first step away from a pure platform</td></tr></tbody></table></div>
<h2>When a platform like Exigo is the better choice</h2>
<p>A platform is the better choice when your compensation plan is conventional and your competitive edge is product, brand and field leadership rather than software. In that case, a proven engine and an existing back office get you to market faster and with less risk than any build.</p>
<p>Choose a platform when most of these are true:</p>
<ul>
<li><span>Your plan is a recognizable binary, unilevel or matrix structure, or a common hybrid the vendor already supports.</span></li>
<li><span>You do not have, and do not want, an internal product owner for the software.</span></li>
<li><span>You need multi-country tax, currency and shipping support from day one.</span></li>
<li><span>Your distributor experience can live inside the vendor’s back office and app.</span></li>
<li><span>Your payouts go to bank accounts or a payout provider the vendor already integrates.</span></li>
</ul>
<p>If that describes you, a platform is the sensible default. Spend your energy on product, training and compliance, and push the vendor for the features you need.</p>
<h2>When custom MLM software wins</h2>
<p>Custom MLM software wins when the thing holding you back is something Exigo’s own feature list does not cover. Be careful here: a complicated plan alone is not a reason to leave, because Exigo says its engine already handles hybrid plans and lets you test plan changes in a sandbox. Look instead for these signs, and price a custom or hybrid build if two or more apply:</p>
<ul>
<li><span><strong>Your roadmap keeps waiting on the vendor’s.</strong> Promotions, bonuses or plan rules you need this quarter are queued as paid customizations or feature requests.</span></li>
<li><span><strong>Earnings have to stay inside your product.</strong> Partners hold their balance, spend it by card or receive it in stablecoins, rather than receiving a periodic bank transfer.</span></li>
<li><span><strong>Members buy services, not just shipped products.</strong> Wireless, streaming or financial subscriptions need provisioning and one login across providers, which is product software, not a back office.</span></li>
<li><span><strong>Recruits judge you by the app.</strong> If the distributor app is your main sales tool, you need to control its design and release schedule.</span></li>
</ul>
<p>If none of these applies, the platform is doing its job. If they do, our <a href="https://apptycoons.com/blog/mlm-software-guide?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=exigo-alternatives">guide to custom MLM software</a> covers how to design the commission engine itself.</p>
<h2>Example: Freedom Pro, where three of the four signs applied</h2>
<p>Freedom Pro is a direct-selling company whose signs pointed to custom: three of the four above applied. It bundles everyday services, including wireless, streaming, wellness and finance, and pays a partner network on its team’s activity.</p>
<p>Mapped against the signs:</p>
<ul>
<li><span><strong>Earnings stay inside the product.</strong> We integrated Bridge so members hold dollars and stablecoins side by side and spend the balance by debit card. How those <a href="https://apptycoons.com/blog/stablecoin-wallets-fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=exigo-alternatives">stablecoin payouts for partners</a> work, from provider choice to ledger, has its own guide.</span></li>
<li><span><strong>Members buy services.</strong> Wireless, MyPro TV streaming, wellness, a trade club and other programs sit behind one member portal login.</span></li>
<li><span><strong>The app sells the opportunity.</strong> A guided sign-up funnel turns visitors into partners, and the partner back office covers registration, team genealogy, ranks and commission tracking.</span></li>
</ul>
<p>The full write-up is in the <a href="https://apptycoons.com/work/freedom-pro?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=exigo-alternatives">Freedom Pro case study</a>. The point is not that every MLM company needs stablecoins; it is that once money and services live inside your product, choosing between Exigo and a custom build becomes a product decision, not an IT purchase.</p>
<h2>Exigo pricing compared with the cost of custom MLM software</h2>
<p>Platform pricing is a recurring fee; custom software is mostly an upfront build plus running costs. Because Exigo does not publish its fees, the comparison only works once you have a written platform quote that answers these questions:</p>
<ul>
<li><span>What is the monthly fee, and does it grow with distributors, orders or transaction volume?</span></li>
<li><span>What do implementation, plan configuration and data migration cost, and are they one-off?</span></li>
<li><span>How are customizations and new plan rules priced after launch?</span></li>
<li><span>What does a full data export cost when you leave, and in what format?</span></li>
<li><span>Which payment, tax and shipping integrations are included, and which are extra?</span></li>
</ul>
<p>On the custom side, our published model is a $5,000 two-week discovery that maps your plan, payouts and data, then one fixed price for the build in our $25k–$120k range. The <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=exigo-alternatives">pricing page</a> has the details. Where an MLM build lands in that range depends mostly on how many payout and wallet integrations it needs, how many countries it serves and how much commission history it has to reproduce.</p>
<p>Compare on a three-year view. A platform fee is predictable but never ends and never becomes an asset. A custom build costs more in year one and gives you code you own, which you then have to maintain.</p>
<figure><figcaption>Platform fee or custom build, on a three-year view</figcaption><div><div><div><p><strong>Platform fee</strong> (Recurring)</p></div><ul><li>Predictable every month</li><li>Never ends</li><li>Never becomes an asset</li></ul></div><div><div><p><strong>Custom build</strong> (Mostly upfront)</p></div><ul><li>Costs more in year one</li><li>Code you own</li><li>Maintenance is yours</li></ul></div></div></figure>
<h2>Compliance: switching software does not change the rules</h2>
<p>Switching software does not change your compliance position, because regulators look at the compensation plan and how it works in practice.</p>
<blockquote><div>Watch out</div><p>No setting makes a plan compliant</p><div>The US Federal Trade Commission’s guidance on multi-level marketing states that there is no percentage-based test for whether an MLM is a pyramid scheme, so no vendor can sell you a setting that makes a plan compliant.</div></blockquote>
<p>What software does decide is how easily you can produce evidence. When you compare Exigo with any alternative, ask each to show you, from real data, retail sales to non-participants separated from distributor purchases, a reproducible commission statement for any past period, and the payout figures behind your income disclosure. The MLM software guide linked above lists the features behind each. Have counsel review the plan before anyone encodes it.</p>
<h2>How to move off Exigo without breaking commissions</h2>
<p>Leaving Exigo safely takes a parallel run: copy the data out, re-run past periods in the new system, and switch payouts only once both systems agree. Exigo says it has completed over 400 migrations onto its platform; moving off it is the direction to plan most carefully, so start with the contract.</p>
<p>A migration plan that works, whether the destination is custom software or another platform:</p>
<figure><figcaption>Moving off Exigo without breaking commissions</figcaption><ol><li><span><strong>Read the exit terms first</strong>: <span>Confirm your contract gives you a full export, its format, any fee, and how long you keep access after notice.</span></span></li><li><span><strong>Export everything early</strong>: <span>Distributors, genealogy, ranks, orders, commission history and wallet or credit balances.</span></span></li><li><span><strong>Turn past periods into tests</strong>: <span>Pick several real periods, including one with returns and one with a rank promotion, and record the expected payouts before the new engine exists.</span></span></li><li><span><strong>Run in parallel</strong>: <span>For at least one full commission cycle, and explain every difference before you trust the new numbers.</span></span></li><li><span><strong>Cut over at a period boundary</strong>: <span>With balances frozen, a rollback plan and the distributor app moved last.</span></span></li></ol></figure>
<p>Our <a href="https://apptycoons.com/industries/mlm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=exigo-alternatives">MLM software development</a> page describes how we run that parallel period.</p>
<h2>A quick decision checklist</h2>
<p>Answer these five questions before you book any demo, including ours:</p>
<ul>
<li><span>Could you describe your compensation plan using only the vendor’s standard plan types?</span></li>
<li><span>Do partners need to hold, spend or receive money inside your product?</span></li>
<li><span>Do you sell services that need provisioning, not just products that ship?</span></li>
<li><span>Will you change the plan more than once a year?</span></li>
<li><span>Do you have, or will you hire, someone to own the software roadmap?</span></li>
</ul>
<p>Mostly no: start with a platform. Mostly yes: price a custom or hybrid build. Mixed: the hybrid route, a platform engine plus custom member experience, is usually the right first step.</p>
<h2>When not to hire us</h2>
<p>Do not hire a custom developer, including us, if your plan is standard, you are pre-launch with no distributors yet, or nobody in the company can own the product after launch. A platform will serve you better. If you are past that point and want a second opinion on your own plan, <a href="https://apptycoons.com/contact?book=1&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=exigo-alternatives">book a 30-minute call</a> and bring your current Exigo contract and plan document.</p><div><h2>Sources</h2><ol><li><a href="https://www.exigo.com/" rel="noopener">Exigo: direct selling software platform</a><span>, Exigo</span></li><li><a href="https://www.exigo.com/products/exigo-core/" rel="noopener">Exigo Core: commissions and order management</a><span>, Exigo</span></li><li><a href="https://www.directsellingnews.com/2022/10/31/exigo-acquires-directscale-inc/" rel="noopener">Exigo Acquires DirectScale, Inc.</a><span>, Direct Selling News</span></li><li><a href="https://www.bydesign.com/" rel="noopener">ByDesign Technologies: direct selling software</a><span>, ByDesign</span></li><li><a href="https://www.capterra.com/p/181321/Exigo/" rel="noopener">Exigo pricing and reviews</a><span>, Capterra</span></li><li><a href="https://www.everstage.com/" rel="noopener">Sales Compensation &amp; Commission Tracking Software</a><span>, Everstage</span></li><li><a href="https://www.ftc.gov/business-guidance/resources/business-guidance-concerning-multi-level-marketing" rel="noopener">Business Guidance Concerning Multi-Level Marketing</a><span>, Federal Trade Commission</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/exigo-alternatives?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=exigo-alternatives">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Fintech app development cost in 2026: real scopes</title><link>https://apptycoons.com/blog/fintech-app-development-cost</link><guid isPermaLink="true">https://apptycoons.com/blog/fintech-app-development-cost</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>Fintech</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>What a fintech app costs depends less on screens and more on who holds the money. Two real scopes, the line items that drive price, and how we quote.</description><media:content url="https://apptycoons.com/blog/fintech-app-development-cost/opengraph-image?f87a61591dad0f4a" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> A fintech app costs far less when a licensed partner holds the money and you build the product around it. With a partner bank or stablecoin provider handling custody, the build covers apps, back office, integrations and compliance flows. At Apptycoons that starts with a $5,000 discovery sprint, then a fixed-price build of $25k to $120k.</p>
<p>Switch lets a club’s treasurer issue a Visa debit card in seconds. Freedom Pro pays a partner network into USD and stablecoin wallets its members spend by card. We built both, both are “fintech apps”, and their scopes have almost nothing in common. That is why a single price range for fintech app development tells you so little.</p>
<p>We don’t publish client budgets, so there are no invented price tags for those two products here. There is what was in scope, why each piece costs what it does, and the prices we publish for our own engagements.</p>
<h2>The short answer: what a fintech app costs in 2026</h2>
<p>A fintech app costs what its money movement and compliance cost, not what its screens cost. The single biggest decision is whether a licensed partner holds customer funds while you build the product around it, or whether you take on that regulated role yourself.</p>
<p>For the first path, which is how most new fintech products launch, our published pricing is:</p>
<ul>
<li><span><strong>Discovery Sprint: $5,000 fixed fee, 2 weeks.</strong> Scope, partner and compliance mapping, architecture, and a fixed price for the build. The fee is credited to the build.</span></li>
<li><span><strong>Fixed-Price Build: $25k–$120k per project, 6–16 weeks.</strong> Billed in milestones tied to demoed features, with 30 days of post-launch support.</span></li>
<li><span><strong>Dedicated Team: from $12k per month.</strong> For larger programs and the roadmap after launch.</span></li>
</ul>
<p>Published agency estimates run wider, from about $25,000 for an MVP to $900,000 or more for a complex neobank. The next section shows why those numbers disagree, and the rest of this post shows which line items separate a first product on a partner’s rails from a neobank.</p><h2>Why published fintech cost ranges disagree</h2>
<p>Published fintech cost ranges disagree because each agency prices a different product, team location and compliance scope. Four 2026 guides from development agencies, with the figures copied as published:</p>
<div><p><em>Third-party agency estimates for fintech apps (as published; checked October 18, 2026)</em></p>
<table><thead><tr><th>Source (date)</th><th>Smallest scope</th><th>Compliance-heavy or full scope</th><th>Largest scope</th><th>What it counts</th></tr></thead><tbody><tr><th>RaftLabs (updated Oct 12, 2026)</th><td>Consumer fintech MVP: $30,000–$70,000, 12–18 weeks</td><td>Payments and compliance-heavy build: $80,000–$160,000, 16–30 weeks</td><td>Full platform: $140,000–$240,000+, 24–52 weeks</td><td>Says compliance adds 25–35% on top of the feature build</td></tr><tr><th>CMARIX (updated Aug 13, 2026)</th><td>Fintech MVP: $25,000–$60,000, 3–4 months</td><td>Full digital banking platform: $250,000–$600,000+, 9–14 months</td><td>“$600,000+ for enterprise banking platforms”</td><td>Ranges by app type</td></tr><tr><th>Acquaint Softtech (Jul 16, 2026)</th><td>Validation MVP: $50K–90K with a US team, $40K–80K with an EU team</td><td>Production and compliance: $150K–300K (US), $120K–260K (EU)</td><td>Enterprise platform: $350K+ (US)</td><td>Ranges by team region</td></tr><tr><th>Interexy (updated Mar 31, 2026)</th><td>Fintech MVP: $50,000–$120,000, regulated projects from $80,000</td><td>Neobank MVP: $110,000–$160,000</td><td>Complex neobank: $350,000–$900,000+, 12–20 months</td><td>Neobank as its own category</td></tr></tbody></table></div>
<p>Read side by side, three things explain most of the spread. Team location: Acquaint’s own table moves its MVP figure by about $10,000 between US and EU teams. Compliance scope: a product that becomes a regulated entity carries audits, licensing work and its own controls, while one built on a licensed partner inherits most of them. And what “MVP” means: RaftLabs’ smallest scope is a budgeting, expense-tracking or rewards app, while Interexy prices a neobank MVP separately at $110,000–$160,000. These are vendor estimates, ours included; none of them, and none of ours, is a price for your scope until the money flows are drawn.</p>
<h2>The biggest cost decision: partner with a licensed provider or become one</h2>
<p>Partnering with a licensed provider is cheaper and faster because the hardest regulated pieces, holding deposits, issuing cards and custody of digital assets, are already built and supervised. You integrate them through APIs and build the experience, the business logic and the controls on top.</p>
<p>The trade-off is dependency. Your product inherits the partner’s program rules, fees and onboarding timeline, and your users’ protection depends on that structure.</p>
<blockquote><div>Watch out</div><p>Deposit insurance does not cover the app company</p><div>The FDIC is clear on one point founders often miss: deposit insurance does not protect against the insolvency or bankruptcy of a non-bank company. Your app, your disclosures and your record-keeping have to reflect how funds are held.</div></blockquote>
<p>Our guide to <a href="https://apptycoons.com/blog/stablecoin-wallets-fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">stablecoin wallet integration</a> covers this partner-first approach for digital assets in depth. Typical partner categories in a 2026 fintech build:</p>
<ul>
<li><span><strong>Partner bank / banking-as-a-service</strong> for accounts, deposits, ACH and wires.</span></li>
<li><span><strong>Card issuing program</strong> for virtual and physical debit cards, spend controls and wallet provisioning.</span></li>
<li><span><strong>Stablecoin and wallet infrastructure,</strong> such as Bridge, which offers one API to move, store and accept stablecoins, plus wallets and a card program.</span></li>
<li><span><strong>KYC and identity verification</strong> for onboarding.</span></li>
</ul>
<figure><div><img alt="Two layers joined by APIs. Top layer, your product (the build): apps, back office, integrations, compliance flows. Bottom layer, licensed partners: partner bank, card issuing, stablecoins and wallets, KYC and identity. Deposits, cards and custody of digital assets stay with the partner." width="1280" height="1272" src="https://apptycoons.com/assets/blog/fintech-app-development-cost/partner-stack.webp"/></div><figcaption>On the partner-first path, the build covers the product layer; the licensed partners hold the money.</figcaption></figure>
<p>Both case studies below use this model.</p>
<h2>Real scope 1: Switch, a shared banking app</h2>
<p>Switch is a banking app where clubs, teams and friends pool money, issue Visa debit cards in seconds and collect payments. It runs on iOS, Android and the web, with Thread Bank as its FDIC-insured partner bank. Here is what the scope contained, and why each part carries cost.</p>
<ul>
<li><span><strong>Shared accounts with roles and permissions.</strong> Treasurers, admins and members each see and do different things. Permission models are a cost driver because every money action has to check them, and every one needs tests.</span></li>
<li><span><strong>Instant virtual and physical Visa debit cards.</strong> Spend limits, pause and close controls, plus Apple Pay and Google Wallet. Card issuing adds program integration, card lifecycle states and wallet provisioning flows.</span></li>
<li><span><strong>MoneyPools.</strong> Shareable collection links that work on the web with no download, with live tracking of who has paid. This is a second product surface, a public web flow, alongside the apps.</span></li>
<li><span><strong>Org tools.</strong> Multiple admins, one-tap handover to the next leader, QuickBooks sync and installment plans. Accounting sync means mapping transactions to someone else’s data model and keeping it in step.</span></li>
<li><span><strong>Full banking features</strong> from the partner: checks, cash deposits, wires and a fee-free ATM network.</span></li>
</ul>
<p>What drove the effort was not the number of screens. It was the combination of three platforms, a permission model on every money action, card lifecycle handling and a public collection flow. The result: Switch is live on iOS, Android and web, has been adopted by 1,000+ organizations, and is rated 4.7 on the App Store. The details are in the <a href="https://apptycoons.com/work/switch?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">Switch case study</a>.</p>
<h2>Real scope 2: Freedom Pro, a partner platform with wallets and cards</h2>
<p>Freedom Pro is a direct-selling platform that bundles wireless, streaming, wellness and finance services and pays a partner network. Its fintech layer is a wallet: members hold USD and stablecoin balances and spend them by debit card. Its scope has little in common with Switch’s.</p>
<ul>
<li><span><strong>Partner back office.</strong> Registration, team genealogy, ranks and commission tracking. Commission logic is business-critical code that needs reproducible calculations.</span></li>
<li><span><strong>USD and stablecoin wallets via Bridge.</strong> Earnings land in wallets members can hold or spend. Wallet integrations need balance reconciliation and clear state for every transfer.</span></li>
<li><span><strong>Debit card issuing.</strong> Members spend their balance anywhere by card.</span></li>
<li><span><strong>A member portal and single sign-on</strong> across several service verticals, plus an onboarding funnel that converts visitors into partners.</span></li>
</ul>
<div><p><em>Two real fintech scopes side by side</em></p>
<table><thead><tr><th>Scope item</th><th>Switch</th><th>Freedom Pro</th></tr></thead><tbody><tr><th>Money layer</th><td>Thread Bank, FDIC-insured partner bank</td><td>Bridge-powered wallets (USD and stablecoins)</td></tr><tr><th>Cards</th><td>Instant virtual and physical Visa debit, Apple Pay, Google Wallet</td><td>Debit cards on the member balance</td></tr><tr><th>Core logic</th><td>Roles and permissions on shared accounts</td><td>Genealogy, ranks and commissions</td></tr><tr><th>Extra surfaces</th><td>MoneyPools public web collection links</td><td>Member portal, onboarding funnel, service catalog</td></tr><tr><th>Integrations</th><td>QuickBooks sync, ATM network</td><td>Wireless, streaming and KYC providers</td></tr><tr><th>Platforms</th><td>iOS, Android, web</td><td>Web and mobile</td></tr><tr><th>Where the cost sat</th><td>Permissions, card lifecycle, three platforms</td><td>Money layer and commission engine</td></tr></tbody></table></div>
<p>Here the cost sat in the money layer and the commission engine, not in banking features. Comparing the two scopes is the point: both are “fintech apps”, and a single price range would describe neither. See the <a href="https://apptycoons.com/work/freedom-pro?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">Freedom Pro case study</a> for the full build.</p>
<h2>Fintech app cost by product type</h2>
<p>What drives cost changes with the kind of fintech product, so compare scopes of the same type. We don’t publish per-type prices; this table lists the drivers and the real case that maps to each, where we have one.</p>
<div><p><em>Cost drivers by fintech product type</em></p>
<table><thead><tr><th>Product type</th><th>Who holds the money</th><th>Main cost drivers</th><th>Our real example</th></tr></thead><tbody><tr><th>Shared or consumer banking app</th><td>Partner bank</td><td>Roles and permissions, card lifecycle, multiple platforms, operations tools</td><td>Switch</td></tr><tr><th>Wallet or payouts on stablecoin rails</th><td>Stablecoin infrastructure provider</td><td>Transfer types, ledger and reconciliation, KYC states, cards</td><td>Freedom Pro</td></tr><tr><th>Bundled services platform</th><td>Several partners, one per service</td><td>Single sign-on, provisioning per provider, one account view</td><td>Freedom Pro</td></tr><tr><th>Lending</th><td>A lender or lending partner</td><td>Underwriting data, decision rules, repayment schedules, collections</td><td>None we can cite</td></tr><tr><th>Payments or merchant tools</th><td>Payment processor</td><td>Checkout flows, payouts, disputes, PCI scope</td><td>None we can cite</td></tr></tbody></table></div>
<p>A bundled platform is closer to <a href="https://apptycoons.com/industries/financial-aggregators?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">financial aggregator development</a> than to a banking app: most of its cost sits in connecting providers and keeping one view of the customer across them.</p>
<h2>How long a fintech app takes to build</h2>
<p>A focused first release on a partner’s rails typically takes 6–16 weeks of build after a two-week discovery, and partner approval often takes longer than the code. Banks, card programs and wallet providers each run their own onboarding, due diligence and program review. Start those conversations during discovery, so the build is not waiting for a sandbox key or a program sign-off in week eight.</p>
<h2>The line items that drive fintech app cost</h2>
<p>Every fintech quote is a sum of a few expensive line items and many cheap ones. These are the expensive ones, roughly in the order they move the price.</p>
<ul>
<li><span><strong>Onboarding and KYC.</strong> Identity checks, document capture, failure and retry paths, manual review queues, and what the user sees while they wait.</span></li>
<li><span><strong>Money movement.</strong> Each rail (cards, ACH, wires, stablecoins) adds states, webhooks, failure handling and reconciliation.</span></li>
<li><span><strong>Ledger and reconciliation.</strong> Your record of balances has to match the partner’s every day, and someone needs a screen that explains any difference.</span></li>
<li><span><strong>Permissions and limits.</strong> Roles, spend limits and approvals, enforced on the server for every action.</span></li>
<li><span><strong>Admin and compliance tooling.</strong> Search, account holds, case notes, exports and audit logs for your operations team. It is often under-scoped and always needed.</span></li>
<li><span><strong>Security and PCI scope.</strong> The PCI Data Security Standard sets the baseline for handling payment card data. Using an issuer’s tokenized cards and hosted components keeps raw card numbers out of your systems and shrinks what you have to secure.</span></li>
<li><span><strong>Platforms.</strong> iOS, Android and web multiply UI and testing work. Our guide to <a href="https://apptycoons.com/blog/native-vs-cross-platform?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">native vs cross-platform apps</a> covers that trade-off.</span></li>
<li><span><strong>Third-party integrations</strong> such as accounting sync, CRMs or data providers.</span></li>
</ul>
<p>Design, marketing pages and settings screens matter, but they rarely decide whether a project lands at the low or the high end of a range.</p>
<h2>How we turn a fintech scope into a fixed price</h2>
<p>We price fintech work in two steps so the build price is fixed before you commit to it. The Discovery Sprint produces the scope; the build is then quoted as one fixed price, paid in milestones.</p>
<figure><figcaption>From scope to a fixed price</figcaption><ol><li><span><strong>Discovery Sprint</strong> (Weeks 1–2): <span>Partners, money flows, permissions and first-release scope.</span></span></li><li><span><strong>Fixed build price</strong> (End of discovery): <span>One price for the agreed scope, with a milestone plan.</span></span></li><li><span><strong>Fixed-price build</strong> (6–16 weeks): <span>Billed in milestones tied to demoed features.</span></span></li><li><span><strong>Post-launch support</strong> (After launch): <span>Included with the build.</span></span></li></ol></figure>
<p>What the two-week discovery covers for a fintech product:</p>
<ul>
<li><span>Which partners hold funds, issue cards or verify identity, and what their APIs and program rules require.</span></li>
<li><span>The money flows, drawn end to end, including failures and reversals.</span></li>
<li><span>The permission model and the admin tools operations will need on day one.</span></li>
<li><span>What is in the first release and what waits, with each cut explained.</span></li>
<li><span>A fixed build price and milestone plan.</span></li>
</ul>
<p>The build is then quoted as one fixed price inside the band above, set by what discovery found. If the program is bigger than that, for example several products or markets at once, a dedicated team from $12k per month is usually the better fit. Our post on <a href="https://apptycoons.com/blog/fixed-price-software?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">how fixed-price software works</a> explains what is fixed and what is not.</p>
<h2>What a fintech app costs to run after launch</h2>
<p>Running costs are mostly usage-based provider fees, and they can matter more than the build over three years. Get every provider’s fee schedule in writing during discovery, and model them against your expected users and transactions.</p>
<p>Typical running costs:</p>
<ul>
<li><span><strong>Partner fees:</strong> banking program, card issuing and wallet provider fees, often per account, per card or per transaction.</span></li>
<li><span><strong>KYC fees:</strong> charged per verification, including the ones that fail.</span></li>
<li><span><strong>Hosting and monitoring:</strong> usually small next to provider fees for an early product.</span></li>
<li><span><strong>Security reviews and audits</strong> that partners or your own compliance team require.</span></li>
<li><span><strong>Ongoing development:</strong> partners change APIs and program rules, operating systems update, and regulations move.</span></li>
</ul>
<blockquote><div>Tip</div><p>Model fees before you sign</p><div>Get every provider’s fee schedule in writing during discovery and model it against your expected users and transactions. Usage-based fees can matter more than the build over three years.</div></blockquote>
<h2>How to cut fintech development cost without cutting compliance</h2>
<p>The cheapest fintech build is the one that ships a narrow first release on top of strong partners. Cut scope, not controls.</p>
<ul>
<li><span><strong>Launch one money flow first.</strong> For example accounts and cards, then collections, rather than every rail at once.</span></li>
<li><span><strong>Pick partners before you design screens.</strong> Their onboarding and program rules shape your flows.</span></li>
<li><span><strong>Keep raw card data out of your systems</strong> with tokenized cards and hosted components.</span></li>
<li><span><strong>Build the admin tools in the first release.</strong> Operations without tooling is the most expensive manual process in fintech.</span></li>
<li><span><strong>Use one codebase across platforms</strong> where performance and device features allow it.</span></li>
</ul>
<h2>Scope checklist before you ask for a fintech quote</h2>
<p>Bring answers to these questions to any vendor, including us, and the quote you get back will be far more accurate:</p>
<ul>
<li><span>Who holds customer funds, and is that partner already chosen?</span></li>
<li><span>Which money rails do you need at launch: cards, ACH, wires, stablecoins?</span></li>
<li><span>Which platforms at launch: iOS, Android, web?</span></li>
<li><span>Who are the user roles, and what can each one do with money?</span></li>
<li><span>What does your operations team need to see and do every day?</span></li>
<li><span>Which markets, and what has counsel said about licensing in each?</span></li>
</ul>
<p>If you have those answers, <a href="https://apptycoons.com/contact?interest=sprint&amp;service=mobile-app-development&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">request a Discovery Sprint</a> and we will turn them into a fixed quote. You can also see how we approach the sector on our <a href="https://apptycoons.com/industries/fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">fintech software development</a> page and our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">pricing page</a>.</p><div><h2>Sources</h2><ol><li><a href="https://www.fdic.gov/consumer-resource-center/2024-06/banking-third-party-apps" rel="noopener">Banking With Third-Party Apps</a><span>, FDIC</span></li><li><a href="https://www.pcisecuritystandards.org/standards/pci-dss/" rel="noopener">PCI Data Security Standard (PCI DSS)</a><span>, PCI Security Standards Council</span></li><li><a href="https://www.bridge.xyz/" rel="noopener">Bridge: stablecoin orchestration, issuance, wallets and cards</a><span>, Bridge</span></li><li><a href="https://interexy.com/fintech-app-development-cost-in-2026-full-breakdown" rel="noopener">Fintech App Development Cost in 2026: Full Breakdown</a><span>, Interexy</span></li><li><a href="https://www.raftlabs.com/blog/fintech-app-development-cost" rel="noopener">Fintech app development cost in 2026: real numbers</a><span>, RaftLabs</span></li><li><a href="https://www.cmarix.com/blog/fintech-app-development-cost/" rel="noopener">How Much Does Fintech App Development Cost in 2026?</a><span>, CMARIX</span></li><li><a href="https://acquaintsoft.com/blog/fintech-app-development-cost" rel="noopener">Fintech app development cost</a><span>, Acquaint Softtech</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/fintech-app-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fintech-app-development-cost">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>How to choose an AI agent development company: a checklist</title><link>https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company</link><guid isPermaLink="true">https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>AI strategy</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Twelve questions to ask any AI agent vendor, what a good answer sounds like, the contract clauses to insist on and the red flags. It ranks no one, and we answer the same questions ourselves.</description><media:content url="https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company/opengraph-image?64c21ff568c61f23" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Judge an AI agent development company on evidence, not demos: a production agent you can inspect, an evaluation set built from your real data, written limits on what the agent may do, human approval for irreversible actions, a fixed scope and price after discovery, and full ownership of code, prompts and evals. Ask every vendor the same questions.</p>
<p>Choosing an AI agent development company is hard because every vendor’s demo looks good. Demos run on clean data, happy paths and a presenter who knows what to type. Production agents run on messy data, edge cases and users who don’t. This checklist is built to tell those two apart.</p>
<p>It is vendor-neutral on purpose. It ranks no one, it recommends no list, and it works for any team you are talking to. <strong>Disclosure:</strong> Apptycoons builds AI agents, so at the end we answer the same twelve questions about ourselves, and you can hold us to them.</p>
<h2>Why demos are a poor way to choose an AI agent vendor</h2>
<p>A demo shows that a model can do a task once; a production agent has to do it thousands of times, safely, with a record of what it did. The questions that separate vendors are about evaluation, permissions, failure handling and ownership, and none of them show up in a demo.</p>
<p>It also helps to know what a good vendor will often recommend: less agent than you expected. Anthropic’s engineering guidance on building agents advises finding the simplest solution possible and adding complexity only when needed, and distinguishes fixed workflows from agents that direct their own steps. A vendor who proposes a simple workflow where it fits is usually a better sign than one who proposes a multi-agent system for everything.</p><h2>1. Can they show an agent running in production?</h2>
<p>The strongest evidence is a live product you can use, or a customer you can call. Ask what the agent does, how long it has been live, what broke after launch and how they found out.</p>
<p>Good answers are specific: a monitoring dashboard, a class of failure they didn’t expect, the fix and the test they added. Weak answers stay at the level of frameworks and model names.</p>
<h2>2. Do they start from your workflow, not their framework?</h2>
<p>A good vendor asks about the job before the stack: what triggers it, who does it now, what systems it touches, what a correct result looks like and what a mistake costs. If the first meeting is about frameworks and vector databases, the scoping hasn’t started.</p>
<p>Ask them to describe the first agent in one sentence, with one metric. If they can’t, the project will drift.</p>
<h2>3. Can they say what the agent will not do?</h2>
<p>Scope is defined as much by exclusions as by features. Ask the vendor to write down which actions the agent may take, which it may only propose, and which it must never touch.</p>
<p>This maps to a real security risk. The OWASP Top 10 for LLM Applications 2025 lists <strong>excessive agency</strong>, an AI system given more functionality, permissions or autonomy than it needs, as one of the ten main risks. The fix is design, not a disclaimer: least-privilege tool access, separate credentials, and approval steps for anything irreversible.</p>
<figure><div><img alt="Three lists for an agent’s scope: actions it may take (least-privilege tools, separate credentials), actions it may only propose (a person approves anything irreversible) and things it must never touch (no tool and no access at all), with every action logged with its inputs and outputs." width="1280" height="772" src="https://apptycoons.com/assets/blog/how-to-evaluate-ai-agent-development-company/boundaries.webp"/></div><figcaption>Ask the vendor to fill in all three lists before the build starts.</figcaption></figure>
<h2>4. How will they evaluate the agent before and after launch?</h2>
<p>An agent without an evaluation set cannot be improved safely. Ask how the vendor will build a test set from your real cases, what score counts as good enough to launch, and how every change to a prompt, model or tool is re-scored before it ships.</p>
<figure><figcaption>The evaluation loop to ask a vendor for</figcaption><ol><li><span><strong>Build a test set</strong> (Discovery): <span>From your real cases, not a curated demo set.</span></span></li><li><span><strong>Agree a pass mark</strong> (Before the build): <span>The score that counts as good enough to launch.</span></span></li><li><span><strong>Score the agent</strong> (Before launch): <span>Against the test set and the agreed pass mark.</span></span></li><li><span><strong>Re-score before it ships</strong> (Every change): <span>Each prompt, model or tool change, including model updates.</span></span></li></ol></figure>
<p>Good answers include real examples from your data, a pass mark agreed before the build, and regression testing when models change.</p>
<blockquote><div>Watch out</div><div>Any accuracy promise made before seeing your data is a guess.</div></blockquote>
<h2>5. How do they defend against prompt injection and data leaks?</h2>
<p>Ask directly how they handle prompt injection, the first risk on the OWASP list, and sensitive information disclosure, the second. Any agent that reads email, documents, web pages or user input can receive instructions hidden in that content.</p>
<p>Look for layered answers: untrusted content treated as data, tools scoped to the minimum, outputs validated before they trigger actions, sensitive data redacted, and model endpoints configured not to retain your data. Our <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">AI agent guardrails checklist</a> maps ten such controls to the OWASP risks, so you can ask which of them the vendor builds by default.</p>
<h2>6. Where does a human approve, and is every action logged?</h2>
<p>Every consequential action should have a clear owner. Ask where in the flow a person reviews or approves, how the agent escalates when it is unsure, and whether every action is logged with its inputs and outputs in a way an auditor could follow.</p>
<p>If your industry is regulated, ask how the logs map to your existing controls. Frameworks such as NIST’s AI Risk Management Framework, a voluntary framework for managing AI risk, give you a shared vocabulary for that conversation.</p>
<h2>7. Which models do they use, and can you switch?</h2>
<p>Models change every few months, so lock-in to one provider is a cost. Ask whether the architecture is model-agnostic, how a model swap would be tested, and what happens to cost and latency if you move.</p>
<p>A good answer is often “we pick per task”. Combined with an evaluation set, that lets you change models with evidence rather than hope.</p>
<h2>8. How will it connect to your systems?</h2>
<p>Most of the work in an agent project is integration, not prompting. Ask which of your systems the agent reads from and writes to, how authentication works, what happens when an API is down, and whether the agent can do anything a normal user with the same role could not.</p>
<h2>9. Who owns the code, prompts, evaluations and data?</h2>
<p>You should own everything that makes the agent work: code, prompts, evaluation sets, infrastructure configuration and documentation. Ask for it in the contract, and ask whether the agent can run in your own cloud account.</p>
<p>Then ask the uncomfortable question: what happens to the agent if the vendor disappears? If the answer involves their proprietary platform, you are renting, not buying.</p>
<h2>10. What is fixed in the price?</h2>
<p>Compare what is fixed, not the headline number. Ask whether there is a paid discovery phase, whether the build price is fixed after it, how payments map to delivered features, and what running costs (model usage, hosting, monitoring) you should expect.</p>
<p>Open-ended time-and-materials with no discovery is not wrong, but it moves all of the risk to you. Our <a href="https://apptycoons.com/blog/ai-agent-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">AI agent development cost guide</a> breaks down what a build and its running costs usually include, so you can check a quote line by line.</p>
<h2>11. What happens after launch?</h2>
<p>Agents need care after launch: models update, data drifts, and users find new edge cases. Ask what support is included, how monitoring works, who watches cost and success rate, and how improvements are scoped.</p>
<h2>12. Will they tell you when not to build an agent?</h2>
<p>The best signal of an honest vendor is a recommendation against their own interest. Ask: “What would you not automate here?” A good partner will point to steps where a rule, a form or a person is cheaper and safer than a model, or to an off-the-shelf agent that already does the job. Our <a href="https://apptycoons.com/blog/build-vs-buy-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">build vs buy framework for AI agents</a> is a useful way to test that advice.</p>
<h2>What to put in the contract</h2>
<p>The contract is where the answers to questions 9 to 11 become enforceable. A vendor who answered them well on a call should have no trouble writing them down. Before you sign, check that it covers:</p>
<ul>
<li><span><strong>IP assignment:</strong> the code, prompts, evaluation sets, tool definitions and any fine-tuning data are assigned to you, not licensed.</span></li>
<li><span><strong>Accounts:</strong> model provider, cloud and monitoring accounts are opened in your company’s name, with the vendor as a user you can remove.</span></li>
<li><span><strong>Data processing:</strong> what data the vendor and each model provider may store, where and for how long; for EU personal data that means a data processing agreement (see our guide to the <a href="https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">EU AI Act and GDPR for AI agents</a>).</span></li>
<li><span><strong>Acceptance:</strong> launch is accepted against the evaluation set and pass mark agreed in discovery, not against a demo.</span></li>
<li><span><strong>Handover:</strong> the repository, infrastructure as code, a runbook and the evaluation set are delivered at the end, whether or not you renew.</span></li>
<li><span><strong>Support:</strong> how long post-launch support lasts and what a change costs once it ends.</span></li>
</ul>
<p>None of these clauses is unusual in software contracts. What changes for AI agents is the list of assets: prompts and evaluation sets are as much part of the product as the code. This is a buyer’s checklist, not legal advice; have counsel review the final terms.</p>
<h2>How to check a certification claim</h2>
<p>Ask for the document behind the badge, then read its scope and date. A certification or report that covers a vendor’s office IT, or expired last year, says nothing about the team that will build your agent.</p>
<ul>
<li><span><strong>ISO/IEC 42001</strong> is the management-system standard for AI, published on December 18, 2023. A vendor claiming it should show a certificate naming the issuing body, the scope and the validity dates.</span></li>
<li><span><strong>SOC 2</strong> is not a certificate. The AICPA describes it as reporting on an examination of controls at a service organization, carried out by a CPA firm. Ask for the report itself under NDA, check which services it covers and the period it tested.</span></li>
<li><span><strong>“HIPAA certified”</strong> does not exist. For health data, ask whether the vendor will sign a business associate agreement and which of its subprocessors will too.</span></li>
</ul>
<p>A vendor without a certification can still be the right choice for a first agent if it answers the twelve questions above with evidence. What matters is that any claim on the website matches the document behind it.</p>
<h2>Red flags when choosing an AI agent developer</h2>
<p>These are the patterns that should end a conversation or at least slow it down:</p>
<ul>
<li><span>Accuracy or savings figures promised before anyone has seen your data.</span></li>
<li><span>No evaluation set, or “we test it manually”.</span></li>
<li><span>No answer on prompt injection or excessive agency.</span></li>
<li><span>Write access to production systems with no approval step.</span></li>
<li><span>Prompts, evals or orchestration kept as the vendor’s intellectual property.</span></li>
<li><span>A demo built on data that is not yours, presented as proof.</span></li>
<li><span>No discovery phase, and no clear statement of what is fixed.</span></li>
</ul>
<h2>A scoring sheet you can copy</h2>
<p>Score each vendor from 0 to 2 on each line (0 = no answer, 1 = general answer, 2 = specific evidence). Compare totals only after the calls, and weigh the first four lines double.</p>
<div><p><em>Vendor scoring sheet (0 to 2 per line)</em></p>
<table><thead><tr><th>Criterion</th><th>What a 2 looks like</th><th>Weight</th></tr></thead><tbody><tr><th>Production evidence</th><td>Live product or callable reference</td><td>Double</td></tr><tr><th>Evaluation</th><td>Test set from your data, agreed pass mark, regression testing</td><td>Double</td></tr><tr><th>Limits and approvals</th><td>Written action boundaries, human approval, audit log</td><td>Double</td></tr><tr><th>Security</th><td>Prompt injection, data leakage and data retention answered specifically</td><td>Double</td></tr><tr><th>Workflow fit</th><td>First agent in one sentence with one metric</td><td>Single</td></tr><tr><th>Integration</th><td>Systems, auth and failure handling explained</td><td>Single</td></tr><tr><th>Model flexibility</th><td>Model-agnostic, swap tested with evals</td><td>Single</td></tr><tr><th>Ownership</th><td>Code, prompts and evals yours, deployable in your cloud</td><td>Single</td></tr><tr><th>Pricing clarity</th><td>Discovery, fixed scope, milestone payments, run costs</td><td>Single</td></tr><tr><th>After launch</th><td>Monitoring, support and improvement process</td><td>Single</td></tr></tbody></table></div>
<h2>Our answers to the same questions</h2>
<p>Here is how Apptycoons answers the checklist. Hold us to it, and ask us for the evidence on a call.</p>
<ul>
<li><span><strong>Production evidence:</strong> <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">Innovative AI</a>, voice agents for US car dealerships that matched callers’ requests to a service on the vehicle’s menu, read it back and booked it in Xtime, and <a href="https://apptycoons.com/work/superdeal?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">Superdeal</a>, an AI agent that runs creator campaigns with the brand approving every step. Both are live products, and both case studies show how the work was built.</span></li>
<li><span><strong>Workflow first:</strong> our process starts by mapping one workflow and one metric.</span></li>
<li><span><strong>Limits and approvals:</strong> approval steps, escalation rules and full audit logs for every action. On Superdeal, every consequential step goes Draft, Review, Send.</span></li>
<li><span><strong>Evaluation:</strong> a test set built from your real cases, scored before launch and again after every prompt, model or tool change.</span></li>
<li><span><strong>Security:</strong> least-privilege permissions, PII redaction and zero-retention model endpoints, so your data does not train public models.</span></li>
<li><span><strong>Models:</strong> we choose per task from Anthropic, OpenAI, Google or open-source models and keep the model swappable.</span></li>
<li><span><strong>Ownership:</strong> the code lives in your repository from day one, the IP is yours, and the agent runs in your cloud or on endpoints you control.</span></li>
<li><span><strong>Pricing:</strong> published on our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">pricing page</a>. Discovery is two weeks at $5,000, credited to the build; builds are fixed at $25k to $120k; a Dedicated Team starts at $12k a month. Every build includes 30 days of post-launch support.</span></li>
<li><span><strong>When not to build:</strong> if a rule or a form solves the problem, we will say so. Our post on <a href="https://apptycoons.com/blog/ai-pilots-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">taking AI pilots to production</a> covers why so many stall.</span></li>
</ul>
<p>If that matches what you need, our <a href="https://apptycoons.com/services/ai-agent-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">AI agent development</a> page has the details, and a <a href="https://apptycoons.com/contact?interest=audit&amp;service=ai-agent-development&amp;utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">free AI audit</a> is the fastest way to test our answers against your workflow.</p><div><h2>Sources</h2><ol><li><a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener">Building effective agents</a><span>, Anthropic</span></li><li><a href="https://genai.owasp.org/llm-top-10/" rel="noopener">OWASP Top 10 for LLM Applications 2025</a><span>, OWASP GenAI Security Project</span></li><li><a href="https://www.nist.gov/itl/ai-risk-management-framework" rel="noopener">AI Risk Management Framework</a><span>, NIST</span></li><li><a href="https://webstore.iec.ch/publication/90574" rel="noopener">ISO/IEC 42001:2023 Information technology, Artificial intelligence, Management system</a><span>, IEC Webstore</span></li><li><a href="https://www.aicpa-cima.com/resources/landing/system-and-organization-controls-soc-suite-of-services" rel="noopener">System and Organization Controls: SOC suite of services</a><span>, AICPA &amp; CIMA</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=how-to-evaluate-ai-agent-development-company">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>RAG development cost in 2026: what drives the price</title><link>https://apptycoons.com/blog/rag-development-cost</link><guid isPermaLink="true">https://apptycoons.com/blog/rag-development-cost</guid><pubDate>Wed, 07 Oct 2026 12:00:00 GMT</pubDate><category>Buying software</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Why data preparation, permissions and evaluation, not the vector database, decide what a retrieval-augmented generation system costs to build and run.</description><media:content url="https://apptycoons.com/blog/rag-development-cost/opengraph-image?40509ca0a3f339b0" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Expect a fixed build price of $25k–$120k for a production RAG system, after a $5,000 discovery sprint that tests retrieval on your real documents. Running it costs less than most teams expect: about $80 to $210 a month in tokens and vector storage at 10,000 queries. Data cleanup, permissions and evaluation drive the build price.</p>
<p>An internal assistant that answers 10,000 questions a month from 20,000 pages of company documents costs about $80 to $210 a month in tokens and storage. Indexing all 20,000 pages costs about 20 cents. The vector database and the model, the parts most RAG (retrieval-augmented generation) cost guides price, are the cheap parts.</p>
<p>The money goes into getting your documents into a state where retrieval works, enforcing who can see what, and proving the answers are right. So we price a RAG system the way we scope one: by what the data and the permissions demand.</p>
<h2>How much does RAG development cost?</h2>
<p>A production RAG system costs $25k–$120k to build with us, as one fixed price. We set it at the end of a two-week Discovery Sprint ($5,000) that tests retrieval on a sample of your real documents, so the quote reflects the data you have rather than a clean demo set.</p>
<p>Running it is the small number. The worked example below lands at about $80 to $210 a month at 10,000 queries, before hosting and monitoring.</p><h2>What a RAG system is made of, and what each part costs</h2>
<p>A RAG system has six parts. The first and the last take the most engineering; the middle ones are mostly configuration and usage fees.</p>
<figure><div><img alt="RAG architecture in two paths. Indexing on every sync: sources such as a drive, wiki and tickets, then ingest and clean (OCR, tables, duplicates), then chunk and embed into a vector store holding passages, vectors and access metadata. Every question: search with vector plus keyword, a permissions filter to what the user may see, and an answer that cites its sources. Evaluation and monitoring reruns real questions after every change. Ingestion and evaluation are marked as high build effort." width="1280" height="1436" src="https://apptycoons.com/assets/blog/rag-development-cost/architecture.webp"/></div><figcaption>Ingestion and evaluation take the most engineering; the parts in between are mostly configuration.</figcaption></figure>
<div><p><em>RAG components: build effort and running cost</em></p>
<table><thead><tr><th>Component</th><th>What it does</th><th>Build effort</th><th>Running cost</th></tr></thead><tbody><tr><th>Ingestion and cleanup</th><td>Pulls documents from each source, runs OCR, splits tables and text, removes duplicates and stale versions</td><td>High</td><td>Low, mostly compute during syncs</td></tr><tr><th>Chunking and embeddings</th><td>Splits text into passages and turns each into a vector</td><td>Medium</td><td>Negligible: text-embedding-3-small lists at $0.02 per million tokens</td></tr><tr><th>Vector store and search</th><td>Stores vectors and finds the passages closest to a question, often with keyword search alongside</td><td>Low to medium</td><td>$0 extra in Postgres with pgvector; Pinecone Standard has a $50 monthly minimum</td></tr><tr><th>Permissions</th><td>Filters results to what each user is allowed to see</td><td>Medium to high</td><td>Negligible</td></tr><tr><th>Generation with citations</th><td>Sends the question and passages to a model and returns an answer with links to sources</td><td>Medium</td><td>The main usage cost: model tokens</td></tr><tr><th>Evaluation and monitoring</th><td>Tests answers against known questions and tracks quality after launch</td><td>High</td><td>Low, scheduled test runs</td></tr></tbody></table></div>
<h2>RAG cost by scope</h2>
<p>The scope of a RAG system is set by three questions: how many sources, how messy the documents are, and whether different users may see different things. Each answer pushes a project toward one row of the table below. The rows are our own placement of typical scopes inside the published $25k–$120k band, not quotes; the real number comes out of discovery once we have seen your documents.</p>
<div><p><em>Three RAG scopes and where each sits in our price band</em></p>
<table><thead><tr><th>Scope</th><th>Typical shape</th><th>Where it usually lands</th></tr></thead><tbody><tr><th>Single-source assistant</th><td>One document library, mostly digital text, everyone can see everything, answers with citations</td><td>Bottom of the band, from $25k</td></tr><tr><th>Multi-source with permissions</th><td>Several systems such as a drive, a wiki and a ticketing tool, scheduled syncs, per-user access rules</td><td>Mid-band</td></tr><tr><th>Document intelligence and agentic RAG</th><td>Scans and complex tables, structured extraction, agents that call tools, tenant isolation</td><td>Top of the band, up to $120k, or split into phases</td></tr></tbody></table></div>
<h2>What drives the price of a RAG system?</h2>
<p>Six things move a RAG quote. The vector database and the model are not on the list, because they barely change the build.</p>
<h3>Data preparation is the largest cost</h3>
<p>Retrieval can only find what ingestion made findable. Scanned PDFs need OCR and layout-aware extraction; tables need to be kept intact rather than split mid-row; duplicate and outdated versions need to be removed or they will be cited as if current. The messier the documents, the more of the build goes here, which is why discovery tests real files.</p>
<h3>Number of sources and how fresh they must be</h3>
<p>Each source needs a connector, authentication and a sync schedule. Nightly batch syncs are simple; near-real-time updates need change tracking and more careful re-indexing. Five sources cost meaningfully more than one, even if the total volume of text is the same.</p>
<h3>Permissions</h3>
<p>If everyone can see every document, permissions are free. If a salesperson must never see HR files, every passage needs access metadata copied from its source system, and every query must be filtered by it. Getting this wrong is a data leak, so it needs its own tests. Once the assistant can also call tools, the same filtering has to cover what it may do, not only what it may read; our checklist of <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-development-cost">guardrails for agentic RAG</a> covers those controls.</p>
<h3>Retrieval quality</h3>
<p>Basic vector search is quick to set up but misses exact terms such as product codes and names. Combining it with keyword search and adding a reranking step costs more to build and pays back in accuracy. In Anthropic’s published tests, contextual embeddings plus keyword search cut failed retrievals by 49%, and adding reranking took the cut to 67%. Preparing the contextualized chunks cost about $1.02 per million document tokens, once.</p>
<figure><figcaption>Cut in failed retrievals, Anthropic’s published tests</figcaption><ul><li><span>Contextual embeddings plus keyword search</span>: <span>49%</span></li><li><span>Plus a reranking step</span>: <span>67%</span></li></ul><p>Source: Anthropic, Introducing Contextual Retrieval. Your own documents will give different numbers.</p></figure>
<h3>Evaluation</h3>
<p>An evaluation set is a list of real questions with known correct answers and source passages. It is how you know a change made things better rather than worse. Building it takes time with your subject-matter experts, and it is the part most often skipped in pilots.</p>
<h3>Hosting and compliance</h3>
<p>Running in your own cloud, using zero-retention model endpoints or self-hosted models, keeping data in a region, and logging access for audits all add work. For regulated data, such as health or financial records, these are not optional.</p>
<h2>Worked example: monthly RAG run cost at 10,000 queries</h2>
<p>Here is the arithmetic for a mid-sized internal knowledge assistant, using list prices from each vendor’s pricing page.</p>
<p>Assumptions: 20,000 pages of documents at about 500 tokens a page, so 10 million tokens to index. 10,000 queries a month. Each query sends about 6,000 input tokens (the question, instructions and retrieved passages) and gets back about 400 output tokens.</p>
<div><p><em>RAG run cost, 10,000 queries a month (list prices)</em></p>
<table><thead><tr><th>Line item</th><th>Calculation</th><th>Cost</th></tr></thead><tbody><tr><th>Index the documents (one-time)</th><td>10M tokens × $0.02 per million (text-embedding-3-small)</td><td>about $0.20</td></tr><tr><th>Contextual chunks (optional, one-time)</th><td>10M tokens × about $1.02 per million (Anthropic’s figure)</td><td>about $10</td></tr><tr><th>Embed the queries</th><td>10,000 × about 50 tokens × $0.02 per million</td><td>about $0.01 a month</td></tr><tr><th>Answers on Claude Haiku 4.5</th><td>10,000 × (6,000 × $1 + 400 × $5) per million</td><td>about $80 a month</td></tr><tr><th>Answers on Claude Sonnet 5.5</th><td>10,000 × (6,000 × $2 + 400 × $10) per million</td><td>about $160 a month</td></tr><tr><th>Vector store</th><td>pgvector in existing Postgres, or Pinecone Standard minimum</td><td>$0 or $50 a month</td></tr></tbody></table></div>
<p>So tokens and storage come to about $80 to $210 a month. At this size the index itself is small: 25,000 passages of 1,536-dimension vectors take roughly 0.15 GB. Add the hosting for your application and sync jobs, logging and scheduled evaluation runs, which depend on your cloud and retention rules.</p>
<h3>The same system at 1,000 and 100,000 queries a month</h3>
<p>Run cost scales with queries, not with the build. The per-query figures stay the same: about $0.008 on Claude Haiku 4.5 and $0.016 on Claude Sonnet 5.5 for 6,000 tokens in and 400 out.</p>
<div><p><em>RAG run cost by query volume (list prices checked Oct 18, 2026)</em></p>
<table><thead><tr><th>Queries a month</th><th>Haiku 4.5 tokens</th><th>Sonnet 5.5 tokens</th><th>Query embeddings</th><th>Vector store</th></tr></thead><tbody><tr><th>1,000</th><td>about $8</td><td>about $16</td><td>under $0.01</td><td>$0 (pgvector) or $50 minimum (Pinecone Standard)</td></tr><tr><th>10,000</th><td>about $80</td><td>about $160</td><td>about $0.01</td><td>$0 or $50 minimum</td></tr><tr><th>100,000</th><td>about $800</td><td>about $1,600</td><td>about $0.10</td><td>Re-check the tier: Pinecone bills read units above its minimum</td></tr></tbody></table></div>
<p>At 1,000 queries the vector store minimum can cost more than the model, which is an argument for pgvector in a database you already run. At 100,000 the model is the bill, and routing simple questions to the smaller model is worth more than any storage choice. The corpus size barely moves either column: indexing 10 million tokens costs about 20 cents once.</p>
<h2>Score your documents before you get a quote</h2>
<p>You can estimate where your project lands before talking to any vendor by scoring your own documents against seven questions. Each “yes” in the middle column pushes the build price up; several together move a project from the bottom of a price band to the top.</p>
<div><p><em>Document checklist: what pushes a RAG build price up</em></p>
<table><thead><tr><th>Question</th><th>Pushes cost up when…</th><th>Why</th></tr></thead><tbody><tr><th>What file types are they?</th><td>Scans, photos or faxes rather than digital text</td><td>OCR and layout extraction have to be built and tested per document type</td></tr><tr><th>Do answers live in tables or forms?</th><td>Key figures sit in tables, rent rolls or forms</td><td>Tables split mid-row return wrong numbers; they need structure-aware chunking</td></tr><tr><th>How many systems hold them?</th><td>More than one, such as a drive, a wiki and a ticketing tool</td><td>Each source needs a connector, authentication and its own sync</td></tr><tr><th>How fresh must answers be?</th><td>Changes must appear within minutes, not overnight</td><td>Near-real-time sync needs change tracking and partial re-indexing</td></tr><tr><th>Who may see what?</th><td>Access differs by user, team or client</td><td>Permissions must be copied per passage and tested like a security feature</td></tr><tr><th>Which languages?</th><td>More than one, or mixed within a document</td><td>Retrieval and evaluation have to be checked in each language</td></tr><tr><th>Do you have test questions?</th><td>Nobody has written down real questions with known answers</td><td>The evaluation set has to be built with your experts during the project</td></tr></tbody></table></div>
<p>Seven “no” answers describe the single-source assistant at the bottom of the scope table. Four or more “yes” answers usually mean the top of the band, or a first phase that leaves the hardest sources for later.</p>
<h2>What a RAG system costs after launch</h2>
<p>After launch, the model bill is the predictable part; the work is keeping answers right as documents, models and people change. Four recurring jobs make up most of it:</p>
<ul>
<li><span>Re-indexing changed sources, and fixing connectors when a source system changes its API or export format.</span></li>
<li><span>Rerunning the evaluation set after every prompt, chunking or model change, and adding questions users asked that it missed.</span></li>
<li><span>Migrating to a new model when the current one is retired or a cheaper one passes your tests.</span></li>
<li><span>Auditing permissions when teams, roles or clients change, so a passage never outlives its access rule.</span></li>
</ul>
<p>Our builds include a post-launch support window; after that, the work runs as small fixed-price changes or a Dedicated Team, both on the <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-development-cost">pricing page</a>. Whoever does it, budget engineering time for these four jobs, not only tokens.</p>
<h2>How long does a RAG project take?</h2>
<p>A typical RAG project takes two weeks of discovery and then 6–16 weeks to build, depending on scope. A single-source assistant with clean digital documents is at the short end. Several sources, per-user permissions and scanned documents push it to the long end, or into phases.</p>
<p>The timeline follows the same drivers as the price:</p>
<figure><figcaption>A typical RAG project, phase by phase</figcaption><ol><li><span><strong>Discovery</strong> (Weeks 1–2): <span>On a sample of real documents, with retrieval tested against real questions and a fixed quote at the end.</span></span></li><li><span><strong>Connectors and ingestion</strong> (Early sprints): <span>Ingestion and cleanup for each source, then chunking, embeddings and search.</span></span></li><li><span><strong>Permissions and answers</strong> (Middle sprints): <span>Permissions, citations, the answer interface and integration with where your team works.</span></span></li><li><span><strong>Evaluation and launch</strong> (Final sprints): <span>The evaluation set run end to end, security review, load testing and launch.</span></span></li></ol></figure>
<p>What slows projects down is rarely engineering. It is waiting for access to source systems, agreeing who may see what, and finding subject-matter experts to write and check evaluation questions. Lining those up before the build starts is the single most effective way to keep the schedule.</p>
<h2>RAG vs long context vs fine-tuning: the cost angle</h2>
<p>RAG is not the only way to put your knowledge in front of a model, and the alternatives have different cost curves.</p>
<div><p><em>Three ways to use your documents with a model</em></p>
<table><thead><tr><th></th><th>RAG</th><th>Long context</th><th>Fine-tuning</th></tr></thead><tbody><tr><th>Cost per query</th><td>Low: only relevant passages are sent</td><td>High: the whole set is sent every time</td><td>Low at inference, plus training runs</td></tr><tr><th>Updating knowledge</th><td>Re-index changed documents</td><td>Edit the documents</td><td>Retrain</td></tr><tr><th>Citations and permissions</th><td>Yes, per passage and per user</td><td>Hard to enforce per user</td><td>No</td></tr><tr><th>Best for</th><td>Large or changing knowledge</td><td>Small, stable sets</td><td>Consistent behavior or format</td></tr></tbody></table></div>
<p>Long context has become a real option: Anthropic includes a one-million-token context window at standard pricing on Claude 4.6 and later models, and its retrieval research puts the cut-off for skipping RAG at roughly 500 pages (about 200,000 tokens). Past that size, every query pays for every token. Filling that window on Claude Sonnet 5.5 costs about $2 per query at list price before caching, against roughly $0.016 for the RAG query in our example, a difference of more than 100 times. For a deeper comparison of the architectures, see <a href="https://apptycoons.com/blog/rag-vs-fine-tuning?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-development-cost">RAG vs fine-tuning</a>.</p>
<figure><figcaption>Model cost per RAG query, list prices before caching</figcaption><ul><li><span>RAG query, Claude Haiku 4.5</span>: <span>about $0.008</span></li><li><span>RAG query, Claude Sonnet 5.5</span>: <span>about $0.016</span></li></ul><p>6,000 tokens in and 400 out, as in the worked example above. Filling the full one-million-token context on Sonnet 5.5 costs about $2 per query, 125 times the Sonnet row, too long to draw on this scale.</p></figure>
<h2>When an off-the-shelf tool is enough</h2>
<p>You do not always need a custom RAG build. If your documents live in one workspace tool and its built-in AI search answers your team’s questions well enough, use it. The same applies if a document-chat product already connects to your sources, respects their permissions and keeps your data where your policies require.</p>
<p>Custom RAG is worth paying for when answers must come from several systems at once, when per-user permissions are strict, when documents are scans or complex tables, when the assistant must act through tools rather than only answer, or when it is part of a product you sell. If none of those apply, start with what you have. We set out a fuller decision method in <a href="https://apptycoons.com/blog/build-vs-buy-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-development-cost">build vs buy AI agents</a>.</p>
<h2>A real example: document intelligence in Relm</h2>
<p><a href="https://apptycoons.com/work/relm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-development-cost">Relm</a>, a commercial real estate platform we built, shows what the top end of the scope table involves. Its document intelligence runs OCR, extraction and vector search across rent rolls, offering memoranda, P&amp;Ls and leases. Every finding is traceable to a source record, and tenant isolation covers the database, the vector store and the AI context, so one firm’s documents can never surface in another firm’s answers. The work that made it reliable was ingestion, citations and isolation, exactly the drivers above, not the choice of vector database.</p>
<h2>How to keep RAG development cost down</h2>
<p>The cheapest RAG project is a narrow one that grows on evidence.</p>
<ul>
<li><span>Start with one source and one group of users, and add sources once answers are trusted.</span></li>
<li><span>Prototype on your messiest real documents in discovery, not a clean sample.</span></li>
<li><span>Write fifty real questions with known answers before the build starts; they become your evaluation set.</span></li>
<li><span>Use the database you already run for vectors unless scale says otherwise.</span></li>
<li><span>Route simple questions to a smaller model and cache stable instructions.</span></li>
<li><span>Keep regulated documents out of version one if the use case allows it.</span></li>
</ul>
<p>To get a fixed price on your own documents, start with a free AI audit from our <a href="https://apptycoons.com/services/enterprise-llm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-development-cost">enterprise LLM and RAG</a> team. Discovery then ends with retrieval tested on your data and a quote that does not move unless the scope does.</p><div><h2>Sources</h2><ol><li><a href="https://arxiv.org/abs/2005.11401" rel="noopener">Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks</a><span>, arXiv (Lewis et al.)</span></li><li><a href="https://www.anthropic.com/news/contextual-retrieval" rel="noopener">Introducing Contextual Retrieval</a><span>, Anthropic</span></li><li><a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener">Claude API pricing</a><span>, Anthropic</span></li><li><a href="https://developers.openai.com/api/docs/pricing" rel="noopener">OpenAI API pricing</a><span>, OpenAI</span></li><li><a href="https://www.pinecone.io/pricing/" rel="noopener">Pinecone pricing</a><span>, Pinecone</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/rag-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-development-cost">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>MLM software cost in 2026: what to build, what to buy and what breaks at scale</title><link>https://apptycoons.com/blog/mlm-software-guide</link><guid isPermaLink="true">https://apptycoons.com/blog/mlm-software-guide</guid><pubDate>Fri, 02 Oct 2026 12:00:00 GMT</pubDate><category>Industries</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Compensation plans, genealogy trees and payouts look simple until you have 100,000 distributors. Here is what matters.</description><media:content url="https://apptycoons.com/blog/mlm-software-guide/opengraph-image?a486bec0836e869b" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Buy an MLM platform when your compensation plan is conventional and speed to launch matters most. Build custom MLM software when the plan, the payouts or the member experience are your edge: hybrid plans, near real-time commissions, built-in wallets and cards, or bundled services. Many companies combine both, keeping a platform engine and building custom apps and payouts.</p>
<p>Most direct-selling companies start on an off-the-shelf MLM platform. It works until the compensation plan changes, the distributor count passes a few thousand, or the mobile experience starts costing you recruits.</p>
<p>What breaks after that is predictable, and most of it can be designed out before it costs you a payout run.</p>
<h2>Where off-the-shelf platforms struggle</h2>
<ul>
<li><span>Hybrid compensation plans that mix binary, unilevel and matrix rules.</span></li>
<li><span>Commission runs that take hours and need manual fixes.</span></li>
<li><span>Dated distributor apps that new recruits abandon.</span></li>
<li><span>Payouts that can’t reach modern wallets or cards.</span></li>
</ul>
<p>None of these is a flaw in the platforms themselves. They are built to run the plans most companies use, and they do that well. The friction starts when your plan, your payout model or your member experience is the thing that sets you apart, and every change has to wait for a vendor roadmap or a paid customization.</p><h2>Build, buy or combine?</h2>
<p>Buy when your compensation plan is conventional and launching quickly matters more than differentiation. Established platforms come with commission engines that are already in use at other companies, plus replicated sites, e-commerce and reporting. They are not cheap: the software directory Capterra lists Exigo, one of the best-known enterprise platforms, from $5,000 per month, flat rate. But they are proven.</p>
<p>Build when the software is part of the product:</p>
<ul>
<li><span>Your plan mixes structures in ways the platform can only approximate.</span></li>
<li><span>Distributors need near real-time earnings, not a nightly or weekly run.</span></li>
<li><span>Earnings should land in a wallet or on a card, not only a bank transfer.</span></li>
<li><span>You sell bundled services, such as subscriptions or financial products, that the platform does not model.</span></li>
</ul>
<figure><figcaption>Buy a platform or build custom MLM software</figcaption><div><div><div><p><strong>Buy a platform</strong> (Conventional plan)</p></div><ul><li>Commission engine already in use at other companies</li><li>Replicated sites, e-commerce and reporting included</li><li>Changes wait for a vendor roadmap or paid customization</li></ul></div><div><div><p><strong>Build custom</strong> (Software is the product)</p></div><ul><li>Hybrid plans a platform can only approximate</li><li>Near real-time earnings, not a nightly or weekly run</li><li>Earnings land in a wallet or on a card</li></ul></div></div></figure>
<p>Combine the two when only part of the stack is the differentiator. A common pattern keeps a platform for orders and the commission run, and builds custom distributor apps, onboarding and payouts around it. We compare the main options, and how to migrate between them, in <a href="https://apptycoons.com/blog/exigo-alternatives?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">Exigo alternatives: when custom MLM software wins</a>.</p>
<h2>What MLM software costs in 2026</h2>
<p>MLM software costs either a recurring platform fee or a one-off build plus running costs, and the two are hard to compare until your plan is written down. On the platform side, the software directory Capterra lists Exigo from $5,000 per month, flat rate; most enterprise vendors don’t publish prices at all. Packaged MLM scripts are cheaper to start with, and what they buy you is a set of templates: the further your plan sits from them, the more of the saving goes on customization.</p>
<p>On the custom side, our model is a two-week Discovery Sprint ($5,000, credited to the build) that turns your compensation plan into written rules, then one fixed price inside our $25k–$120k range, delivered in 6–16 weeks. Where an MLM build lands in that band depends on four things. The placements below are our judgment, not client budgets:</p>
<div><p><em>What moves an MLM build within our fixed-price band</em></p>
<table><thead><tr><th>Driver</th><th>Toward the lower end</th><th>Toward the upper end</th></tr></thead><tbody><tr><th>Compensation plan</th><td>One structure (binary or unilevel) with a few ranks</td><td>Hybrid plan with compression, matching bonuses, caps and qualification windows</td></tr><tr><th>Payouts</th><td>Bank transfer through one payout provider</td><td>In-app wallets, debit cards or stablecoins, several currencies</td></tr><tr><th>Apps</th><td>Web back office and enrollment funnel</td><td>Web back office plus iOS and Android distributor apps</td></tr><tr><th>Migration</th><td>New company, no history</td><td>Years of genealogy and commission history, re-run in a parallel cycle</td></tr></tbody></table></div>
<p>Add the time for at least one commission cycle run in parallel with your old system before payouts switch. That cycle sets the go-live date more often than the code does. For a three-year view of platform fees against a custom build, use the exit and pricing questions in our Exigo guide above.</p>
<h2>Compensation plan types your engine must handle</h2>
<p>The compensation plan decides how much of the engine is hard. These are the structures most plans combine:</p>
<ul>
<li><span>Binary: each distributor has two legs, and commissions usually pay on the volume of the weaker leg, with carry-forward rules for the stronger one.</span></li>
<li><span>Unilevel: unlimited frontline recruits, with commissions paid on a set number of levels below each distributor.</span></li>
<li><span>Matrix: a fixed width and depth, so new recruits beyond the width spill over to lower levels.</span></li>
<li><span>Stair-step and breakaway: ranks raise the commission percentage, and leaders who reach a rank break away into their own group with an override.</span></li>
<li><span>Hybrid: any mix of the above, plus fast-start, matching and leadership bonuses.</span></li>
</ul>
<figure><div><img alt="Three plan structures: binary, where each distributor has two legs and commissions pay on the weaker leg; unilevel, with unlimited frontline recruits paid a set number of levels deep; matrix, with a fixed width so extra recruits spill over to a lower level" width="1280" height="850" src="https://apptycoons.com/assets/blog/mlm-software-guide/plan-structures.webp"/></div><figcaption>A hybrid plan mixes these structures and adds bonuses on top.</figcaption></figure>
<p>Around the structure sit the rules that cause most commission errors: rank qualification windows, compression when inactive distributors are skipped, caps, breakage, and how returns and refunds claw back commissions already paid.</p>
<h2>A worked binary commission example</h2>
<p>A binary payout is simple arithmetic repeated across thousands of people, which is why small rule ambiguities turn into large payout errors. Here is one distributor over two weeks under a common binary rule: 10% of the weaker leg’s volume, the stronger leg’s unused volume carried forward, and a weekly cap of 100. These are illustrative numbers, not a client plan.</p>
<div><p><em>Binary commission over two periods (illustrative)</em></p>
<table><thead><tr><th>Period</th><th>Left leg (new + carried)</th><th>Right leg (new + carried)</th><th>Weaker leg</th><th>Commission at 10%</th><th>Carried forward</th></tr></thead><tbody><tr><th>Week 1</th><td>1,200 + 0</td><td>700 + 0</td><td>700</td><td>70</td><td>500 left</td></tr><tr><th>Week 2</th><td>300 + 500</td><td>1,400 + 0</td><td>800</td><td>80</td><td>600 right</td></tr></tbody></table></div>
<p>The table looks settled until the questions start, and each one is a rule your engine has to store:</p>
<ul>
<li><span><strong>Refunds.</strong> If a 200-point order in the left leg is refunded in week 2, is week 1 recalculated and the difference clawed back, or is the refund deducted from week 2’s left leg?</span></li>
<li><span><strong>The cap.</strong> If week 2 had paid 130, does the 30 above the cap disappear, or carry forward as volume?</span></li>
<li><span><strong>Flush.</strong> Many plans reset carried volume when a distributor misses a qualification, so the 600 points on the right may be worth nothing next week.</span></li>
<li><span><strong>Compression.</strong> In the unilevel part of a hybrid plan, if a distributor two levels down is inactive, the next active distributor below moves up a level for that period, which changes who earns on whose volume.</span></li>
</ul>
<p>Write the answer to each question into the plan document before anyone builds, and keep a test period like this one for every rule. When the engine and the document disagree, the document wins, and the test tells you which code to change.</p>
<h2>What a custom platform should include</h2>
<ul>
<li><span>A rules-driven compensation engine you can change without a rewrite.</span></li>
<li><span>Genealogy, ranks and bonuses calculated in near real time.</span></li>
<li><span>E-wallets and debit cards so earnings are spendable immediately.</span></li>
<li><span>A distributor app that makes enrollment and team tracking effortless.</span></li>
</ul>
<p>Add an admin back office with commission previews, adjustments and an audit trail, an enrollment funnel that works on a phone, and reporting that finance and compliance can both use.</p>
<h2>How to design a commission engine that doesn’t break at scale</h2>
<p>Commission engines rarely fail on day one. They fail when the plan changes, a period has to be re-run, or the genealogy grows deep. Five design choices prevent most of that:</p>
<ul>
<li><span>Store the plan as versioned rules, not code, so each period is calculated with the rules that applied at the time.</span></li>
<li><span>Make every run deterministic and repeatable: the same inputs always produce the same payout, so a corrected period can be re-run safely.</span></li>
<li><span>Record every commission as a ledger entry with its source order and rule, so any distributor’s statement can be explained line by line. Affiliate programs need the same ledger, which is why the trade-offs in <a href="https://apptycoons.com/blog/build-vs-buy-affiliate-tracking?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">affiliate commission tracking: build vs buy</a> carry over almost unchanged.</span></li>
<li><span>Treat returns and clawbacks as first-class events, not manual adjustments.</span></li>
<li><span>Preview runs before they pay out, and test with synthetic genealogies far larger than today’s network.</span></li>
</ul>
<figure><figcaption>One commission run, built to be re-run safely</figcaption><ol><li><span><strong>Versioned rules</strong>: <span>The plan as it applied that period</span></span></li><li><span><strong>Deterministic run</strong>: <span>Same inputs, same payout</span></span></li><li><span><strong>Ledger entries</strong>: <span>Source order and rule on every line</span></span></li><li><span><strong>Preview</strong>: <span>Checked before anything pays out</span></span></li><li><span><strong>Payout</strong>: <span>Statements explained line by line</span></span></li></ol></figure>
<h2>What breaks at 100,000 distributors</h2>
<p>Scale problems in MLM software are predictable, which means they can be designed out. The usual pressure points are:</p>
<ul>
<li><span>Deep genealogy queries: calculating volume across many levels gets slow if every query walks the tree from scratch, so store precomputed paths or closures and update them as the network changes.</span></li>
<li><span>Period close: thousands of distributors check their earnings at the same moment the commission run finishes, so statements should be generated ahead and served from a cache.</span></li>
<li><span>Event spikes: enrollment surges during launches and conventions, so the sign-up flow and payment provider must handle bursts without double-charging or losing a placement.</span></li>
<li><span>Mobile performance: team views with thousands of members need pagination and search, not one long list.</span></li>
<li><span>Support load: when an earning looks wrong, support staff need the same line-by-line explanation the ledger gives finance.</span></li>
</ul>
<p>Test each of these with synthetic data well above your current size before a launch event, not after.</p>
<h2>Compliance is part of the software</h2>
<p>Compliance in direct selling is mostly about evidence, and the evidence lives in your software. The FTC’s business guidance on multi-level marketing focuses on whether rewards come from sales to real customers rather than recruitment, looks at how the company operates in practice rather than what its policies say, and requires earnings claims to be truthful, substantiated and typical of what participants earn.</p>
<p>That translates into concrete features: tracking retail customers separately from distributor purchases, reporting personal consumption, producing earnings data for income disclosures from real payouts, and keeping marketing claims in the app consistent with that data. This is not legal advice, and your counsel should define the rules; the point is to build the platform so it can prove them.</p>
<blockquote>“Your compensation plan is your product. The software should bend to it — not the other way around.”</blockquote>
<h2>Payouts: wallets, cards and bundled services</h2>
<p>For Freedom Pro, we combined a partner back office with Bridge-powered USD and stablecoin wallets and debit cards, so partners earn and spend in one place.</p>
<p>Its wireless, streaming, wellness and finance services sit behind one member account, and partners enroll customers, track their team and get paid from a single dashboard. The full build is in the <a href="https://apptycoons.com/work/freedom-pro?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">Freedom Pro case study</a>, and the wallet side is covered in <a href="https://apptycoons.com/blog/stablecoin-wallets-fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">how stablecoin wallets fit into an app</a>. Whatever the rail, distributors judge payouts by their statements: a schedule they can predict and a line for every amount, the same <a href="https://apptycoons.com/blog/creator-platform-revenue-share?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">payout schedules and statements</a> problem creator platforms face.</p>
<h2>Moving off a platform without breaking commissions</h2>
<p>If you are migrating, run both systems in parallel. Move distributors, genealogy and commission history first, recalculate past periods in the new engine, and switch payouts only when both produce the same numbers. Distributors forgive a new app; they do not forgive a wrong commission. The Exigo guide linked above has a step-by-step version of this plan, from exit terms to cut-over.</p>
<figure><figcaption>Moving off a platform in four steps</figcaption><ol><li><span><strong>Move the data</strong>: <span>Distributors, genealogy and commission history.</span></span></li><li><span><strong>Recalculate past periods</strong>: <span>Re-run them in the new engine.</span></span></li><li><span><strong>Run both systems in parallel</strong>: <span>For at least one full commission cycle.</span></span></li><li><span><strong>Switch payouts</strong>: <span>Only when both systems produce the same numbers.</span></span></li></ol></figure>
<p>If you are weighing a custom build, our <a href="https://apptycoons.com/industries/mlm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">MLM software development</a> work starts with your compensation plan and payout model, and you can see how we price discovery and fixed-price builds on our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">pricing page</a>.</p><div><h2>Sources</h2><ol><li><a href="https://www.ftc.gov/business-guidance/resources/business-guidance-concerning-multi-level-marketing" rel="noopener">Business Guidance Concerning Multi-Level Marketing</a><span>, Federal Trade Commission</span></li><li><a href="https://capterra.com/p/181321/Exigo/" rel="noopener">Exigo pricing and profile</a><span>, Capterra</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/mlm-software-guide?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=mlm-software-guide">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Stablecoin wallet integration: how to add stablecoin wallets to your app in 2026</title><link>https://apptycoons.com/blog/stablecoin-wallets-fintech</link><guid isPermaLink="true">https://apptycoons.com/blog/stablecoin-wallets-fintech</guid><pubDate>Wed, 30 Sep 2026 12:00:00 GMT</pubDate><category>Fintech</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Provider types, the API flow, the ledger and the 2026 rules in the US and EU, from a team that shipped USD and stablecoin wallets with debit cards.</description><media:content url="https://apptycoons.com/blog/stablecoin-wallets-fintech/opengraph-image?5e469d9e672641b5" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> The fastest route is a regulated orchestration provider: use its hosted KYC and custodial wallets, launch one transfer type, and add cards second. Build your own ledger that mirrors every provider event, show balances in dollars, and check two rule sets before launch: the GENIUS Act rules in the US and MiCA in the EU.</p>
<p>A Freedom Pro member signs up, picks the services they already pay for, and earns on their team’s activity. The earnings land in a USD or stablecoin wallet, and a debit card spends them. Nobody in that flow has to know what a blockchain is. Behind it sit a stablecoin provider’s API, a ledger we built, and a lot of decisions about who holds the money.</p>
<p>This guide covers those decisions in the order a product team meets them: which kind of infrastructure to use, how the integration works call by call, what the 2026 rules mean in the US and the EU, and when stablecoins are the wrong tool.</p>
<h2>The fastest way to add stablecoin wallets to an existing app</h2>
<p>The fastest way is to let a regulated orchestration provider hold the funds and run the regulated steps, while your app owns onboarding screens, the ledger and the interface. You integrate through its API instead of holding crypto yourself.</p>
<p>A first release that ships quickly usually looks like this:</p>
<ol>
<li><span><strong>Hosted identity checks.</strong> Use the provider’s hosted KYC flow at first. Building your own document capture can wait.</span></li>
<li><span><strong>Custodial wallets.</strong> The provider creates and holds a wallet per customer. You never touch private keys.</span></li>
<li><span><strong>One transfer type.</strong> For example, bank dollars in through a virtual account and converted to a dollar stablecoin. Add withdrawals and wallet-to-wallet sends after the first one is reconciled daily without surprises.</span></li>
<li><span><strong>Cards second.</strong> A card program adds lifecycle states, disputes and spend controls. Launch it once balances are trusted.</span></li>
</ol>
<p>Bridge’s documentation shows how much of this one provider can cover: virtual accounts that accept USD, EUR, GBP, MXN and more, each with a unique account and routing number; orchestration APIs for on-ramps, off-ramps and crypto-to-crypto transfers; custodial wallets; cards backed by stablecoins; and issuance of your own stablecoin.</p><h2>Four kinds of stablecoin wallet infrastructure</h2>
<p>Stablecoin infrastructure comes in four broad kinds, and the kind you pick decides who holds keys, how much you build and how much regulatory weight lands on you. Vendor lists mix them together, so separate them before you compare prices.</p>
<div><p><em>Stablecoin wallet infrastructure by kind (examples from each vendor’s own docs, checked October 18, 2026)</em></p>
<table><thead><tr><th>Kind</th><th>Who holds keys and funds</th><th>What you build</th><th>Regulatory weight on you</th><th>Example in vendor docs</th></tr></thead><tbody><tr><th>Custodial orchestration</th><td>The provider, in custodial wallets per customer</td><td>Onboarding UI, ledger, transfer screens, support tools</td><td>Lower: the provider runs custody and the regulated flows</td><td>Bridge: virtual accounts, orchestration APIs, custodial wallets</td></tr><tr><th>Embedded user wallets</th><td>The user or your app, depending on how the wallet is set up</td><td>Wallet UX, recovery, transaction signing, on- and off-ramps</td><td>Depends on whether you ever control user funds</td><td>Privy, listed in Stripe’s docs to “create and manage crypto and stablecoin wallets for users, businesses, and agents”</td></tr><tr><th>Platform balances and cards</th><td>The platform provider, on your business account</td><td>Treasury flows, payouts, card controls</td><td>Lower, but tied to that provider’s program rules</td><td>Stripe: stablecoin balances, payouts to third parties in more than 160 countries, stablecoin-backed cards</td></tr><tr><th>Issuance</th><td>You, as the brand behind a coin, through an issuer partner</td><td>Treasury, mint and burn operations, distribution</td><td>Highest: issuer rules apply</td><td>Bridge issuance API to “issue your own stablecoin”</td></tr></tbody></table></div>
<p>Most fintech and platform products start in the first row. Embedded wallets fit crypto-native users. Issuance is a business decision about becoming a stablecoin brand, not a wallet feature, and under the GENIUS Act it brings issuer-level rules.</p>
<h2>Custodial or non-custodial: who holds the keys decides your obligations</h2>
<p>Whoever can move the funds carries the obligations, so decide custody before you design screens. In a custodial model the provider holds the keys; in a non-custodial model the user does, and your app helps them sign.</p>
<p>The OCC’s 2026 proposal shows how regulators think about it. As summarized by Mayer Brown, a custodian has “control” of a tokenized asset when “no other party can transfer the asset on a distributed ledger without the custodian’s consent.” That is a useful test for your own design: if your servers can move a user’s balance without them, assume you are in a custody conversation, and take it to counsel.</p>
<p>For consumer products, custodial wallets with a regulated provider are the practical default. Users get password resets and support. You get a partner that runs sanctions screening and can freeze an account when asked.</p>
<figure><figcaption>Who holds the keys</figcaption><div><div><div><p><strong>Custodial</strong> (Consumer default)</p></div><ul><li>The provider holds the keys</li><li>Users get password resets and support</li><li>The provider runs sanctions screening and can freeze an account</li></ul></div><div><div><p><strong>Non-custodial</strong> (Crypto-native users)</p></div><ul><li>The user holds the keys</li><li>Your app helps them sign</li><li>Suits users who want to hold their own keys</li></ul></div></div></figure>
<h2>How a stablecoin wallet integration works, step by step</h2>
<p>An integration is a sequence of provider objects and events that your ledger mirrors one for one. The exact names vary by provider; the shape is the same:</p>
<ol>
<li><span><strong>Create the customer</strong> in the provider with your own user ID stored beside the provider’s ID.</span></li>
<li><span><strong>Run identity checks,</strong> hosted or through the API, and listen for the result by webhook.</span></li>
<li><span><strong>Open the money objects:</strong> a wallet, a virtual account for bank deposits, or both.</span></li>
<li><span><strong>Move money</strong> with a transfer request: deposit, conversion, withdrawal or send.</span></li>
<li><span><strong>Receive webhooks</strong> for every state change and write each one to your ledger.</span></li>
<li><span><strong>Reconcile</strong> your balances against the provider’s records on a schedule.</span></li>
<li><span><strong>Issue a card</strong> on the balance, once the steps above run cleanly.</span></li>
</ol>
<figure><div><img alt="Your app sends a transfer request with an idempotency key to the provider, which holds funds. The provider sends a webhook for every state change to your append-only ledger. The ledger is reconciled against the provider daily, with an alert on any difference, and your screens show what the ledger confirms." width="1280" height="1038" src="https://apptycoons.com/assets/blog/stablecoin-wallets-fintech/integration-flow.webp"/></div><figcaption>The shape is the same whatever the provider calls its objects.</figcaption></figure>
<p>Each object moves through states, and each state needs its own screen copy. These are the ones a first release has to handle:</p>
<div><p><em>States a stablecoin wallet app must handle</em></p>
<table><thead><tr><th>Object</th><th>State</th><th>What the user sees</th><th>What your system does</th></tr></thead><tbody><tr><th>Customer</th><td>Approved</td><td>Full access</td><td>Open wallet and virtual account</td></tr><tr><th>Customer</th><td>Pending review</td><td>“We’re checking your details”, with a time estimate</td><td>Block money movement, poll or wait for webhook</td></tr><tr><th>Customer</th><td>Rejected</td><td>A plain reason and a support route</td><td>No wallet; keep the record for audit</td></tr><tr><th>Customer</th><td>Limited</td><td>Which limit applies</td><td>Enforce the limit server-side on every request</td></tr><tr><th>Transfer</th><td>Pending</td><td>Amount, destination, “in progress”</td><td>Reserve the amount in your ledger</td></tr><tr><th>Transfer</th><td>Completed</td><td>Receipt with reference</td><td>Post the final entry, release the reserve</td></tr><tr><th>Transfer</th><td>Failed or returned</td><td>What happened and what to do next</td><td>Reverse with a new ledger entry, never an edit</td></tr></tbody></table></div>
<p>For retries, Bridge’s API reference requires an <code>Idempotency-Key</code> header on every POST request and says not to send one with GET, PUT, PATCH or DELETE. The key holds for 24 hours after the first request, a retry must send the identical request body, and reusing the key after the 24 hours returns a 422 error.</p>
<blockquote><div>Watch out</div><p>Retries are where wallets pay twice</p><div>Generate the key once per user intent, store it with the pending transfer, reuse it on every retry inside the window, and treat a retry after the window as a new transfer that needs a fresh check of the user’s balance.</div></blockquote>
<h2>Ledger rules that prevent wrong balances</h2>
<p>Most bugs in wallet products are ledger bugs, not interface bugs. Your ledger is the record your support team, your finance team and your users read, and the provider’s records are what it must match.</p>
<ul>
<li><span><strong>Store both IDs.</strong> Every customer, wallet, destination and transfer carries your ID and the provider’s ID side by side, so support can search either.</span></li>
<li><span><strong>Append, never edit.</strong> A reversal or a fee is a new entry linked to the original one.</span></li>
<li><span><strong>Let webhooks drive state.</strong> Your app requests; the provider’s events confirm. A screen never shows “completed” on the strength of an API response alone.</span></li>
<li><span><strong>Replay safely.</strong> Webhooks arrive twice and out of order. Process them by event ID, idempotently.</span></li>
<li><span><strong>Reconcile daily, alert on any difference.</strong> A wallet that shows “pending” honestly loses less trust than one that shows a wrong balance for a few minutes.</span></li>
</ul>
<h2>What the GENIUS Act means for a product team in 2026</h2>
<p>The GENIUS Act is the US federal law for payment stablecoins, and its rules are still being finished. It was signed on July 18, 2025, and takes effect on January 18, 2027, or 120 days after final implementing regulations if that comes first.</p>
<p>Where the rulemaking stands, as of October 18, 2026:</p>
<figure><figcaption>GENIUS Act dates (as of October 18, 2026)</figcaption><ol><li><span><strong>Signed into law</strong> (Jul 18, 2025)</span></li><li><span><strong>OCC proposes its rules</strong> (Feb 25, 2026): <span>New 12 CFR Part 15 (Mayer Brown’s summary).</span></span></li><li><span><strong>Comments due</strong> (May 1, 2026)</span></li><li><span><strong>Statutory deadline passes</strong> (Jul 18, 2026): <span>No final rules yet.</span></span></li><li><span><strong>“In the very near term”</strong> (Oct 15, 2026): <span>The Comptroller on publication of the final rule.</span></span></li><li><span><strong>Takes effect</strong> (Jan 18, 2027): <span>Or 120 days after final regulations, if that comes first.</span></span></li></ol></figure>
<ul>
<li><span><strong>No final rule yet.</strong> Comptroller Jonathan Gould said on August 19, 2026: “We will have a final rule out by November” (<a href="https://www.pymnts.com/legal/2026/occ-promises-final-rule-for-genius-act-by-november/" rel="noopener">reported by PYMNTS</a>). At DC Fintech Week on October 15 he said publication was expected “in the very near term”, and the OCC was reported to be targeting the end of October (<a href="https://www.gncrypto.news/news/occ-targets-october-end-for-genius-act-stablecoin-rules/" rel="noopener">GNcrypto, October 16, 2026</a>). As of October 18, 2026 no final rule had been published. Check the OCC’s news releases before you rely on any detail below.</span></li>
<li><span><strong>Reserves:</strong> permitted issuers hold identifiable, segregated reserve assets backing outstanding coins at least one to one.</span></li>
<li><span><strong>Yield:</strong> issuers may not pay holders interest or yield, and the proposal would create a rebuttable presumption that certain affiliate and third-party arrangements involving issuers violate that ban.</span></li>
<li><span><strong>AML and sanctions</strong> standards come in a separate proposal.</span></li>
</ul>
<p>Three product decisions follow. Pick coins and providers that will operate as permitted issuers or work with them. Run every “rewards on your balance” idea past counsel before design, because a third-party arrangement is exactly what the proposal looks at; Stripe, for example, documents rewards on eligible stablecoin balances for its own business Treasury accounts, which is a different product from a consumer feature you build. And expect identity and sanctions checks to stay strict, because for your provider they are a legal obligation.</p>
<h2>Serving EU users: MiCA and which stablecoin you offer</h2>
<p>In the EU the coin itself has to fit MiCA, so the stablecoin you offer may differ by market. MiCA treats dollar and euro stablecoins as e-money tokens, and on January 17, 2025 ESMA and the European Commission said national regulators should make sure crypto-asset service providers stop offering non-compliant tokens as soon as possible, and no later than the end of the first quarter of 2025.</p>
<p>Circle says it holds an e-money institution license from France’s ACPR and that USDC and EURC are issued in the EU in compliance with MiCA (Circle press release, July 1, 2024). For an EU launch that usually means three checks:</p>
<ul>
<li><span>A coin whose issuer is authorized under MiCA, such as USDC or EURC, confirmed with the provider on the day you launch.</span></li>
<li><span>A provider or partner licensed to serve EU users, not only US ones.</span></li>
<li><span>Screens and disclosures reviewed for each market you open.</span></li>
</ul>
<p>We haven’t shipped an EU stablecoin product yet, so read this section as guidance from the public sources above, not as experience, and not as legal advice.</p>
<h2>Design for people who don’t care about crypto</h2>
<p>Most users want dollars that move fast, so show balances in USD, hide chain details by default, and make the card the hero.</p>
<p>Use words like “balance”, “send” and “card” in the main flows, not “wallet address” or “network”. Advanced users can still find the chain, the transaction hash and the destination on a detail screen. Confirm every outgoing transfer with the amount and destination in plain words, because a stablecoin sent to the wrong address is hard to get back. Receipts matter more as money moves faster.</p>
<h2>When stablecoin wallets are the wrong choice</h2>
<p>Stablecoins are the wrong rail when your users need what a bank account gives them: deposit insurance through a partner bank, checks, cash deposits and ATMs. In that case a partner bank and a card program fit better.</p>
<p><a href="https://apptycoons.com/work/switch?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">Switch</a>, a shared banking app we built for clubs and teams, made exactly that choice: Thread Bank as its FDIC-insured partner bank and Visa debit cards, with no stablecoins. Stablecoins earn their place when money crosses borders, settles outside banking hours, or lands as platform earnings that users want to hold and spend in one account, as they do on Freedom Pro.</p>
<h2>What adding stablecoin wallets does to timeline and budget</h2>
<p>A focused wallet integration fits inside one of our fixed-price builds of $25k–$120k, delivered in 6–16 weeks after discovery; what moves it up the band is how many money paths it has. These are the usual drivers, in our judgment:</p>
<ul>
<li><span><strong>Transfer types.</strong> Each one (deposit, conversion, withdrawal, send, payout) adds states, webhooks, failure screens and reconciliation rules.</span></li>
<li><span><strong>Cards.</strong> Card lifecycle, limits, disputes and wallet provisioning add a second integration.</span></li>
<li><span><strong>Markets.</strong> US plus EU means two coin and partner checks and two sets of disclosures.</span></li>
<li><span><strong>Your own onboarding UI</strong> instead of the provider’s hosted flow.</span></li>
<li><span><strong>Operations tooling.</strong> Search by provider ID, holds, case notes and exports for support and compliance.</span></li>
</ul>
<p>Provider fees, KYC checks and card program costs come on top and are usage-based. For full scopes of two fintech products and their line items, see our guide to <a href="https://apptycoons.com/blog/fintech-app-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">fintech app development cost</a>; our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">pricing</a> page lists the Discovery Sprint and build terms.</p>
<h2>Launch checklist for stablecoin wallets</h2>
<p>Before real money moves, check each of these:</p>
<ul>
<li><span>Money flows drawn end to end, with counsel’s sign-off on who holds funds at each step.</span></li>
<li><span>Sandbox tests for every transfer type, including failures, returns and late webhooks.</span></li>
<li><span>One idempotency key per user intent, stored with the transfer and reused inside the provider’s window.</span></li>
<li><span>Webhook replay test: the same events delivered twice and out of order leave balances unchanged.</span></li>
<li><span>Daily reconciliation with alerts, and a support view that searches by provider ID.</span></li>
<li><span>Onboarding tested for approved, pending-review, rejected and limited customers.</span></li>
<li><span>Coin and provider confirmed for every market you launch in.</span></li>
<li><span>Copy reviewed for anything that implies deposit insurance, interest or yield on a stablecoin balance.</span></li>
<li><span>Limits for new accounts and a fast way to freeze one when the provider asks.</span></li>
</ul>
<h2>How Freedom Pro uses it</h2>
<p>On <a href="https://apptycoons.com/work/freedom-pro?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">Freedom Pro</a>, stablecoin wallets are where a partner network gets paid. Partners earn on their team’s activity in the back office, and earnings arrive in USD or stablecoin (USDC) balances that members spend by debit card, under the same single sign-on as the platform’s wireless, streaming and wellness services. Bridge provides the wallets and the card program; we built the product around it, from the member portal to the back office. That makes Freedom Pro a <a href="https://apptycoons.com/industries/financial-aggregators?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">bundled financial services platform</a> as much as a direct-selling one, and the commission side is covered in our guide to <a href="https://apptycoons.com/blog/mlm-software-guide?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">MLM software and commission engines</a>.</p>
<p>If you are adding wallets or cards to an existing product, our <a href="https://apptycoons.com/industries/fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">fintech app development</a> team starts with the provider choice and the money flows, then builds the ledger and the apps.</p><div><h2>Sources</h2><ol><li><a href="https://apidocs.bridge.xyz/" rel="noopener">Bridge API documentation</a><span>, Bridge</span></li><li><a href="https://apidocs.bridge.xyz/api-reference/introduction/idempotence" rel="noopener">Idempotence</a><span>, Bridge API reference</span></li><li><a href="https://docs.stripe.com/stablecoins" rel="noopener">Stablecoins and crypto</a><span>, Stripe docs</span></li><li><a href="https://www.mayerbrown.com/en/insights/publications/2026/03/occ-proposes-comprehensive-rulemaking-to-implement-the-genius-act" rel="noopener">OCC Proposes Comprehensive Rulemaking to Implement the GENIUS Act</a><span>, Mayer Brown</span></li><li><a href="https://www.gncrypto.news/news/occ-targets-october-end-for-genius-act-stablecoin-rules/" rel="noopener">OCC targets October end for GENIUS Act stablecoin rules</a><span>, GNcrypto</span></li><li><a href="https://www.esma.europa.eu/press-news/esma-news/esma-and-european-commission-publish-guidance-non-mica-compliant-arts-and-emts" rel="noopener">ESMA and European Commission publish guidance on non-MiCA compliant ARTs and EMTs</a><span>, ESMA</span></li><li><a href="https://www.circle.com/pressroom/circle-is-first-global-stablecoin-issuer-to-comply-with-mica-eus-landmark-crypto-law" rel="noopener">Circle is First Global Stablecoin Issuer to Comply with MiCA, EU’s Landmark Crypto Law</a><span>, Circle</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/stablecoin-wallets-fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=stablecoin-wallets-fintech">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Why most AI pilots stall before production, and how to ship yours</title><link>https://apptycoons.com/blog/ai-pilots-to-production</link><guid isPermaLink="true">https://apptycoons.com/blog/ai-pilots-to-production</guid><pubDate>Thu, 24 Sep 2026 12:00:00 GMT</pubDate><category>AI strategy</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>IDC found that only 4 of every 33 AI proofs of concept reached production. The model is rarely the reason; here is what separates the pilots that ship from the ones that stall.</description><media:content url="https://apptycoons.com/blog/ai-pilots-to-production/opengraph-image?757d7f7910a8940f" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Most AI pilots stall because they are built for a demo, not for production: no business metric, curated data, no integration plan and no owner. Pilots that ship start from one workflow and one number, test on real data early, design integrations and human hand-offs first, and launch narrow before widening scope.</p>
<p>Every leadership team has seen the demo: a chatbot that answers questions about the company handbook, or an agent that drafts a customer reply in seconds. Six months later, almost none of them are in production.</p>
<div><span>95%</span> <span>of the AI pilot programs studied for MIT NANDA’s 2025 “GenAI Divide” report stalled with little or no measurable P&amp;L impact; only about 5% achieved rapid revenue acceleration.</span></div>
<p>The failure pattern is consistent, and it is not about model quality. Pilots are built under ideal conditions — clean sample data, a friendly test group, no integrations. Production removes every one of those assumptions at once.</p>
<h2>The four reasons pilots stall</h2>
<ul>
<li><span>No business metric. Teams measure whether the tool “works”, not whether it moves cost, revenue or cycle time.</span></li>
<li><span>Data that isn’t ready. Curated demo data hides the messy, partial inputs real systems produce.</span></li>
<li><span>No integration plan. An agent that can’t read from or write to your systems of record is a toy.</span></li>
<li><span>Unclear ownership. AI teams, IT and the business unit each assume someone else will run it.</span></li>
</ul>
<p>Each of these is invisible in a demo. Without a metric, the end of the pilot produces a debate instead of a decision, and debates tend to end in “not yet”. Without real data, the first week in production surfaces scanned PDFs, missing fields and edge cases the prototype never saw. Without integrations, someone has to copy results into the CRM by hand, and the time saved disappears. And without an owner, nobody updates prompts, watches costs or answers the first support ticket.</p>
<figure><figcaption>What a demo assumes, and what production brings</figcaption><div><div><div><p><strong>Pilot</strong> (Built for a demo)</p></div><ul><li>Clean sample data</li><li>A friendly test group</li><li>No integrations</li></ul></div><div><div><p><strong>Production</strong> (Real conditions)</p></div><ul><li>Scanned PDFs, missing fields and edge cases</li><li>Real users</li><li>Reads from and writes to systems of record</li></ul></div></div></figure>
<blockquote>“A successful demo answers whether the model can work. Production readiness asks whether the whole system keeps working under real conditions.”</blockquote><h2>What the research says</h2>
<p>Four widely cited studies agree on the direction, though each measures something different. Read the “what it measured” column before quoting any of them.</p>
<div><p><em>AI pilot failure research, by what each study measured</em></p>
<table><thead><tr><th>Study</th><th>Sample</th><th>Finding</th><th>What it measured</th></tr></thead><tbody><tr><th>IDC with Lenovo, via CIO.com (March 2025)</th><td>Companies’ AI proofs of concept</td><td>“88% of observed POCs don’t make the cut to widescale deployment”; 4 of every 33 reached production</td><td>Proofs of concept reaching production</td></tr><tr><th>S&amp;P Global Market Intelligence, via CIO Dive (March 2025)</th><td>More than 1,000 respondents in North America and Europe</td><td>42% of businesses scrapped most AI initiatives, up from 17% a year earlier; the average organization scrapped 46% of proofs of concept before production</td><td>Initiatives abandoned</td></tr><tr><th>MIT NANDA, The GenAI Divide, via Fortune (August 2025)</th><td>AI pilot programs studied for the report</td><td>About 5% achieved rapid revenue acceleration</td><td>Measurable P&amp;L impact</td></tr><tr><th>Gartner (June 2025)</th><td>Forecast</td><td>Over 40% of agentic AI projects will be canceled by the end of 2027</td><td>Predicted cancellations</td></tr></tbody></table></div>
<p>Industry research points the same way on causes too. BCG’s 10-20-70 rule holds that only about 10% of the value of an AI transformation comes from the AI application itself, 20% from the underlying data and technology, and the remaining 70% from redesigning workflows, culture and governance. Gartner’s forecast is blunter: more than 40% of agentic AI projects canceled before 2028, and the reasons it gives (rising costs, value nobody can show, weak risk controls) are all about how the project is run, not which model it uses.</p>
<figure><figcaption>Where the value of an AI transformation comes from</figcaption><ul><li><span>The AI application</span>: <span>10%</span></li><li><span>Data and technology</span>: <span>20%</span></li><li><span>Workflows, culture and governance</span>: <span>70%</span></li></ul><p>BCG’s 10-20-70 rule.</p></figure>
<p>Gartner’s June 2025 forecast also warned about “agent washing”, the rebranding of existing assistants, RPA and chatbots as agents, and described most agentic projects at the time as early experiments driven by hype. The MIT NANDA report adds a finding about how companies build: according to Fortune’s summary, buying from specialized vendors and building partnerships succeeded about 67% of the time, while internal builds succeeded about a third as often. Read together, the message is that the bottleneck is organizational and architectural, not the model. We weigh the build-or-buy question in more depth in <a href="https://apptycoons.com/blog/build-vs-buy-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">build vs buy AI agents</a>.</p>
<h2>What the 5% do differently</h2>
<figure><figcaption>What the pilots that ship do, in order</figcaption><ol><li><span><strong>Start from one workflow and one number</strong>: <span>Hours saved, tickets deflected, loans decided.</span></span></li><li><span><strong>Prototype on real production data</strong> (Week 2): <span>In week two, not month six.</span></span></li><li><span><strong>Design the integration and the human hand-off</strong>: <span>Before choosing a model.</span></span></li><li><span><strong>Ship a narrow version to real users</strong>: <span>Measure, then widen scope.</span></span></li></ol></figure>
<p>The order matters. Picking the workflow and the number first decides which data you need, which systems the agent must touch, and where a person stays in control. Choosing a model is one of the last decisions, and the easiest to change later.</p>
<h2>A production-readiness checklist for AI agents</h2>
<p>Before an agent goes live, every item below should have an owner and an answer:</p>
<ul>
<li><span>Metric and baseline: the number the agent must move, measured before launch so improvement can be proven.</span></li>
<li><span>Evaluation set: real past cases with the correct outcome, rerun on every change to prompts, models or tools.</span></li>
<li><span>Integrations: read and write access to the systems of record, with error handling, rate limits and a rollback path for writes.</span></li>
<li><span>Permissions: the agent sees only what the user it acts for may see, enforced outside the model. Our list of production <a href="https://apptycoons.com/blog/ai-agent-guardrails?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">guardrails</a> covers how.</span></li>
<li><span>Human approval: consequential actions, such as sending, paying or deleting, wait for a person until the data shows they can be automated.</span></li>
<li><span>Audit log: every input, tool call, output and approval is recorded and searchable.</span></li>
<li><span>Monitoring: accuracy, exception rate, latency and cost per task tracked weekly, with alerts.</span></li>
<li><span>Ownership: a named team that runs the system, handles support and decides on changes.</span></li>
</ul>
<p>None of this is exotic. It is the same discipline any production software needs, applied to a component that behaves less predictably than ordinary code. If what you have is an app built with an AI app builder rather than an agent, the matching list is our <a href="https://apptycoons.com/blog/vibe-coded-app-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">checklist for taking a vibe-coded app to production</a>, and our <a href="https://apptycoons.com/services/prototype-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">prototype to production</a> service does that work for you.</p>
<h2>Questions to answer before you start a pilot</h2>
<p>Most failed pilots could have been predicted on day one. Before committing budget, answer these in writing:</p>
<ul>
<li><span>Which single workflow will change, and who does it today?</span></li>
<li><span>Which number will prove success, what is it now, and what result would justify a full build?</span></li>
<li><span>Where will the data come from in production, and have we looked at a real sample, not a cleaned one?</span></li>
<li><span>Which systems must the agent read from or write to, and who owns access to them?</span></li>
<li><span>Which actions need a person’s approval, and who is that person?</span></li>
<li><span>Who will run the system after launch, and what budget covers running costs?</span></li>
</ul>
<p>If any answer is “we’ll figure it out later”, that is where the pilot is most likely to stall. A good discovery phase exists to turn each of these into a concrete answer before the build is priced.</p>
<h2>When to stop a pilot: continue, change or kill</h2>
<p>A pilot should end in one of three decisions, and the criteria for each should be written down before it starts. Without them, a stalled pilot drifts for months because nobody wants to call it.</p>
<div><p><em>End-of-pilot decision table (our judgment; set your own thresholds first)</em></p>
<table><thead><tr><th>Check</th><th>Continue to a build</th><th>Change and re-test</th><th>Stop</th></tr></thead><tbody><tr><th>Agreed metric vs baseline</th><td>Moved past the threshold on real data</td><td>Moved, but short of the threshold</td><td>Did not move, or nobody measured it</td></tr><tr><th>Evaluation set on real cases</th><td>Passes the agreed mark</td><td>Fails on a known, fixable class of cases</td><td>Fails across the board, or no set exists</td></tr><tr><th>Integrations</th><td>Access confirmed and a write path tested</td><td>Access pending a named approval</td><td>A required system cannot be reached at acceptable cost</td></tr><tr><th>Owner after launch</th><td>Named team and budget</td><td>Owner agreed, budget not yet</td><td>Nobody will own it</td></tr><tr><th>Run cost per task vs value per task</th><td>Cost clearly below value</td><td>Close; routing or caching could close the gap</td><td>Cost above value at expected volume</td></tr></tbody></table></div>
<p>“Change” is the most common honest answer, and it should come with one specific change and a date for the re-test. Two rounds of “change” on the same check usually mean “stop”. We don’t publish universal thresholds, because a 10% gain is a win in one workflow and noise in another; what matters is that the number exists before the pilot does.</p>
<h2>Two examples from our own builds</h2>
<p><a href="https://apptycoons.com/work/superdeal?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">Superdeal</a> avoids the integration trap: its agent works inside the same campaign workspace as the creators, deals, deliverables and shipments, so nothing is copied between tools and the time it saves stays saved. And nothing the agent drafts is sent until someone on the brand’s side approves it.</p>
<p><a href="https://apptycoons.com/work/relm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">Relm</a>, a multi-agent system for commercial real estate due diligence, had a trust problem to solve before a usage one: an analyst will not put a number from an AI into an investment memo unless they can check it. So every finding links to its source record, and each client firm’s data is kept apart at every layer the AI touches, from storage to the model’s context. Those two choices are what let an analyst rely on it.</p>
<h2>Structure the engagement for production, not for a demo</h2>
<p>We structure our own engagements around the questions above. The Discovery Sprint takes two weeks, costs $5,000 (credited to the build) and ends with a working prototype on your data. It answers the questions that sink pilots: is the data good enough, which integrations are needed, where must a person approve, and what will it cost to run. The build that follows is quoted at a fixed price and usually takes 6–16 weeks, delivered in two-week sprints with live demos and billed against working features. So the path from first workshop to a production launch is two weeks of discovery plus the build, not an open-ended pilot phase.</p>
<figure><div><img alt="Timeline: a two-week Discovery Sprint that ends with a prototype on your data, then a fixed-price build in two-week sprints with live demos, billed against working features, then a narrow launch to real users, widened as the numbers hold" width="1280" height="884" src="https://apptycoons.com/assets/blog/ai-pilots-to-production/path.webp"/></div><figcaption>Discovery answers the questions that sink pilots before the build is priced.</figcaption></figure>
<p>You can see the plans on our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">pricing page</a>, what drives the number in <a href="https://apptycoons.com/blog/ai-agent-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">AI agent development cost</a>, and why we prefer this contract shape in <a href="https://apptycoons.com/blog/fixed-price-software?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">fixed price or time and materials</a>.</p>
<p>If you have a pilot that stalled, or one you want to get right the first time, our <a href="https://apptycoons.com/services/ai-agent-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">AI agent development</a> team can take it from prototype to production.</p><div><h2>Sources</h2><ol><li><a href="https://www.gartner.com/en/newsroom/press-releases/2025-06-25-gartner-predicts-over-40-percent-of-agentic-ai-projects-will-be-canceled-by-end-of-2027" rel="noopener">Gartner Predicts Over 40% of Agentic AI Projects Will Be Canceled by End of 2027</a><span>, Gartner (June 25, 2025)</span></li><li><a href="https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/" rel="noopener">MIT report: 95% of generative AI pilots at companies are failing</a><span>, Fortune, on MIT NANDA’s The GenAI Divide (2025)</span></li><li><a href="https://www.bcg.com/capabilities/artificial-intelligence" rel="noopener">AI Transformation (the 10-20-70 rule)</a><span>, Boston Consulting Group</span></li><li><a href="https://www.cio.com/article/3850763/88-of-ai-pilots-fail-to-reach-production-but-thats-not-all-on-it.html" rel="noopener">88% of AI pilots fail to reach production — but that’s not all on IT</a><span>, CIO.com, on IDC research with Lenovo (March 25, 2025)</span></li><li><a href="https://www.ciodive.com/news/ai-project-fail-data-spglobal/742590/" rel="noopener">AI project failure rates are on the rise: report</a><span>, CIO Dive, on S&amp;P Global Market Intelligence (March 14, 2025)</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/ai-pilots-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=ai-pilots-to-production">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>How to build a BLE companion app: lessons from a 20-electrode EMS suit</title><link>https://apptycoons.com/blog/apps-that-control-hardware</link><guid isPermaLink="true">https://apptycoons.com/blog/apps-that-control-hardware</guid><pubDate>Fri, 18 Sep 2026 12:00:00 GMT</pubDate><category>Engineering</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Pairing, background connections, command protocols and safety limits: what it takes to ship a consumer app that controls Bluetooth hardware, from the OHM Fitness app.</description><media:content url="https://apptycoons.com/blog/apps-that-control-hardware/opengraph-image?105cc56debdd5772" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Treat the Bluetooth connection as the product. Use the platform pairing flows, plan background behavior before the build, acknowledge every command with a timeout, enforce safety limits in both firmware and app, and test on the phones your users own. That is how the OHM at Home app runs guided 25-minute EMS sessions outside the studio.</p>
<p>A companion app has 20 electrodes on the other end of its Bluetooth connection, and a dropped packet is not a spinner: it is a workout that stops halfway, on a person.</p>
<p><a href="https://apptycoons.com/work/ohm-fitness?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=apps-that-control-hardware">OHM Fitness</a> ran its EMS training only in studios. To grow beyond them, OHM needed an app members could use at home to drive the emPower Suit, a wearable with 20 electrodes, safely and without a trainer in the room. We built that app, native on iOS and Android. This guide is what we would tell any team starting a BLE companion app, and it pairs with our <a href="https://apptycoons.com/industries/iot?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=apps-that-control-hardware">IoT and BLE app development</a> page, which covers the device-to-cloud side.</p>
<h2>What we learned building OHM at Home</h2>
<ul>
<li><span>Pairing must be one tap, with clear recovery when it fails.</span></li>
<li><span>Control commands need acknowledgements and timeouts, never fire-and-forget.</span></li>
<li><span>Safety limits live in both firmware and app, never just one.</span></li>
<li><span>Test on the phones your users own, not on an emulator.</span></li>
</ul>
<p>The rest of this guide expands each lesson with the platform rules that apply in 2026, checked against Apple and Google documentation on October 18, 2026.</p><h2>Pairing people can recover from</h2>
<p>Pairing is the first experience every user has, and the first place a connected product can fail. One tap is the goal, but recovery matters more: Bluetooth switched off, a permission denied, a suit that is not charged, or a phone that remembers an old connection. Each needs a plain message and a single next step, not a generic error.</p>
<p>Both platforms now offer a pairing flow designed for companion apps, and it is worth using them on a new build:</p>
<ul>
<li><span><strong>iOS 18 and later: AccessorySetupKit.</strong> The app hands the system a description of its accessory, and iOS shows a picker with the product name and image. One tap pairs it and grants the app access to that accessory. Apple’s WWDC24 session says apps that declare AccessorySetupKit support do not show the Bluetooth permission prompt at all. Accessories that need stronger security still show pairing UI such as numeric comparison or a passkey.</span></li>
<li><span><strong>Android 8.0 and later: companion device pairing.</strong> The system scans on the app’s behalf, without the app holding <code>ACCESS_FINE_LOCATION</code>, although Location Services must be switched on. After the user associates a device, the app can request permissions to run and use data in the background and to start a foreground service from the background.</span></li>
</ul>
<p>On Android 12 and later, an app that scans and connects on its own must declare and request <code>BLUETOOTH_SCAN</code> and <code>BLUETOOTH_CONNECT</code>. Design the permission screens early; a denied permission is a pairing failure the user caused without knowing it.</p>
<figure><figcaption>Companion pairing flows on each platform</figcaption><div><div><div><p><strong>iOS: AccessorySetupKit</strong> (iOS 18 and later)</p></div><ul><li>A system picker with the product name and image</li><li>One tap pairs and grants access to that accessory</li><li>No Bluetooth permission prompt</li></ul></div><div><div><p><strong>Android: companion device pairing</strong> (Android 8.0 and later)</p></div><ul><li>The system scans on the app’s behalf</li><li>No ACCESS_FINE_LOCATION, but Location Services on</li><li>Background permissions and a foreground service after association</li></ul></div></div></figure>
<h2>Keeping the connection alive in the background</h2>
<p>A BLE app can keep working when the phone locks, but the platforms limit how, and the product has to be designed around those limits. Decide in discovery what the device does when the app goes to the background mid-session, because that answer shapes both the firmware and the app.</p>
<p>On iOS, the <code>bluetooth-central</code> background mode lets an app keep discovering, connecting to and exchanging data with peripherals while it is in the background, and the system wakes the app when a Bluetooth event arrives. Three limits matter:</p>
<ul>
<li><span><strong>Scanning slows down.</strong> Background scans coalesce repeated advertisements into one event and scan less often, so finding a device can take longer.</span></li>
<li><span><strong>Wake-ups are short.</strong> Apple’s guide says an app has around 10 seconds to complete a task after it is woken, so keep that work small.</span></li>
<li><span><strong>The app can be terminated.</strong> With state preservation and restoration, iOS remembers the peripherals the app was connected to and the characteristics it subscribed to, and relaunches the app with that state when something happens.</span></li>
</ul>
<p>On Android, background work for an associated device runs through the companion permissions above and a foreground service, which shows a persistent notification while the session runs.</p>
<blockquote><div>Watch out</div><p>The device must be safe without the app</p><div>Whatever the platform allows, design the device so that a phone that locks or loses the connection cannot leave it running unchecked. The app can lose its process at any time; the device cannot depend on it.</div></blockquote>
<h2>Real-time control needs acknowledgements</h2>
<p>A command to change intensity is not done when the app sends it; it is done when the device confirms it. Every command should expect an acknowledgement and have a timeout, and the interface should show what the device reports, not what the app requested. When a connection drops mid-session, the app has to decide quickly and predictably what happens next, and the device has to be safe even if the app never reconnects.</p>
<figure><div><img alt="Sequence between app and device. Normal: the app sends set zone 3 to level 12, the device replies with an ack that zone 3 is at level 12, and the screen shows what the device reports. Connection drops: the same command gets no reply before the timeout, which counts as a failure, and on reconnect the app reads the device state first." width="1280" height="1048" src="https://apptycoons.com/assets/blog/apps-that-control-hardware/command-ack.webp"/></div><figcaption>Absolute commands, acknowledged, with a timeout and a state read-back after reconnect.</figcaption></figure>
<h2>Designing the command protocol</h2>
<p>Write the protocol down and agree it with the firmware team before app work starts. A protocol that only exists in chat messages gets implemented two different ways, once in firmware and once in the app.</p>
<p>A protocol that holds up in production has these properties:</p>
<ul>
<li><span><strong>Versioned.</strong> The device reports its protocol version on connect, and the app refuses or adapts to versions it does not know. Firmware updates will happen; the app must not guess.</span></li>
<li><span><strong>Absolute, not relative.</strong> “Set zone 3 to level 12” survives a retry; “increase zone 3 by one” applied twice is a different session.</span></li>
<li><span><strong>Acknowledged.</strong> Every write gets a reply with the resulting state, and the app treats a missing reply as a failure after a fixed timeout.</span></li>
<li><span><strong>Recoverable.</strong> After a reconnect, the app reads the device’s current state before sending anything, instead of assuming nothing changed.</span></li>
<li><span><strong>Small.</strong> Bluetooth Low Energy packets are small, so compact binary messages with a documented layout beat JSON on the wire.</span></li>
</ul>
<p>The document should also list every error the device can return and what the app shows for each one.</p>
<h2>Safety limits live in two places</h2>
<p>With wearable hardware, the firmware is the last line of defense: it enforces hard limits whatever the app sends. The app enforces the same limits in the interface, adds session rules and guidance, and never offers a setting the device would refuse. OHM’s app carries those rules into each workout as session limits and intensity guardrails.</p>
<p>Security belongs in the same conversation. Android’s documentation warns that once devices pair over Bluetooth Low Energy, the data they exchange is accessible to all apps on the phone, so sensitive data needs its own app-layer encryption. NIST IR 8259A gives a voluntary baseline for the device side, with six capabilities: device identification, device configuration, data protection, logical access to interfaces, software update and cybersecurity state awareness. Its software update capability, updates only by authorized entities through a secure mechanism, is the one a companion app most often delivers, because the app is usually how firmware reaches the device.</p>
<h2>Test on real devices</h2>
<p>Emulators cannot test Bluetooth properly, so real phones and real hardware are where a companion app is signed off. Build a device lab covering the phone models and operating system versions in your user base, and run the same test plan on each:</p>
<ul>
<li><span>First pairing, re-pairing after a reset and pairing with a second phone.</span></li>
<li><span>Permission denied, Bluetooth off and Location Services off on Android.</span></li>
<li><span>Connection loss mid-command, and reconnection with state read-back.</span></li>
<li><span>Background and lock-screen behavior for a full session length.</span></li>
<li><span>Long sessions on a low battery, for both the phone and the device.</span></li>
<li><span>Upgrades: the app over an old firmware version, and an OS update on the phone.</span></li>
</ul>
<p>Before the hardware is ready, a simulated peripheral that implements the agreed protocol keeps app work moving. It does not replace the real device for timing and radio behavior.</p>
<blockquote>“With hardware, reliability is the user experience.”</blockquote>
<h2>What a hardware companion app costs</h2>
<p>A companion app is priced like any other build on our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=apps-that-control-hardware">pricing</a> page: a $5,000 Discovery Sprint to settle the protocol, the platforms and the riskiest flow on real hardware, then a fixed price inside the $25k–$120k band. The device layer is what moves it within that band:</p>
<ul>
<li><span><strong>Firmware maturity.</strong> A documented, stable protocol is the biggest saving. A protocol still changing every week makes the app chase it.</span></li>
<li><span><strong>Device count.</strong> Each model or hardware revision adds pairing rules, commands and test passes.</span></li>
<li><span><strong>Real-device testing time.</strong> Long sessions, background behavior and OS upgrades take calendar time, not only engineering time.</span></li>
<li><span><strong>Cloud and data.</strong> Syncing sessions, telemetry or memberships to a backend adds a service to build and run; that part is often a <a href="https://apptycoons.com/services/cloud-architecture?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=apps-that-control-hardware">cloud architecture</a> job of its own.</span></li>
</ul>
<p>Where a given app lands in the band is our judgment after discovery, not a figure we can promise before seeing the protocol.</p>
<h2>When you don’t need a custom app</h2>
<p>Skip the custom app when someone else’s software already does the job. The device maker’s own app or white-label SDK is often enough for a pilot or a small fleet. If devices already report to a hub or gateway, a web dashboard over that data may be all users need, with no phone in the control path.</p>
<p>And if the firmware is still changing every week, stabilize the protocol first. An app built against a moving protocol is rebuilt, not finished.</p>
<h2>A checklist before you start</h2>
<ol>
<li><span>A written command protocol, versioned and agreed with the firmware team.</span></li>
<li><span>A decision on native or cross-platform for the Bluetooth layer.</span></li>
<li><span>Pairing flows chosen per platform, including AccessorySetupKit and companion device pairing where they fit.</span></li>
<li><span>Background behavior defined for a locked phone and a lost connection.</span></li>
<li><span>Safety limits listed, with which ones the firmware enforces.</span></li>
<li><span>App-layer encryption for any sensitive data over BLE.</span></li>
<li><span>A firmware update path, and who signs the updates.</span></li>
<li><span>A simulated peripheral for development.</span></li>
<li><span>A device lab that matches your users’ phones.</span></li>
<li><span>A test plan that covers the six cases above on every release.</span></li>
</ol>
<p>Today OHM at Home runs guided sessions in four training modes for members on both app stores, and it gave OHM a remote membership it could not sell before. If you are building a companion app for connected hardware, our <a href="https://apptycoons.com/services/mobile-app-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=apps-that-control-hardware">mobile app development</a> team can help, and our guide to <a href="https://apptycoons.com/blog/native-vs-cross-platform?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=apps-that-control-hardware">native or cross-platform</a> covers the framework decision.</p><div><h2>Sources</h2><ol><li><a href="https://developer.apple.com/videos/play/wwdc2024/10203/" rel="noopener">Meet AccessorySetupKit (WWDC24)</a><span>, Apple Developer</span></li><li><a href="https://developer.apple.com/library/archive/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html" rel="noopener">Core Bluetooth background processing for iOS apps</a><span>, Apple Developer</span></li><li><a href="https://developer.android.com/develop/connectivity/bluetooth/companion-device-pairing" rel="noopener">Companion device pairing</a><span>, Android Developers</span></li><li><a href="https://developer.android.com/develop/connectivity/bluetooth/ble/ble-overview" rel="noopener">Bluetooth Low Energy overview</a><span>, Android Developers</span></li><li><a href="https://csrc.nist.gov/pubs/ir/8259/a/final" rel="noopener">NIST IR 8259A: IoT Device Cybersecurity Capability Core Baseline</a><span>, NIST</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/apps-that-control-hardware?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=apps-that-control-hardware">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>What missed calls really cost — and when a voice agent pays for itself</title><link>https://apptycoons.com/blog/cost-of-missed-calls</link><guid isPermaLink="true">https://apptycoons.com/blog/cost-of-missed-calls</guid><pubDate>Thu, 10 Sep 2026 12:00:00 GMT</pubDate><category>Voice agents</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Most businesses underestimate phone leakage. A simple model shows how fast it adds up.</description><media:content url="https://apptycoons.com/blog/cost-of-missed-calls/opengraph-image?7c7235c45b69d432" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Missed calls cost you calls per month × the share you miss × the share of those callers who would have bought × the value of a new customer. At 60 calls a day, 30% missed, a 25% buy rate and $400 per customer, that is about $54,000 a month in revenue at risk.</p>
<p>The phone is still the highest-intent channel most businesses have. Someone who calls is usually ready to book, buy or escalate. For many teams, it is also where revenue leaks without anyone noticing.</p>
<div><span>62%</span> <span>of calls to the 85 small businesses that 411 Locals tracked for 30 days were not answered by a person: 37.8% went to voicemail and 24.3% got no response at all.</span></div>
<p>That study is from 2016 and covers a small sample, so treat it as a warning sign rather than a benchmark for your business. The better number is your own, and you can work it out in a few minutes with the formula below or with our <a href="https://apptycoons.com/tools/ai-voice-agent-roi-calculator?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">AI voice agent ROI calculator</a>, which uses the same inputs.</p>
<h2>A simple way to estimate your loss</h2>
<p>Multiply four numbers: calls per month × the share you miss × the share of callers who would have bought × the value of a new customer. A clinic taking 60 calls a day, missing 30%, converting a quarter of callers at $400 each, is leaving about $54,000 on the table every month. Clinics are a common case because the front desk answers phones and patients at the same time; we cover <a href="https://apptycoons.com/industries/healthcare?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">clinic call handling</a> and its privacy rules on our healthcare page.</p>
<p>Each input has a source you already have:</p>
<ul>
<li><span>Calls per month: your phone system or carrier call log, averaged over every day of the month, including days you are closed.</span></li>
<li><span>The share you miss: missed, abandoned and voicemail calls from the same log. Leave out spam, wrong numbers and existing customers who will reach you another way.</span></li>
<li><span>The share who would have bought: how many answered calls from new prospects become a booking or a sale, from your CRM or booking system.</span></li>
<li><span>The value of a new customer: the gross profit on a first sale, or lifetime value if customers usually come back.</span></li>
</ul><h2>A worked example</h2>
<p>Take the clinic above: 60 calls a day is 1,800 calls a month. Missing 30% means 540 missed calls. If a quarter of those callers would have booked, that is 135 lost customers, and at $400 each, $54,000 a month.</p>
<figure><figcaption>The clinic example, per month</figcaption><ul><li><span>Calls a month (60 a day)</span>: <span>1,800</span></li><li><span>Missed (30%)</span>: <span>540</span></li><li><span>Would have bought (25%)</span>: <span>135</span></li></ul><p>135 × $400 per customer = $54,000 a month at risk.</p></figure>
<p>The missed-call rate drives the result more than anything else, which is why it is worth measuring rather than guessing:</p>
<div><p><em>Per month at 1,800 calls, 25% buy rate, $400 per customer</em></p>
<table><thead><tr><th>Missed rate</th><th>Missed calls</th><th>Lost customers</th><th>Revenue at risk</th></tr></thead><tbody><tr><th>10%</th><td>180</td><td>45</td><td>$18,000</td></tr><tr><th>20%</th><td>360</td><td>90</td><td>$36,000</td></tr><tr><th>30%</th><td>540</td><td>135</td><td>$54,000</td></tr><tr><th>40%</th><td>720</td><td>180</td><td>$72,000</td></tr></tbody></table></div>
<p>These are the default inputs of our ROI calculator, so you can start from the same example and change one number at a time.</p>
<h2>Why your real number may be lower or higher</h2>
<p>The formula gives revenue at risk, not revenue you will certainly recover. Three adjustments make it more realistic.</p>
<ul>
<li><span>Some callers try again. If one in five missed prospects calls back and books, the $54,000 becomes about $43,200.</span></li>
<li><span>Revenue is not profit. At a 50% gross margin, the same example puts about $27,000 of profit at risk each month.</span></li>
<li><span>Lifetime value works the other way. If a new patient or customer usually returns several times, the first sale understates the loss.</span></li>
</ul>
<figure><figcaption>The clinic example, adjusted</figcaption><ul><li><span>Revenue at risk</span>: <span>$54,000</span></li><li><span>At risk after one in five call back and book</span>: <span>$43,200</span></li><li><span>Profit at a 50% gross margin</span>: <span>$27,000</span></li></ul><p>From the worked example above. Lifetime value would move the figure the other way.</p></figure>
<p>Run the numbers both ways. If even the conservative version is large, the problem is worth solving.</p>
<h2>What the statistics do and do not tell you</h2>
<p>Most articles on missed calls repeat the same few figures, and some of them do not hold up. The 62% figure above comes from a real study you can read: 411 Locals, a marketing company, tracked 85 businesses across 58 industries for 30 days in 2016 and found that 37.8% of calls were answered by a person.</p>
<p>Another figure appears almost everywhere: that 85% of callers who reach no one never call back. We tried to trace it to a primary study and could not find one, so we do not use it in this guide or in our calculator. If you want to know how many of your callers try again, look for repeat numbers in your call log within a day of a missed call.</p>
<h2>How to find your missed-call rate in your phone system</h2>
<p>Your missed-call rate is the share of inbound calls from real prospects that ended without reaching a person, and every business phone system or carrier portal can export the data to work it out. Take the last full month, not a single busy week.</p>
<figure><figcaption>Your missed-call rate in six steps</figcaption><ol><li><span><strong>Export the inbound call log</strong>: <span>With the time, caller number, duration and outcome of each call (answered, missed, abandoned in a queue, sent to voicemail).</span></span></li><li><span><strong>Remove spam and wrong numbers</strong>: <span>Robocalls too. Calls under a few seconds with no voicemail are usually noise.</span></span></li><li><span><strong>Remove existing customers</strong>: <span>If you can match numbers to your CRM; they will usually reach you another way.</span></span></li><li><span><strong>Count a caller once per day</strong>: <span>Someone who rings three times in ten minutes and gets through on the third try was not lost.</span></span></li><li><span><strong>Divide</strong>: <span>Missed, abandoned and voicemail calls by the total that remains. That is your rate.</span></span></li><li><span><strong>Plot by hour and day</strong>: <span>Missed calls by hour of the day and day of the week.</span></span></li></ol></figure>
<p>The plot shows where missed calls come from, and usually it is one of three places. Peak hours, when calls arrive in bursts exactly when staff are busiest. After hours, when calls keep coming and nobody is there. And voicemail, where many callers hang up rather than leave a message. Each points to a different fix: lunch cover, an overflow line or after-hours answering.</p>
<h2>Answering service, receptionist or voice agent: what each fix costs</h2>
<p>The three fixes are priced in different units: an answering service by the minute, a receptionist by the hour and a voice agent by a one-time build plus a per-minute running cost. Putting them on the clinic example shows where each one wins.</p>
<p>Assume each missed call would have taken 3 minutes to handle, the default in our calculator. At 540 missed calls a month, that is 1,620 minutes.</p>
<div><p><em>Monthly cost of each fix at 540 missed calls (1,620 minutes), list prices checked October 18, 2026</em></p>
<table><thead><tr><th>Fix</th><th>What it costs</th><th>What it covers</th><th>Fit at 540 missed calls</th></tr></thead><tbody><tr><th>Ruby virtual receptionist, 500 minutes</th><td>$1,725/month ($3.45/min)</td><td>About 166 calls of 3 minutes</td><td>Covers under a third of the minutes; larger plans are quoted by sales</td></tr><tr><th>Ruby, 50 minutes</th><td>$250/month ($5.00/min)</td><td>About 16 calls of 3 minutes</td><td>Fits a business missing a few calls a week</td></tr><tr><th>Receptionist, BLS median pay</th><td>$18.27/hour, about $3,170/month in wages for full-time hours</td><td>Business hours, one call at a time</td><td>Fixes daytime overflow; not nights, weekends or simultaneous calls</td></tr><tr><th>Custom AI voice agent</th><td>One-time build plus per-minute running costs</td><td>Every call at once, any hour</td><td>Built for this volume; see the payback section below</td></tr></tbody></table></div>
<p>The arithmetic: Ruby lists $250 for 50 minutes, $395 for 100, $720 for 200 and $1,725 for 500, with no overage rate published, so the per-minute figures are $250 ÷ 50 and $1,725 ÷ 500. A 500-minute plan at 3 minutes a call covers about 166 calls a month, roughly 38 a week. The receptionist figure is the BLS median of $38,010 a year (May 2025) divided by 12, before payroll taxes, benefits and cover for breaks and holidays.</p>
<p>Our reading of the table: under about 38 missed calls a week, an answering service is the cheaper fix. Above a few hundred a month, or when the misses are at night and at peak times, a person answering stops scaling and an agent starts to make sense. These break-points are our arithmetic on list prices, not a quote from any vendor.</p>
<h2>What a modern voice agent changes</h2>
<p>A well-built voice agent answers every call at once, replies at a natural conversational pace, copes with interruptions and acts on your systems — checking orders, booking slots, updating the CRM. Complex calls go to a person with a full summary attached. Speed matters more than it seems; we explain why in <a href="https://apptycoons.com/blog/voice-agent-latency?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">why sub-second latency makes or breaks a voice agent</a>.</p>
<blockquote>“The goal isn’t to replace your team. It’s to make sure no high-intent caller ever hears a ring tone that never ends.”</blockquote>
<h2>When does a voice agent pay for itself?</h2>
<p>Payback is the one-time build cost divided by what the agent recovers each month, minus what it costs to run. Running costs are mostly per-minute fees for telephony, speech recognition, the language model and the synthetic voice, so they grow with call volume.</p>
<blockquote><div>Tip</div><p>The payback formula</p><div>Months to pay back = one-time build cost ÷ (revenue recovered per month minus running cost per month).</div></blockquote>
<p>On our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">published pricing</a>, a custom build follows a $5,000 discovery sprint and lands in the $25k–$120k range, fixed before the build starts. Whether that pays back in months or years depends almost entirely on the revenue at risk: a business losing tens of thousands a month to missed calls recovers it far faster than one losing a few hundred. For a line-by-line breakdown of build and per-minute costs, see <a href="https://apptycoons.com/blog/ai-voice-agent-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">AI voice agent cost</a>.</p>
<h2>What to measure after launch</h2>
<p>If you do deploy an agent, measure the result against the same formula, not against a vendor dashboard. Track four numbers each week, starting with a baseline from the month before launch:</p>
<ul>
<li><span>Answer rate: the share of calls that reach a person or the agent, which should be close to all of them.</span></li>
<li><span>Bookings or sales from calls the agent handled, especially after hours and at peak times.</span></li>
<li><span>Transfer rate: how often the agent hands a caller to a person, and whether those callers were helped.</span></li>
<li><span>Cost per handled call, including per-minute fees and the time your team spends reviewing calls.</span></li>
</ul>
<p>If the agent books appointments, add booking completion: of the callers who chose to book, how many hung up with an appointment in the calendar. It measures the booking flow only, so read it next to the answer rate. Our <a href="https://apptycoons.com/work/innovative-ai?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">Innovative AI case study</a> reports this number for a dealership build, and <a href="https://apptycoons.com/blog/ai-service-scheduling-dealerships?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">how AI service scheduling works at a dealership</a> covers the steps behind it.</p>
<p>Listen to a sample of recordings every week as well. Numbers show whether the agent is answering; recordings show whether it is helping.</p>
<h2>When a voice agent is not the answer</h2>
<p>Sometimes the honest answer is something simpler. If you miss fewer than about 38 calls a week, a 500-minute answering-service plan covers them for $1,725 a month on Ruby’s list price, and a business missing three or four a week fits the 50-minute plan at $250. A small change in staffing, such as staggered lunch breaks, can cost less still. If most calls need judgment a person should make, such as clinical triage or complex complaints, an agent can still take details and book a callback, but it will not recover the whole loss. And if the problem is that nobody follows up on voicemails, fix the follow-up first.</p>
<h2>Run your own numbers</h2>
<p>Put the figures from your own call log into the ROI calculator linked above; it uses the same formula as this guide, with your call length and per-minute costs. If the result is large enough to matter, see how we build <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">custom AI voice agents</a> that answer, qualify and book calls inside your own CRM and calendar.</p><div><h2>Sources</h2><ol><li><a href="https://411locals.us/small-business-owners-dont-answer-62-of-phone-calls/" rel="noopener">Small business owners don’t answer 62% of phone calls</a><span>, 411 Locals (2016)</span></li><li><a href="https://www.ruby.com/pricing/" rel="noopener">Ruby virtual receptionist pricing</a><span>, Ruby</span></li><li><a href="https://www.bls.gov/ooh/office-and-administrative-support/receptionists.htm" rel="noopener">Receptionists: Occupational Outlook Handbook</a><span>, U.S. Bureau of Labor Statistics</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/cost-of-missed-calls?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=cost-of-missed-calls">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Creator platform revenue share: how to build splits, payouts and statements</title><link>https://apptycoons.com/blog/creator-platform-revenue-share</link><guid isPermaLink="true">https://apptycoons.com/blog/creator-platform-revenue-share</guid><pubDate>Tue, 08 Sep 2026 12:00:00 GMT</pubDate><category>Industries</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Attribution, a ledger that explains every cent, store fees, what each payout costs and the tax forms, with the arithmetic and lessons from building DubCam.</description><media:content url="https://apptycoons.com/blog/creator-platform-revenue-share/opengraph-image?d734b01e72f6d4fc" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> A creator revenue share needs attribution that ties every payment to one creator, a ledger that records each split as its own entry, and payouts on a fixed schedule. Decide before launch whether the share comes from gross or net revenue, since app store fees take 15% to 30%, and price your payout threshold against per-payout fees.</p>
<p>On DubCam, a fan picks a program at sign-up, 50% of every subscription is attributed to that program, and the money goes out on the 1st of the month with no minimum threshold. That one sentence hides four systems: attribution, a ledger, payouts and tax reporting. It also hides a choice most platforms make too late: is 50% of the price the fan paid, or of what is left after the app store takes its cut?</p>
<p>This guide covers each system with real published fees and the arithmetic, so you can set the rules before the first statement goes out.</p>
<h2>What a creator revenue share system needs</h2>
<p>A revenue share is four systems that must agree with each other every month:</p>
<ul>
<li><span><strong>Attribution:</strong> every payment linked to exactly one creator, by a rule the fan can see.</span></li>
<li><span><strong>Ledger:</strong> every split, fee, refund and payout recorded as its own entry.</span></li>
<li><span><strong>Payouts:</strong> creators paid on a fixed schedule through a provider that verifies who they are.</span></li>
<li><span><strong>Statements and tax:</strong> each creator sees how their number was calculated, and the platform files the forms the law requires.</span></li>
</ul>
<p>The percentage in the contract is the easy part. Creators leave when a statement can’t be explained or a payout is late, not when the split is a few points lower than a rival’s.</p><h2>Attribution: decide who gets credit, once</h2>
<p>The most trusted attribution rule is the one the fan chooses. On DubCam the fan picks who to back at sign-up, and renewals follow that choice until the fan changes it. Store the choice on the subscription, keep a history of every change with its date, and show the fan who they are supporting.</p>
<figure><figcaption>Attribution on DubCam: the fan chooses</figcaption><ol><li><span><strong>Fan signs up</strong>: <span>Picks a program to back</span></span></li><li><span><strong>Choice stored</strong>: <span>On the subscription, with its history</span></span></li><li><span><strong>50% attributed</strong>: <span>Renewals follow the choice</span></span></li><li><span><strong>Paid on the 1st</strong>: <span>No minimum threshold</span></span></li></ol></figure>
<p>Disputes start when credit is inferred, for example from viewing time that nobody outside the platform can see. If your model has to split one subscription across several creators by usage, publish the formula and keep the usage data each split was based on, because a creator will ask.</p>
<h2>The ledger: every split as an entry</h2>
<p>Each payment should create separate ledger entries for the fee, the platform’s share and the creator’s share, all linked to the original transaction. Refunds and chargebacks create new entries that reverse the old ones; nothing is edited.</p>
<p>Here is one $10 web subscription with a 50% creator share of gross, refunded the next week. The fee is Stripe’s standard US card rate of 2.9% plus 30 cents, as listed in October 2026; the numbers are illustrative, not a client’s.</p>
<div><p><em>Ledger entries for one $10 web subscription and its refund (illustrative)</em></p>
<table><thead><tr><th>Event</th><th>Entry</th><th>Amount</th></tr></thead><tbody><tr><th>Payment</th><td>Cash received</td><td>+$10.00</td></tr><tr><th>Payment</th><td>Card processing fee</td><td>−$0.59</td></tr><tr><th>Payment</th><td>Creator payable (50% of gross)</td><td>+$5.00</td></tr><tr><th>Payment</th><td>Platform revenue (what remains)</td><td>+$4.41</td></tr><tr><th>Refund</th><td>Cash returned</td><td>−$10.00</td></tr><tr><th>Refund</th><td>Creator payable reversed</td><td>−$5.00</td></tr><tr><th>Refund</th><td>Platform revenue reversed</td><td>−$4.41</td></tr></tbody></table></div>
<p>Whether the processing fee comes back on a refund depends on your processor’s terms, so model it as its own entry rather than assuming. A creator statement is then a filtered view of the creator payable lines, and any line traces back to the payment that produced it.</p>
<h2>Gross or net: the store fee decides</h2>
<p>App store fees take 15% to 30% of an in-app subscription, so a share of gross and a share of net can differ by more than a dollar on a $10 plan. Apple pays developers 70% of an auto-renewable subscription price in a subscriber’s first year and 85% after one year of paid service; free trials don’t count toward that year. Members of the App Store Small Business Program, for developers with up to $1 million in proceeds in the prior year, receive 85% from the start. Google Play lists 10% plus a 5% billing fee on auto-renewing subscriptions bought through Play Billing by users in the US, EEA and UK (rolled out June 30, 2026) and in Australia and Japan (September 30, 2026), on a developer’s first $1 million of annual earnings.</p>
<div><p><em>$10 monthly subscription, 50% creator share, by channel (our arithmetic on published rates, taxes excluded, October 2026)</em></p>
<table><thead><tr><th>Channel</th><th>Fee</th><th>Platform receives</th><th>Creator at 50% of gross</th><th>Creator at 50% of net</th><th>Platform keeps if share is of gross</th></tr></thead><tbody><tr><th>Web, card via Stripe (2.9% + 30¢)</th><td>$0.59</td><td>$9.41</td><td>$5.00</td><td>$4.71</td><td>$4.41</td></tr><tr><th>iOS, subscriber’s first year (30%)</th><td>$3.00</td><td>$7.00</td><td>$5.00</td><td>$3.50</td><td>$2.00</td></tr><tr><th>iOS after one year, or Small Business Program (15%)</th><td>$1.50</td><td>$8.50</td><td>$5.00</td><td>$4.25</td><td>$3.50</td></tr><tr><th>Google Play, US Play Billing (10% + 5%)</th><td>$1.50</td><td>$8.50</td><td>$5.00</td><td>$4.25</td><td>$3.50</td></tr></tbody></table></div>
<p>The last column is the one founders miss. A share of gross on iOS in year one leaves the platform $2.00 of every $10, before hosting, streaming and payout costs. A share of net keeps the platform’s margin steady but pays creators less on mobile than on the web. Neither is wrong. The creator terms must say which rule applies, the ledger must calculate it the same way, and the statement must show it.</p>
<figure><div><img alt="Two bars for a $10 iOS subscription in the subscriber’s first year. With a 50% share of gross, Apple takes $3.00, the creator gets $5.00 and the platform keeps $2.00. With a 50% share of net, Apple takes $3.00, the creator gets $3.50 and the platform keeps $3.50." width="1280" height="822" src="https://apptycoons.com/assets/blog/creator-platform-revenue-share/gross-vs-net.webp"/></div><figcaption>Our arithmetic on Apple’s published 70% first-year rate, taxes excluded.</figcaption></figure>
<h2>Can you send fans to the web to pay?</h2>
<p>In the United States storefront, yes. Apple’s App Review Guidelines, section 3.1.1(a), say entitlements “are not required for developers to include buttons, external links, or other calls to action in their United States storefront apps.”</p>
<blockquote><div>Watch out</div><p>The US rule is not global</p><div>In other storefronts, links to outside purchasing need a specific entitlement or are not allowed, so check the guidelines for each country you launch in.</div></blockquote>
<p>A web checkout changes the fee line in the table above, not the creator rule. Record the channel on every payment, and decide whether creators earn the same share whichever way the fan paid. Most platforms keep the rule identical so creators don’t have to understand app store economics.</p>
<h2>What payouts cost, and why most platforms set a minimum</h2>
<p>Paying a creator has a fixed cost per account and per payout, so small payouts are expensive. Stripe Connect’s pricing where the platform sets its own fees lists $2 per monthly active account (an account is active in any month it receives a payout), 0.25% plus 25 cents per payout, 1% for instant payouts and $2.99 per 1099 form e-filed with the IRS, as of October 2026.</p>
<div><p><em>Cost of one monthly payout on Stripe Connect (our arithmetic, October 2026 list prices)</em></p>
<table><thead><tr><th>Creator owed</th><th>Active account</th><th>Payout fee</th><th>Total</th><th>Share of the payout</th></tr></thead><tbody><tr><th>$3</th><td>$2.00</td><td>$0.26</td><td>About $2.26</td><td>About 75%</td></tr><tr><th>$30</th><td>$2.00</td><td>$0.33</td><td>About $2.33</td><td>About 8%</td></tr><tr><th>$300</th><td>$2.00</td><td>$1.00</td><td>About $3.00</td><td>About 1%</td></tr></tbody></table></div>
<p>That is why most platforms set a minimum and roll smaller balances into the next month. DubCam pays on the 1st with no minimum threshold, which makes the promise to a small high-school program simple. Paying with no minimum means small balances carry per-payout fees in full, so decide who bears them before launch. It is a product decision, and it should be made with this table in front of you.</p>
<p>Payouts don’t have to leave your platform as bank transfers. Earnings can land in an in-app balance or wallet that creators spend by card, the model behind <a href="https://apptycoons.com/blog/stablecoin-wallets-fintech?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">stablecoin wallet payouts</a> on a platform we built for a partner network.</p>
<h2>Refunds, chargebacks and payout timing</h2>
<p>Pay creators from settled money, not from payments that can still be reversed. Three rules keep a platform from paying out money it later loses:</p>
<ul>
<li><span><strong>Hold period.</strong> Pay a month’s earnings after the refund window for that month has closed, or hold back a reserve until it does.</span></li>
<li><span><strong>Reversals as entries.</strong> A refund or chargeback after payout creates a negative entry for the creator, linked to the original payment.</span></li>
<li><span><strong>Negative balances carry forward.</strong> Deduct them from the next payout instead of chasing the creator, and show the deduction on the statement.</span></li>
</ul>
<p>Tell creators the schedule and the hold rule in writing before their first payout. A late payout explained in advance costs less trust than an early one clawed back.</p>
<h2>Tax and identity: what the platform must collect</h2>
<p>Verify every creator before the first payout and collect tax details at onboarding, not at year end. Payout providers such as Stripe Connect run identity verification of the people you pay; your onboarding should collect a W-9 from US creators and a W-8 from non-US creators.</p>
<p>In the US, the IRS says payment apps and online marketplaces must file Form 1099-K when a payee’s payments for goods or services exceed $20,000 in more than 200 transactions, and that payees may receive the form for smaller amounts. In the EU, the DAC7 directive (Council Directive (EU) 2021/514, applied from January 1, 2023) requires platform operators to report sellers carrying out certain activities, including personal services, defined as time- or task-based work done at a user’s request. Whether a creator subscription counts depends on the model, so put the question to tax counsel during discovery. This section is not tax advice.</p>
<h2>Build or buy a creator payout system</h2>
<p>Buy when monetization isn’t your product. Patreon, for example, lists a 10% platform fee on creators’ income for creators who publish after August 4, 2025, plus payment processing, currency conversion and payout fees, as of October 2026. For a creator who only needs a membership page, that is cheaper than any build.</p>
<figure><figcaption>Buy a membership tool or build the payout system</figcaption><div><div><div><p><strong>Buy</strong> (Patreon, for example)</p></div><ul><li>10% platform fee for creators who publish after August 4, 2025</li><li>Plus processing, currency conversion and payout fees</li><li>Cheapest when a membership page is all you need</li></ul></div><div><div><p><strong>Build</strong> (DubCam, for example)</p></div><ul><li>Fans back a specific program</li><li>Split rules no membership tool expresses</li><li>Live video and payouts in one branded app</li></ul></div></div></figure>
<p>Build when the split, the attribution or the app is the product: a network where fans back a specific program, a share that follows rules no membership tool expresses, or live video and payouts inside one branded app. DubCam is that case. The same build or buy test applies to partner commissions, and the three-year numbers for that decision are in <a href="https://apptycoons.com/blog/build-vs-buy-affiliate-tracking?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">affiliate tracking: build or buy</a>.</p>
<p>A custom build also decides your platforms. Live video and subscriptions on iOS, Android and the web is a different scope from a web-only membership site; the trade-offs between one shared codebase and separate apps are in <a href="https://apptycoons.com/blog/native-vs-cross-platform?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">native vs cross-platform development</a>.</p>
<h2>What we learned building DubCam</h2>
<p>Letting the fan choose the creator at sign-up made everything downstream simpler. Attribution is a stored field, not a model. A creator’s statement is a list of their supporters’ payments. Support questions about “why did I earn this” have one answer.</p>
<p><a href="https://apptycoons.com/work/dubcam?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">DubCam</a> ships as iOS and Android apps plus the web, with a ten-minute free preview before a fan subscribes, in-app purchases on the App Store and Google Play, and automated payouts on the 1st. The no-minimum rule tells a small program that every supporter counts.</p>
<h2>What a revenue share build costs</h2>
<p>A streaming app with subscriptions, attribution, a ledger and payouts is a fixed-price build within our $25k–$120k range, delivered in 6–16 weeks after a Discovery Sprint. In our judgment, these move it up the band: live video rather than uploads only, iOS plus Android plus web, more than one payout rail, a creator statements portal, and usage-based splits instead of fan-chosen ones. The <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">pricing</a> page has the terms.</p>
<p>If you are planning a creator or streaming product, our <a href="https://apptycoons.com/industries/media-streaming?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">live streaming and creator platform development</a> work covers subscriptions, splits and payouts, and our <a href="https://apptycoons.com/services/mobile-app-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">mobile app development</a> team ships the iOS and Android apps.</p><div><h2>Sources</h2><ol><li><a href="https://developer.apple.com/app-store/subscriptions/" rel="noopener">Auto-renewable subscriptions</a><span>, Apple Developer</span></li><li><a href="https://developer.apple.com/app-store/review/guidelines/" rel="noopener">App Review Guidelines</a><span>, Apple Developer</span></li><li><a href="https://support.google.com/googleplay/android-developer/answer/112622" rel="noopener">Service fees</a><span>, Google Play Console Help</span></li><li><a href="https://stripe.com/connect/pricing" rel="noopener">Connect pricing</a><span>, Stripe</span></li><li><a href="https://stripe.com/pricing" rel="noopener">Pricing</a><span>, Stripe</span></li><li><a href="https://support.patreon.com/hc/en-us/articles/36426991446797" rel="noopener">A standard platform fee for new creators, effective after August 4, 2025</a><span>, Patreon Help Center</span></li><li><a href="https://www.irs.gov/businesses/understanding-your-form-1099-k" rel="noopener">Understanding your Form 1099-K</a><span>, IRS</span></li><li><a href="https://eur-lex.europa.eu/eli/dir/2021/514/oj/eng" rel="noopener">Council Directive (EU) 2021/514 (DAC7)</a><span>, EUR-Lex</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/creator-platform-revenue-share?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=creator-platform-revenue-share">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Fixed price or time &amp; materials? How to buy custom software without overruns</title><link>https://apptycoons.com/blog/fixed-price-software</link><guid isPermaLink="true">https://apptycoons.com/blog/fixed-price-software</guid><pubDate>Thu, 27 Aug 2026 12:00:00 GMT</pubDate><category>Buying software</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Large IT projects run 45% over budget on average. Contract structure is only part of the fix.</description><media:content url="https://apptycoons.com/blog/fixed-price-software/opengraph-image?c11c7adde6cf41f5" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Choose fixed price when the scope can be understood before the build starts, and time and materials when it cannot. For most custom software the safest structure is both: a short fixed-fee discovery sprint that resolves the unknowns, then a fixed-price build quoted on what it found, paid in milestones tied to working features.</p>
<p>Ask any CTO about their worst vendor experience and you will hear the same story: a project that was “80% done” for six months while the invoices kept arriving.</p>
<div><span>45%</span> <span>average budget overrun on large IT projects, which also delivered 56% less value than predicted (McKinsey &amp; University of Oxford, 5,400 projects).</span></div>
<p>The averages are only half the story. When Flyvbjerg and Budzier studied 1,471 IT projects, the average cost overrun was 27%, but one project in six was a “black swan” with a cost overrun of 200% on average and a schedule overrun of almost 70%. The risk in software is not that every project runs a little late; it is that a few run catastrophically over, and nobody knows in advance which ones.</p>
<h2>Why overruns happen</h2>
<ul>
<li><span>Scope is estimated before anyone understands the problem.</span></li>
<li><span>Progress is reported in hours spent, not software shipped.</span></li>
<li><span>Risky unknowns, such as integrations, data and performance, are left until the end.</span></li>
</ul>
<p>All three come down to the same thing: the price is set at the moment the buyer and the vendor know least. A contract model can move the risk from one side to the other, but it cannot remove an unknown. Only work can do that.</p>
<figure><figcaption>Average cost overrun, 1,471 IT projects (Flyvbjerg and Budzier)</figcaption><ul><li><span>All projects</span>: <span>27%</span></li><li><span>Black swans, one project in six</span>: <span>200%</span></li></ul><p>One project in six was a black swan; its schedule also overran by almost 70%.</p></figure><h2>Fixed price vs time and materials: who carries the risk</h2>
<p>The real difference between the two models is who pays when the estimate is wrong. Under fixed price the vendor does; under time and materials the buyer does. Everything else follows from that.</p>
<div><p><em>How the main contract models compare</em></p>
<table><thead><tr><th>Aspect</th><th>Fixed price</th><th>Time and materials</th><th>Discovery, then fixed price</th></tr></thead><tbody><tr><th>Budget</th><td>Known up front</td><td>Open, set by hours</td><td>Small fixed fee, then a known price</td></tr><tr><th>Overrun risk</th><td>Vendor</td><td>Buyer</td><td>Vendor, on a scope both sides understand</td></tr><tr><th>Scope changes</th><td>Change requests</td><td>Any time</td><td>Change requests, with the riskiest unknowns already resolved</td></tr><tr><th>Main risk</th><td>A padded price, or cut corners</td><td>Hours grow without progress</td><td>Two weeks before the build starts</td></tr><tr><th>Best for</th><td>Well-understood products</td><td>Research and evolving roadmaps</td><td>Most new products, apps and AI agents</td></tr></tbody></table></div>
<h2>What the contract definitions say</h2>
<p>The U.S. government’s procurement rules state the trade-off more bluntly than most vendors do. They govern federal contracts, not private ones, but they are a neutral reference written from the buyer’s side, not a vendor’s.</p>
<ul>
<li><span><strong>Fixed price.</strong> FAR 16.202-1 says a firm-fixed-price contract “places upon the contractor maximum risk and full responsibility for all costs and resulting profit or loss”.</span></li>
<li><span><strong>Time and materials.</strong> FAR 16.601 says a time-and-materials contract may be used “only when it is not possible at the time of placing the contract to estimate accurately” the extent or duration of the work. It must also carry a ceiling price, and a contractor that goes past the ceiling does so at its own risk.</span></li>
</ul>
<p>Read together, the rule is simple. Time and materials is the exception for work nobody can estimate, and even then the buyer gets a cap.</p>
<h2>A worked example: the same overrun under each model</h2>
<p>Take a build estimated at $60,000 and apply the overruns from the Flyvbjerg and Budzier study above: 27% on an average project, and about 200% on the one project in six that becomes a black swan. The figures are illustrative arithmetic, not a client case.</p>
<div><p><em>What the buyer pays on a $60,000 estimate (illustrative)</em></p>
<table><thead><tr><th>Model</th><th>On estimate</th><th>Average overrun (27%)</th><th>Black-swan overrun (200%)</th><th>Who absorbs the rest</th></tr></thead><tbody><tr><th>Time and materials</th><td>$60,000</td><td>$76,200</td><td>$180,000</td><td>Nobody: the buyer pays it all</td></tr><tr><th>Capped T&amp;M, cap $72,000</th><td>$60,000</td><td>$72,000</td><td>$72,000</td><td>The vendor, or the scope, depending on the cap clause</td></tr><tr><th>Fixed price</th><td>The quote</td><td>The quote</td><td>The quote</td><td>The vendor; approved change requests excepted</td></tr><tr><th>Discovery, then fixed price</th><td>Fee plus quote</td><td>Fee plus quote</td><td>Fee plus quote</td><td>The vendor, on a scope discovery has tested</td></tr></tbody></table></div>
<p>The arithmetic: $60,000 × 1.27 = $76,200, and $60,000 × 3 = $180,000. The cap of $72,000 is 120% of the estimate, a figure we picked for the example.</p>
<p>Two things the table hides. A fixed quote on a poorly understood scope is often higher than $60,000, because the vendor prices in the black-swan risk it is taking on. And under a cap, a vendor that hits the ceiling with work unfinished has every reason to stop. The discovery row is the only one where the price is set after the biggest unknowns have been tested, which is why the quote can be both fixed and close to the real cost.</p>
<h2>When time and materials is the better choice</h2>
<p>Fixed price is not always right, and a vendor that says otherwise is selling. Time and materials, or a dedicated team on a monthly fee, fits better when:</p>
<ul>
<li><span>The work is research: you are exploring whether something is possible at all.</span></li>
<li><span>The roadmap is ongoing: a product team that reprioritizes every sprint will spend more time on change requests than on software.</span></li>
<li><span>You have strong in-house product leadership that wants to steer week by week.</span></li>
</ul>
<p>In those cases, protect the budget with short sprints, a demo at the end of each one, and the right to stop at any time.</p>
<h2>When fixed price works</h2>
<p>Fixed price works when both sides can describe what “done” looks like: the screens, the integrations, the data, the performance targets and the acceptance criteria. It fails when that description is guessed rather than known, because the vendor either pads the price heavily or protects its margin later by cutting corners. That is why the quote should come after discovery, not before.</p>
<p>The same holds for an app that already exists. If you built a prototype with an AI tool, an audit does the job of discovery, and our <a href="https://apptycoons.com/blog/vibe-coded-app-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">production-readiness checklist for AI-built apps</a> lists what it should test before anyone quotes the fix list.</p>
<figure><div><img alt="Illustrative curve of what both sides know over project time, rising steeply in the first two weeks. A quote set up front sits at the bottom, set when both sides know least. A quote set after a two-week discovery sits higher on the curve, after the riskiest unknowns are tested on real data." width="1280" height="926" src="https://apptycoons.com/assets/blog/fixed-price-software/quote-timing.webp"/></div><figcaption>Illustrative, not data: the same fixed price means more when it is set after discovery.</figcaption></figure>
<h2>Capped time and materials and other hybrids</h2>
<p>Most real contracts mix the two models, and the hybrids are often the best fit. Four are common:</p>
<ul>
<li><span><strong>Capped time and materials.</strong> Hourly billing with a not-to-exceed price, the private-sector version of the FAR ceiling. It protects the budget, but only if the contract says what happens at the cap: the vendor finishes at its own cost, or work stops and the remaining scope is renegotiated.</span></li>
<li><span><strong>Fixed price per milestone.</strong> The project is split into milestones, each with its own scope, acceptance criteria and price. Later milestones can be re-quoted once earlier ones have answered the open questions.</span></li>
<li><span><strong>Fixed-fee discovery, then fixed build.</strong> A short paid phase resolves the unknowns and produces the quote for the build. This is the structure we use, described below.</span></li>
<li><span><strong>Dedicated team.</strong> A monthly fee for a stable team that works through a backlog you prioritize. It replaces the fixed price when the roadmap is ongoing, and the protection is the right to stop at the end of any month.</span></li>
</ul>
<p>Pick the hybrid by where the unknowns are. Unknowns at the start favor discovery first; unknowns that only appear later favor milestone pricing; a roadmap that never ends favors a team.</p>
<h2>How milestone payments work on a fixed-price build</h2>
<p>On a fixed-price build, payments follow milestones, and each milestone is a working feature you have seen demoed, not a document or a percentage of hours. That keeps the vendor’s cash flow tied to software you can use.</p>
<figure><figcaption>Three things to agree per milestone</figcaption><ol><li><span><strong>Delivered</strong>: <span>A working feature, demoed</span></span></li><li><span><strong>Accepted</strong>: <span>The tests or behaviors that count as done</span></span></li><li><span><strong>Paid</strong>: <span>Payment follows acceptance</span></span></li></ol></figure>
<p>Agree three things per milestone before work on it starts: what is delivered, how it is accepted (the tests or behaviors that count as done) and what is paid. If a milestone slips, the payment slips with it.</p>
<blockquote><div>Watch out</div><p>Read the payment schedule</p><div>A schedule that pays most of the price up front, or that ties payments to dates instead of delivered features, turns a fixed price back into a time-based one.</div></blockquote>
<h2>Fixed price for AI projects</h2>
<p>AI work can be priced fixed, but the unknowns sit in different places. The model is rarely the risk. The data is: whether it exists, how clean it is, and whether the agent can reach the systems it needs. The other risk is the quality bar, so agree an evaluation set and a pass threshold before the build is quoted, or nobody can say when the work is done.</p>
<p>That makes discovery more important for AI than for a standard app, because the prototype is the only way to test both on real data. How AI agent budgets break down by agent type is covered in <a href="https://apptycoons.com/blog/ai-agent-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">AI agent development cost</a>, and why so many AI pilots never become products in <a href="https://apptycoons.com/blog/ai-pilots-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">AI pilots to production</a>.</p>
<h2>A better structure</h2>
<p>Split the work in two. First, a short fixed-fee discovery sprint that resolves the biggest unknowns and produces a prototype. Then a fixed-price build, quoted only once the scope is genuinely understood.</p>
<blockquote>“You shouldn’t pay for a vendor to learn your business on an open-ended clock.”</blockquote>
<p>This is how we sell our own work, and the details are on our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">pricing page</a>. The Discovery Sprint is a two-week, $5,000 fixed fee, credited to the build: workshops with a senior architect, a working prototype on your real data, an architecture and integration plan, and a fixed-price quote. The build that follows is $25k–$120k depending on scope, runs 6–16 weeks in two-week sprints with live demos, and includes 30 days of post-launch support. Scope is locked after discovery and changes go through change requests. For an ongoing roadmap, a dedicated team from $12k per month replaces the fixed price.</p>
<h2>What a discovery sprint should produce</h2>
<p>A discovery phase is only worth paying for if it leaves you with something you could take to any vendor. At the end of it you should have:</p>
<ul>
<li><span>A working prototype of the riskiest part of the product, built on your real data or systems.</span></li>
<li><span>An architecture and integration plan that names every external system, how it is accessed and what can go wrong.</span></li>
<li><span>A scope document with features, priorities and acceptance criteria, written in plain language.</span></li>
<li><span>A fixed price, a timeline and a milestone plan for the build.</span></li>
<li><span>A list of assumptions and open risks, each with an owner.</span></li>
</ul>
<p>If a vendor’s discovery ends with only slides and an estimate range, the unknowns are still there; they have just been moved into the build.</p>
<h2>How to compare quotes from different vendors</h2>
<p>Quotes are only comparable when they describe the same scope. Ask each vendor to price against the same scope document, and then compare what each one includes: testing, security review, deployment, documentation, post-launch support and who owns the code. A low hourly rate multiplied by an open number of hours is not a lower price, and a fixed quote that excludes testing is not a fixed price.</p>
<h2>How to keep a fixed-price project on track</h2>
<ul>
<li><span>Demand a live demo every two weeks.</span></li>
<li><span>Keep the code in your own repository from day one.</span></li>
<li><span>Tie milestones to working features, not documents.</span></li>
</ul>
<p>Add two more. Write acceptance criteria for each milestone before work on it starts, so “done” is never a negotiation. And agree the change-request process at the start: who can raise a change, how it is estimated, and that nothing outside the agreed scope is built until you have approved its price.</p>
<h2>Questions to ask any vendor before you sign</h2>
<ul>
<li><span>What happens to the price if your estimate is wrong?</span></li>
<li><span>What exactly will the discovery phase produce, and do we own it if we stop there?</span></li>
<li><span>How are milestones defined, and what do we see at each one?</span></li>
<li><span>How are scope changes estimated and approved?</span></li>
<li><span>Where does the code live, and who owns the IP?</span></li>
<li><span>What support is included after launch, and what does it cost afterwards?</span></li>
</ul>
<p>A good vendor answers each in a sentence. For AI work specifically, we have written a fuller checklist on <a href="https://apptycoons.com/blog/how-to-evaluate-ai-agent-development-company?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">how to evaluate an AI agent development company</a>.</p>
<p>The same buy-or-commission logic applies before any contract is signed. Sometimes the cheapest fixed price is no build at all; our <a href="https://apptycoons.com/blog/build-vs-buy-affiliate-tracking?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">build vs buy analysis for affiliate tracking</a> shows that comparison on one product category, and our <a href="https://apptycoons.com/services/web-app-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">web app development</a> page shows how we scope custom web builds when building does win.</p><div><h2>Sources</h2><ol><li><a href="https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/delivering-large-scale-it-projects-on-time-on-budget-and-on-value" rel="noopener">Delivering large-scale IT projects on time, on budget, and on value</a><span>, McKinsey &amp; Company with the University of Oxford</span></li><li><a href="https://arxiv.org/abs/1304.0265" rel="noopener">Why Your IT Project May Be Riskier Than You Think</a><span>, Flyvbjerg &amp; Budzier, Harvard Business Review (2011), via arXiv</span></li><li><a href="https://www.acquisition.gov/far/16.202-1" rel="noopener">FAR 16.202-1: Firm-fixed-price contracts</a><span>, Acquisition.gov</span></li><li><a href="https://www.acquisition.gov/far/16.601" rel="noopener">FAR 16.601: Time-and-materials contracts</a><span>, Acquisition.gov</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/fixed-price-software?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=fixed-price-software">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>RAG vs. fine-tuning: choosing an enterprise LLM architecture</title><link>https://apptycoons.com/blog/rag-vs-fine-tuning</link><guid isPermaLink="true">https://apptycoons.com/blog/rag-vs-fine-tuning</guid><pubDate>Wed, 12 Aug 2026 12:00:00 GMT</pubDate><category>Engineering</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>At 10,000 questions a month, RAG costs about $80 to $160 in tokens; sending a 150,000-token handbook with every question costs about $3,000. A decision guide with the math.</description><media:content url="https://apptycoons.com/blog/rag-vs-fine-tuning/opengraph-image?7c34022a7f116f81" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Use RAG when answers must come from private, changing documents, with citations and per-user access rules. Use long context when a small, stable set of documents fits in the prompt. Fine-tune to change behavior, such as format, tone or classification, not to add facts. Many production systems combine retrieval with prompting, and fine-tune last.</p>
<p>Sending a 150,000-token handbook with every question costs about $3,000 a month on Claude Sonnet 5.5 at 10,000 questions. Retrieving only the right passages costs about $160 on the same model, and prompt caching brings the handbook approach down to about $550 on Sonnet 5.5, or $340 on Haiku 4.5. The third option, fine-tuning, got harder to reach in 2026: OpenAI is winding down its fine-tuning platform.</p>
<p>So the old question, retrieve or retrain, now has three answers, and each wins somewhere. Many production systems combine two.</p>
<h2>The short answer: retrieve facts, tune behavior</h2>
<p>Use retrieval-augmented generation (RAG) to give a model knowledge, and fine-tuning to change how it behaves. Long context sits in between: it works well when the knowledge is small and stable enough to send with every request.</p>
<p>The research backs the first half of that rule. When Ovadia and colleagues compared the two methods for injecting knowledge, RAG consistently outperformed unsupervised fine-tuning, both for facts the model had seen in training and for entirely new ones. Models struggle to learn new facts from fine-tuning alone. Fine-tuning earns its place elsewhere: format, tone, classification and cost.</p>
<figure><div><img alt="Decision tree. What does the model lack? Knowledge: if it is under about 200,000 tokens (500 pages) and stable, use long context with prompt caching; if not, use RAG, which cites sources and filters by user. Behavior (format, tone or cost): if prompts get there, use careful instructions; if not, fine-tune, only where evaluations show a gap. Many production systems combine two." width="1280" height="1086" src="https://apptycoons.com/assets/blog/rag-vs-fine-tuning/decision.webp"/></div><figcaption>Retrieval for facts, instructions for behavior, and tuning only where evaluations show a gap.</figcaption></figure><h2>When retrieval (RAG) wins</h2>
<ul>
<li><span>Your knowledge changes weekly or daily.</span></li>
<li><span>Answers must cite a source document.</span></li>
<li><span>Access rules differ by user or team.</span></li>
</ul>
<p>RAG searches your documents at request time and gives the model only the passages it needs. That has three practical effects. Updating knowledge means re-indexing a document, not retraining a model. Every answer can point back to the passage it came from, which is what auditors, lawyers and analysts ask for first. And because retrieval runs per request, it can filter by the user’s permissions before the model sees anything.</p>
<p>Our <a href="https://apptycoons.com/work/relm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">Relm</a> build shows the pattern. Analysts upload rent rolls, offering memorandums, P&amp;Ls and leases; Relm reads them with OCR, indexes them for vector search, and links every finding in its reports back to the record it came from. That traceability is the reason to choose retrieval: a commercial real estate analyst will not act on a number nobody can check.</p>
<h2>When long context is enough</h2>
<p>If the material is small and stable, skip the retrieval pipeline and put it in the prompt. Anthropic’s guidance is specific: a knowledge base under about 200,000 tokens, roughly 500 pages, can be included in the prompt whole, and prompt caching makes that much faster and cheaper on repeated requests.</p>
<p>Long context has limits that matter in enterprise work:</p>
<ul>
<li><span>Cost per query: you pay for every token on every request, so a large context sent thousands of times a day gets expensive, even with caching.</span></li>
<li><span>Attention: the “Lost in the Middle” study by Liu and colleagues found that models use information at the start or end of a long input much better than information buried in the middle.</span></li>
<li><span>Permissions: one shared prompt cannot easily respect different access rules for different users.</span></li>
<li><span>Citations: pointing to the exact source passage is harder when the model read everything at once.</span></li>
</ul>
<p>Long context is a good fit for a policy assistant over one handbook, or a contract review tool that reads one agreement at a time. It is a poor fit for a company-wide assistant over thousands of permissioned documents.</p>
<h2>When fine-tuning wins</h2>
<ul>
<li><span>You need a consistent format, tone or classification behavior.</span></li>
<li><span>Latency or cost demands a smaller model.</span></li>
<li><span>The task is narrow and examples are plentiful.</span></li>
</ul>
<p>Fine-tuning trains a model on examples of the inputs and outputs you want. It is the right tool when prompting cannot reliably produce a strict JSON schema, a house writing style, or a classification label across thousands of edge cases. It can also move a task that works on a large model to a smaller, cheaper and faster one, which matters for voice agents and high-volume pipelines.</p>
<p>OpenAI’s own guidance puts fine-tuning last in the sequence: start with evaluations and prompt engineering, which may be all you need, and fine-tune when prompting alone does not deliver the behavior or performance required. The same guide now notes that OpenAI is winding down the fine-tuning platform, so for new teams that last step happens somewhere else. We follow the same order. Fine-tuning before you have an evaluation set means you cannot tell whether it helped.</p>
<h2>What OpenAI’s fine-tuning wind-down changes</h2>
<p>It removes the easiest self-serve path to a tuned GPT model, and it makes “prompt, retrieve, evaluate, tune last” the default for anyone starting now. OpenAI’s pricing page, checked October 18, 2026, says the company “is winding down the fine-tuning platform.” The platform is no longer open to new users. Existing users can create training jobs for the coming months, and fine-tuned models stay available for inference until their base models are deprecated.</p>
<figure><figcaption>The default order for anyone starting now</figcaption><ol><li><span><strong>Prompt</strong>: <span>Instructions and examples first</span></span></li><li><span><strong>Retrieve</strong>: <span>Add RAG for the facts</span></span></li><li><span><strong>Evaluate</strong>: <span>Real questions, expected answers</span></span></li><li><span><strong>Tune last</strong>: <span>Only where evaluations show a gap</span></span></li></ol></figure>
<p>Three practical consequences for an architecture decision:</p>
<ul>
<li><span>A plan that depends on fine-tuning a GPT model needs an account that already has fine-tuning access, and an exit date for that model.</span></li>
<li><span>A tuned model now carries a retirement risk tied to its base model. Keep the training data and the evaluation set, because they are what let you rebuild the behavior on another model.</span></li>
<li><span>Teams that need tuning will do it with another provider or an open-weight model they host. That adds hosting and evaluation work, which is one more reason to prove that prompting and retrieval fall short first.</span></li>
</ul>
<blockquote><div>Watch out</div><p>A tuned model now has an exit date</p><div>Fine-tuned GPT models stay available only until their base models are deprecated. Keep the training data and the evaluation set, or there is nothing to rebuild the behavior from.</div></blockquote>
<p>None of this changes the research above. Retrieval was already the better way to add knowledge; the wind-down only raises the cost of reaching for tuning early.</p>
<h2>A decision table for enterprise LLM architecture</h2>
<div><p><em>Which approach fits which situation</em></p>
<table><thead><tr><th>Situation</th><th>Best fit</th><th>Why</th></tr></thead><tbody><tr><th>Large document set that changes often</th><td>RAG</td><td>Re-index instead of retraining; cost grows with the passages retrieved, not the whole corpus</td></tr><tr><th>Answers must cite their source</th><td>RAG</td><td>Each answer links to the passages it used</td></tr><tr><th>Different users may see different documents</th><td>RAG</td><td>Filter by permission before the model reads anything</td></tr><tr><th>One small, stable reference set</th><td>Long context</td><td>No retrieval pipeline to build; prompt caching keeps repeat queries cheap</td></tr><tr><th>Reasoning across a whole document at once</th><td>Long context</td><td>The model sees the full text, not fragments</td></tr><tr><th>Strict output format or house style</th><td>Fine-tuning</td><td>Teaches behavior that prompts do not hold reliably</td></tr><tr><th>High-volume task on a tight latency or cost budget</th><td>Fine-tuning</td><td>Moves the task to a smaller, faster model</td></tr><tr><th>Company assistant over permissioned knowledge</th><td>RAG plus prompting</td><td>Facts from retrieval, behavior from instructions; tune later only if evaluations show a gap</td></tr></tbody></table></div>
<h2>Can you combine RAG and fine-tuning?</h2>
<p>Yes. Retrieval supplies the facts at request time, and a tuned or carefully prompted model supplies the format and behavior. The two solve different problems, so they stack rather than compete.</p>
<blockquote>“Retrieval for facts, instructions for behavior, and tuning only where evaluations show a gap.”</blockquote>
<p>A typical enterprise assistant retrieves the relevant passages, sends them in a context window large enough to keep surrounding detail, and relies on careful instructions, or occasionally a tuned model, for format and tone. The architecture question is about which part of the problem each method should own.</p>
<p>Research has gone a step further and tuned models to use retrieval better. RAFT, from Zhang and colleagues (2024), trains a model on questions paired with retrieved documents, some of them deliberately irrelevant, and teaches it to ignore the documents that do not help and to quote the passage that does. The authors report that it consistently improved performance on PubMed, HotpotQA and Gorilla datasets in domain-specific RAG. The lesson for a buyer: if a tuned model is part of the design, tune it on retrieval-shaped examples from your own documents, not on the documents alone.</p>
<h2>What each approach costs to run at 10,000 queries a month</h2>
<p>At 10,000 queries a month, RAG costs about $80 to $160 in model tokens, long context over a 150,000-token reference set costs about $340 to $550 with caching and about $3,000 without, and a fine-tuned small model with retrieval costs about $61. The table shows the arithmetic, using list prices checked on October 18, 2026.</p>
<p>Assumptions: each RAG query sends 6,000 input tokens of question, instructions and retrieved passages and returns 400 output tokens, the same figures as our <a href="https://apptycoons.com/blog/rag-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">RAG development cost</a> model. Each long-context query sends the full 150,000-token reference set plus a 100-token question and returns 400 tokens. Traffic has gaps, so we assume the five-minute cache expires and is rewritten 1,000 times a month. Anthropic bills a five-minute cache write at 1.25 times the input price and a cache hit at 0.1 times, except on Claude Sonnet 5.5 and Opus 5.5, where a hit costs 0.05 times.</p>
<div><p><em>Monthly model cost, 10,000 queries (list prices checked Oct 18, 2026)</em></p>
<table><thead><tr><th>Approach</th><th>Calculation per query</th><th>Per month</th></tr></thead><tbody><tr><th>RAG, Claude Haiku 4.5</th><td>6,000 × $1 + 400 × $5, per million tokens</td><td>about $80</td></tr><tr><th>RAG, Claude Sonnet 5.5</th><td>6,000 × $2 + 400 × $10, per million tokens</td><td>about $160</td></tr><tr><th>Long context, Haiku 4.5, cached</th><td>150,000 × $0.10 cache read on 9,000 queries, 150,000 × $1.25 cache write on the other 1,000; plus 100 × $1 + 400 × $5 on every query</td><td>about $340</td></tr><tr><th>Long context, Sonnet 5.5, cached</th><td>150,000 × $0.10 cache read on 9,000 queries, 150,000 × $2.50 cache write on the other 1,000; plus 100 × $2 + 400 × $10 on every query</td><td>about $550</td></tr><tr><th>Long context, Sonnet 5.5, no cache</th><td>150,100 × $2 + 400 × $10</td><td>about $3,040</td></tr><tr><th>Fine-tuned gpt-4.1-mini with RAG</th><td>6,000 × $0.80 + 400 × $3.20, per million tokens; training billed separately; existing fine-tuning users only</td><td>about $61</td></tr></tbody></table></div>
<p>Two things the table hides. RAG and the tuned model also need a vector store and the engineering to build retrieval, while long context needs almost none; that build cost is what the per-query saving pays back. And a fine-tuned model still needs retrieval for facts, which is why it appears with RAG rather than alone. For how these run costs sit next to the build price of a whole agent, see <a href="https://apptycoons.com/blog/ai-agent-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">AI agent development cost</a>.</p>
<p>Latency follows the same pattern. Retrieval adds a search step, usually small next to generation. Prompts of hundreds of thousands of tokens slow the first token. A smaller tuned model is often the fastest option of all, which is why fine-tuning matters most in latency-sensitive products such as <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">voice agents</a>.</p>
<h2>Retrieval quality decides how accurate a RAG system is</h2>
<p>When a RAG system gives a wrong answer, the cause is usually that it retrieved the wrong passage, not that the model reasoned badly. Retrieval is worth engineering properly. Anthropic reported that adding context to each chunk before indexing, combined with keyword search, reduced top-20 retrieval failures by 49% in its tests, and by 67% with a reranking step. The exact numbers will differ on your data, but the lesson holds: chunking, hybrid search and reranking move accuracy more than swapping the model.</p>
<h2>Build evaluations first</h2>
<p>Whichever you choose, build evaluations first. A set of real questions with expected answers is what lets you swap models safely when a better or cheaper one ships.</p>
<figure><figcaption>Building an evaluation set</figcaption><ol><li><span><strong>Collect real questions</strong>: <span>Start with fifty to a hundred questions your users ask, the documents that answer them, and what a correct answer looks like.</span></span></li><li><span><strong>Score two things</strong>: <span>Score retrieval and answers separately, so you know which part to fix.</span></span></li><li><span><strong>Rerun on every change</strong>: <span>Run the set on every change to prompts, chunking, models or tuning data.</span></span></li></ol></figure>
<p>It is the cheapest part of the project and the one that makes every later decision measurable.</p>
<p>If you are choosing an architecture for private data, our <a href="https://apptycoons.com/services/enterprise-llm?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">enterprise LLM and RAG development</a> work starts with exactly this: your documents, your access rules and an evaluation set, before any model is chosen, and <a href="https://apptycoons.com/blog/rag-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">RAG development cost</a> explains what drives the price. For why so many AI projects stall after the demo, read <a href="https://apptycoons.com/blog/ai-pilots-to-production?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">why AI pilots stall before production</a>.</p><div><h2>Sources</h2><ol><li><a href="https://arxiv.org/abs/2312.05934" rel="noopener">Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs</a><span>, arXiv (Ovadia et al., 2023)</span></li><li><a href="https://arxiv.org/abs/2307.03172" rel="noopener">Lost in the Middle: How Language Models Use Long Contexts</a><span>, arXiv (Liu et al., 2023)</span></li><li><a href="https://www.anthropic.com/news/contextual-retrieval" rel="noopener">Introducing Contextual Retrieval</a><span>, Anthropic</span></li><li><a href="https://developers.openai.com/api/docs/guides/model-optimization" rel="noopener">Model optimization</a><span>, OpenAI API docs</span></li><li><a href="https://developers.openai.com/api/docs/pricing" rel="noopener">OpenAI API pricing</a><span>, OpenAI</span></li><li><a href="https://platform.claude.com/docs/en/about-claude/pricing" rel="noopener">Claude API pricing</a><span>, Anthropic</span></li><li><a href="https://arxiv.org/abs/2403.10131" rel="noopener">RAFT: Adapting Language Model to Domain Specific RAG</a><span>, arXiv (Zhang et al., 2024)</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/rag-vs-fine-tuning?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=rag-vs-fine-tuning">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Why sub-second latency makes or breaks a voice agent</title><link>https://apptycoons.com/blog/voice-agent-latency</link><guid isPermaLink="true">https://apptycoons.com/blog/voice-agent-latency</guid><pubDate>Thu, 30 Jul 2026 12:00:00 GMT</pubDate><category>Voice agents</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>Callers judge an AI agent in the pause before it speaks. Here is where those milliseconds go.</description><media:content url="https://apptycoons.com/blog/voice-agent-latency/opengraph-image?ac7d6521acbe9099" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Aim for the agent to start speaking within about one second of the caller finishing, and faster where you can. People leave gaps of roughly 200 ms between turns, so longer silences feel like a broken line. Measure from the end of the caller’s speech to the first audio they hear, at the median and the 95th percentile.</p>
<p>In conversation, people leave about 200 ms between turns. When an agent takes two seconds to respond, callers start talking over it — or hang up.</p>
<p>That pause is the first thing a caller judges, before they notice the voice or what the agent says, and most of it can be engineered away.</p>
<h2>How fast should a voice agent respond?</h2>
<p>A voice agent should start speaking within about one second of the caller finishing, and faster is noticeably better. That target comes from how people talk to each other, not from what the technology finds easy.</p>
<p>Conversation research is consistent here. Levinson and Torreira summarize it as gaps between turns “of the order of 200 ms”, while the time a person needs to plan even a short utterance is over 600 ms. People manage this by predicting how the other speaker will finish and preparing a reply while they are still listening. A comparison of ten languages by Stivers and colleagues found the same pattern everywhere: speakers avoid overlap and minimize silence, and the average gap varies by language only within about 250 ms of the cross-language mean.</p>
<p>The phone network has its own guideline. ITU-T G.114 sets a target of 150 ms one-way delay for most voice uses, before any AI is involved. Together, these numbers explain why a two-second silence feels broken: it is roughly ten times longer than the gap a caller expects.</p><h2>Where the time goes</h2>
<figure><figcaption>Where one turn’s time goes, in order</figcaption><ol><li><span><strong>Network in</strong>: <span>Caller audio reaches your services</span></span></li><li><span><strong>Speech to text</strong>: <span>Finishing the caller’s sentence</span></span></li><li><span><strong>Language model</strong>: <span>Deciding what to say or which tool to call</span></span></li><li><span><strong>Text to speech</strong>: <span>Producing the first audio</span></span></li><li><span><strong>Network out</strong>: <span>Audio travels back to the caller, plus the network hops between each service</span></span></li></ol></figure>
<p>Each item hides a further delay. Before transcription can finish, the system has to decide that the caller has stopped talking. The model’s first token arrives quickly, but a long system prompt, a large model or a tool call can push the first useful sentence much later. Speech synthesis needs a full phrase to sound natural. And on a phone call, audio travels from the carrier to your telephony provider, then to each AI service and back, so a service hosted far from the others adds a round trip on every turn.</p>
<p>Mid-call lookups belong in the same budget: when a dealership booking agent loads a vehicle’s service menu or checks open slots during an <a href="https://apptycoons.com/blog/xtime-api-integration?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">Xtime API integration</a>, each request is a tool call inside the caller’s turn, and the caller waits through it.</p>
<h2>A latency budget, stage by stage</h2>
<p>A one-second target only works if each stage has its own share of it, written down before the build. The table splits a turn into stages, with the published figure for each where one exists, checked October 18, 2026, and how to measure the rest.</p>
<div><p><em>Latency budget for one voice agent turn (published figures checked October 18, 2026)</em></p>
<table><thead><tr><th>Stage</th><th>Published figure</th><th>What the figure covers</th><th>How to measure it on your calls</th></tr></thead><tbody><tr><th>Phone network, each direction</th><td>150 ms one-way target (ITU-T G.114)</td><td>Mouth-to-ear delay for most voice uses</td><td>Carrier and telephony timestamps on test calls</td></tr><tr><th>End-of-turn detection</th><td>500 ms silence in OpenAI’s example VAD setting</td><td>An example configuration, not a default</td><td>Time from the caller’s last word to the turn-end event</td></tr><tr><th>Speech-to-text final</th><td>No comparable figure</td><td>Depends on model, audio and region</td><td>Turn-end event to final transcript</td></tr><tr><th>Language model</th><td>No comparable figure</td><td>Depends on model, prompt length and load</td><td>Transcript to first complete sentence</td></tr><tr><th>Tool calls</th><td>Your own APIs</td><td>Lookups in your systems</td><td>Request to response, per tool</td></tr><tr><th>Text-to-speech first audio</th><td>About 75 ms for ElevenLabs Flash v2.5</td><td>Model only, excluding application and network latency</td><td>Sentence sent to first audio byte</td></tr></tbody></table></div>
<p>The table shows why the fixed parts matter. With the network at the G.114 limit in both directions and a 500 ms silence threshold, those two items alone take 800 ms (150 + 150 + 500), before transcription, the model or speech start. That is illustrative arithmetic, not a measurement, but it is why end-of-turn tuning and same-region hosting do more for latency than swapping models.</p>
<figure><div><img alt="A one-second turn as a bar: 150 ms network in, 500 ms end-of-turn silence, 200 ms left for everything else, then 150 ms network out" width="1280" height="722" src="https://apptycoons.com/assets/blog/voice-agent-latency/budget.webp"/></div><figcaption>150 + 150 + 500 = 800 ms before transcription, the model or speech start.</figcaption></figure>
<h2>Why vendor latency numbers don’t add up</h2>
<p>Vendor latency figures usually measure one model in isolation, while the caller hears the whole chain. ElevenLabs is explicit about this: its models page lists Flash v2.5 at about 75 ms and marks the figure as excluding application and network latency.</p>
<p>That is a fair way to describe a model, and it is the right comparison between models. It is not what a caller experiences. Add up model-only figures for speech-to-text, the language model and text-to-speech, and the sum still leaves out end-of-turn detection, the phone network, the hops between services and any tool call. Those are the stages that set the pause a caller hears.</p>
<p>When a vendor quotes a latency number, ask three questions: which stages it covers, whether it is a median or a 95th percentile, and whether it was measured on a phone call or in a browser.</p>
<h2>End-of-turn detection is the hidden delay</h2>
<p>The most overlooked delay is deciding when the caller has finished. A simple voice activity detector waits for a fixed stretch of silence before it ends the turn. OpenAI’s documentation for its realtime API describes the trade-off directly: with a shorter silence duration, turns are detected more quickly. Set it too short, and the agent interrupts people who pause mid-sentence; set it too long, and every reply starts late.</p>
<p>Newer approaches look at meaning as well as silence. LiveKit’s agent framework, for example, uses a turn detector model that predicts the end of a turn from both what was said and how it sounded, on top of voice activity detection, and can adapt its delay to the caller’s own pauses. OpenAI offers a semantic mode with an adjustable eagerness setting. Neither removes the trade-off, but both let the agent answer quickly when a sentence is clearly complete and wait when it is not.</p>
<h2>What we measured: turn detection is most of the wait</h2>
<p>We measured this ourselves in October 2026. A scripted caller (six turns booking a dental appointment) talked to OpenAI’s realtime API over a server WebSocket from a US cloud machine: 30 turns per model and setting, audio streamed at real-time pace, timed from the end of each caller clip to the first audio of the reply.</p>
<p>| Model and turn detection | Median wait | 90th percentile | Model, after the turn ended |
|---|---|---|---|
| gpt-realtime-2.1, semantic (default) | 4.5 s | 4.9 s | 0.71 s |
| gpt-realtime-2.1, semantic, eagerness high | 2.6 s | 3.2 s | 0.72 s |
| gpt-realtime-2.1, 500 ms silence | 1.0 s | 1.3 s | 0.65 s |
| gpt-realtime-2.1-mini, semantic (default) | 4.5 s | 4.8 s | 0.58 s |
| gpt-realtime-2.1-mini, 500 ms silence | 0.9 s | 1.1 s | 0.58 s |</p>
<p>Our caller clips ended about 0.35 s after the last spoken word, so add that much to get the wait from the caller’s last word. The model itself answered in about 0.6 to 0.7 s in every setting. The difference is the turn detector: in its default mode it waited around 4 seconds before deciding our caller had finished, while a plain 500 ms silence rule cut the whole wait to about one second. The trade-off from the previous section still applies, so test the faster setting with callers who pause mid-sentence.</p>
<p>At list prices the two models cost about $0.078 and $0.023 per minute of talk in these runs, before telephony and hosting; our <a href="https://apptycoons.com/tools/ai-voice-agent-pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">AI voice agent pricing tracker</a> compares that with Vapi, Retell and other platforms. You can hear the 500 ms setup, and see your own reply times, in our <a href="https://apptycoons.com/ai-voice-agents/demo?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">live voice agent demo</a>.</p>
<h2>How to cut latency without making the agent worse</h2>
<p>We stream every stage, start speaking before the full response is generated, and run tool calls in parallel with filler acknowledgements — so the agent feels present even while it works.</p>
<p>That comes down to six choices:</p>
<ul>
<li><span>Stream transcription, generation and speech, so each stage starts on partial output instead of waiting for the previous one to finish.</span></li>
<li><span>Send the first sentence to speech synthesis as soon as it is complete, and keep generating the rest while it plays.</span></li>
<li><span>Keep the speech, model and telephony services in the same region, and keep connections warm between calls.</span></li>
<li><span>Keep the system prompt short and move rarely needed instructions into tools, so the model reads less on every turn.</span></li>
<li><span>Use a smaller, faster model for routing and simple turns, and a larger one only where reasoning is needed.</span></li>
<li><span>Cache data that does not change during a call, such as opening hours or the caller’s account, after the first lookup.</span></li>
</ul>
<p>None of these require a worse answer. The goal is to remove waiting, not thinking.</p>
<h2>Interruptions matter as much as speed</h2>
<p>A fast agent that cannot be interrupted still feels robotic. When a caller starts talking, the agent should stop speaking almost at once, keep what it heard, and respond to the interruption rather than finishing its script. Frameworks such as LiveKit pause agent speech when they detect the caller and can tell a real interruption from a backchannel like “uh-huh”, so the agent does not stop every time someone agrees with it.</p>
<p>Test this on purpose. Interrupt the agent mid-sentence, talk over it in a noisy room, and pause halfway through a long account number. These are the moments callers remember.</p>
<h2>Latency targets by call type</h2>
<p>Not every call needs the same speed, and the right target depends on what the caller is trying to do. A booking or FAQ call is made of short, scripted turns where speed is most of the experience. A discovery or sales call has longer answers where quality matters more than shaving a few hundred milliseconds.</p>
<ul>
<li><span><strong>Booking, FAQs and routing.</strong> Short questions and short answers. Aim for the fastest turns you can measure, a small fast model for most turns, and cached data such as opening hours.</span></li>
<li><span><strong>Account lookups and changes.</strong> The tool call dominates. Acknowledge at once (“Let me check that”), run the lookup in parallel, and set a budget per tool.</span></li>
<li><span><strong>Discovery, sales and support with judgment.</strong> Longer reasoning is acceptable if the agent signals it is thinking. Keep the first sentence fast and let the rest follow.</span></li>
<li><span><strong>Regulated calls,</strong> such as healthcare scheduling. A disclosure or confirmation step adds a turn by design; budget for it instead of cutting it. Our <a href="https://apptycoons.com/industries/healthcare?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">healthcare software development</a> page covers the privacy side of those calls.</span></li>
</ul>
<figure><figcaption>Example call (illustrative): acknowledge, then look up</figcaption><ol><li><strong>Caller:</strong> <span>Can I move my appointment to Friday?</span></li><li><strong>AI agent:</strong> <span>Let me check that.</span></li><li><strong>AI agent:</strong> <span>Friday has 10 am or 2 pm open. Which works better?</span></li><li><strong>Caller:</strong> <span>2 pm, please.</span></li></ol></figure>
<p>Whatever the type, measure the same way and report the median and the 95th percentile separately for each call flow.</p>
<h2>Platform or custom pipeline: who controls the latency?</h2>
<p>Hosted voice platforms such as Vapi and Retell assemble the pipeline for you: telephony, transcription, model and voice behind one API. That is the fastest way to a working agent, and for many call flows their latency is good enough. The trade-off is control. You choose from the vendors and regions the platform supports, and when a turn is slow, you can see less of why.</p>
<p>A custom pipeline, built on frameworks such as LiveKit or Pipecat, puts every stage under your control: where each service runs, which models handle which turns, how end-of-turn detection is tuned, and how tool calls are scheduled. It takes more engineering and more operational work. It is worth it when calls involve heavy lookups in your own systems, when data must stay in a specific region, or when volume makes per-minute platform fees a large line item. Same-region hosting does double duty there: it cuts a network hop on every turn and it is also how an agent keeps EU callers’ data in an EU region when a client asks for it; the transfer rules are explained in <a href="https://apptycoons.com/blog/eu-ai-act-gdpr-ai-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">EU AI Act and GDPR rules for AI agents</a>. The per-minute side of the decision is worked through in <a href="https://apptycoons.com/blog/ai-voice-agent-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">AI voice agent cost</a>. Whichever route you take, measure it the same way.</p>
<figure><figcaption>Who controls the latency</figcaption><div><div><div><p><strong>Hosted platform</strong> (Vapi, Retell)</p></div><ul><li>Fastest way to a working agent</li><li>Vendors and regions the platform supports</li><li>Less visibility into why a turn is slow</li></ul></div><div><div><p><strong>Custom pipeline</strong> (LiveKit, Pipecat)</p></div><ul><li>More engineering and operational work</li><li>You choose where each service runs</li><li>Every stage under your control</li></ul></div></div></figure>
<h2>How to measure voice agent latency</h2>
<p>Measure what the caller hears, not what a dashboard reports. The number that matters is the time from the end of the caller’s speech to the first audio of the reply, recorded on a real phone call.</p>
<ul>
<li><span>Place test calls over the phone network, not only in a browser demo, because the carrier and telephony hops add delay a demo never sees.</span></li>
<li><span>Record both sides of the call and mark the end of caller speech and the start of agent audio.</span></li>
<li><span>Report the median and the 95th percentile across many turns; a good median with a slow tail still produces awkward calls.</span></li>
<li><span>Log each stage separately, so a slow turn points to transcription, the model, a tool or speech synthesis.</span></li>
<li><span>Repeat the test with background noise, accents and the longest tool calls in your flow.</span></li>
</ul>
<p>Run this test on your own call flows before launch, because a latency figure measured on a different script, network or vendor mix says little about your calls.</p>
<blockquote>“Latency isn’t a technical metric. It’s the difference between a conversation and a phone tree.”</blockquote>
<h2>What to do next</h2>
<p>If you are planning a voice agent, set a latency target alongside your business goals, and ask any vendor or platform how they measured theirs. Our <a href="https://apptycoons.com/ai-voice-agents?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">AI voice agent development</a> work starts with your call flows, integrations and a latency budget for each one. To put a value on every answered call, read <a href="https://apptycoons.com/blog/cost-of-missed-calls?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">what missed calls really cost</a> or put your own call volume into the <a href="https://apptycoons.com/tools/ai-voice-agent-roi-calculator?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">AI voice agent ROI calculator</a>.</p><div><h2>Sources</h2><ol><li><a href="https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2015.00731/full" rel="noopener">Timing in turn-taking and its implications for processing models of language</a><span>, Frontiers in Psychology (Levinson &amp; Torreira, 2015)</span></li><li><a href="https://doi.org/10.1073/pnas.0903616106" rel="noopener">Universals and cultural variation in turn-taking in conversation</a><span>, PNAS (Stivers et al., 2009)</span></li><li><a href="https://www.twilio.com/docs/glossary/what-is-latency" rel="noopener">What is latency? (ITU-T G.114 one-way delay target)</a><span>, Twilio</span></li><li><a href="https://docs.livekit.io/agents/build/turns/" rel="noopener">Turn detection and interruptions</a><span>, LiveKit Agents docs</span></li><li><a href="https://developers.openai.com/api/docs/guides/realtime-vad" rel="noopener">Voice activity detection (VAD)</a><span>, OpenAI API docs</span></li><li><a href="https://elevenlabs.io/docs/models" rel="noopener">Models</a><span>, ElevenLabs docs</span></li><li><a href="https://developers.openai.com/api/docs/pricing" rel="noopener">API pricing (realtime and audio models)</a><span>, OpenAI</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/voice-agent-latency?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=voice-agent-latency">apptycoons.com</a>.</em></p>]]></content:encoded></item>
<item><title>Native or cross-platform in 2026? A decision framework for founders</title><link>https://apptycoons.com/blog/native-vs-cross-platform</link><guid isPermaLink="true">https://apptycoons.com/blog/native-vs-cross-platform</guid><pubDate>Wed, 15 Jul 2026 12:00:00 GMT</pubDate><category>Engineering</category><dc:creator>Apptycoons Engineering Team</dc:creator><description>React Native, Flutter and Kotlin Multiplatform have matured. Native still wins in specific cases. A decision table, the cost drivers and the apps we shipped each way.</description><media:content url="https://apptycoons.com/blog/native-vs-cross-platform/opengraph-image?1c928229d4f84248" medium="image"/><content:encoded><![CDATA[<p><strong>Quick answer:</strong> Choose cross-platform, with React Native or Flutter, when the app is mainly forms, content, lists and payments and one team should ship both stores. Choose native when the product depends on Bluetooth hardware, real-time media, heavy animation or platform-specific design. Kotlin Multiplatform sits between them. Prototype the riskiest screen before committing.</p>
<p>Since August 31, 2026, every new Android app and every update submitted to Google Play must target Android 16. That rule lands on native and cross-platform apps alike, once a year, and it is a better place to start this decision than benchmark charts.</p>
<p>For most new products, cross-platform frameworks now deliver near-native quality with one codebase and one team. Native still wins when the app’s core feature lives close to the hardware. The decision is less about technology than about what your app has to do well, and this guide gives the table we use with clients, what each path changes in the quote and the apps we shipped each way.</p>
<h2>Native vs cross-platform at a glance</h2>
<p>Cross-platform means one codebase for iOS and Android; native means a Swift app and a Kotlin app; Kotlin Multiplatform shares logic and optionally the UI. A web app skips the stores entirely. Versions below were checked on October 18, 2026: React Native’s latest stable release is 0.87, and Flutter’s docs reflect Flutter 3.47.</p>
<div><p><em>Five ways to ship a mobile product (checked October 18, 2026)</em></p>
<table><thead><tr><th>Approach</th><th>Codebases</th><th>Team skills</th><th>Hardware and OS access</th><th>Best fit</th></tr></thead><tbody><tr><th>Native (Swift, Kotlin)</th><td>2</td><td>iOS and Android engineers</td><td>Full, on the day Apple or Google ships it</td><td>Bluetooth devices, real-time media, platform-first design</td></tr><tr><th>React Native 0.87</th><td>1, plus native modules</td><td>React and TypeScript</td><td>Through native modules</td><td>Business apps; teams that also ship a React web app</td></tr><tr><th>Flutter 3.47</th><td>1, plus platform channels</td><td>Dart</td><td>Through plugins and platform channels</td><td>Design-led apps that must look identical everywhere</td></tr><tr><th>Kotlin Multiplatform</th><td>Shared logic, native or shared UI</td><td>Kotlin</td><td>Full on the native side</td><td>Android-first teams adding iOS</td></tr><tr><th>Web app or PWA</th><td>1</td><td>Web</td><td>Limited; no Web Bluetooth in WebKit</td><td>Portals, internal tools, link-driven flows</td></tr></tbody></table></div>
<p>The “best fit” column is our judgment from builds, not a ranking of frameworks.</p><h2>Choose cross-platform when</h2>
<p>Cross-platform is the right default when speed to both stores matters most, the app is mainly forms, content, lists and payments, and one team will maintain it.</p>
<p>Most business apps fit this description: booking, banking, marketplaces, member portals and internal tools. One codebase means one set of features, one release cycle and one team to hire. Native modules are still available when a single feature needs them, so choosing cross-platform does not close the door on platform APIs.</p>
<h2>Choose native when</h2>
<p>Native is the safer choice when the product depends on deep hardware access, when performance is the product, or when platform-specific design is a competitive edge.</p>
<p>Hardware is the clearest case. For <a href="https://apptycoons.com/work/ohm-fitness?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">OHM Fitness</a> we built native iOS and Android apps that drive the 20 electrodes of an EMS suit over Bluetooth Low Energy, zone by zone, while the user trains. When a dropped connection can stop a workout, the Bluetooth code cannot behave slightly differently on one platform. We cover what that involves in <a href="https://apptycoons.com/blog/apps-that-control-hardware?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">building apps that control hardware</a>, and the device-to-cloud side in <a href="https://apptycoons.com/industries/iot?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">BLE companion app development</a>.</p>
<p>Other signals point the same way: camera pipelines that process frames live, background audio, widgets, watch apps and CarPlay, where each platform’s newest APIs arrive in Swift and Kotlin first.</p>
<figure><figcaption>Which path fits the product</figcaption><div><div><div><p><strong>Cross-platform</strong> (React Native, Flutter)</p></div><ul><li>Mainly forms, content, lists and payments</li><li>One codebase, one release cycle, one team</li><li>Native modules when a single feature needs them</li></ul></div><div><div><p><strong>Native</strong> (Swift, Kotlin)</p></div><ul><li>Bluetooth hardware, real-time media, heavy animation</li><li>Two codebases, two teams’ skills</li><li>Newest platform APIs arrive here first</li></ul></div></div></figure>
<h2>React Native vs Flutter</h2>
<p>Both frameworks are production-ready in 2026, and both have removed their old performance complaints. React Native has run its New Architecture by default since version 0.76, a rewrite of its internals the team worked on for six years. Flutter’s Impeller renderer precompiles shaders when the engine is built, which removes the runtime shader-compilation jank older Flutter apps were known for; it is the only renderer on iOS and the default on modern Android devices.</p>
<p>The practical differences are about people and design:</p>
<ul>
<li><span>React Native uses React and TypeScript, so web teams can contribute and share business logic with a web app, and it renders real platform components.</span></li>
<li><span>Flutter draws its own interface, so a highly custom design looks identical on every device, at the cost of working in Dart.</span></li>
<li><span>Both have mature libraries for payments, maps, notifications and analytics.</span></li>
</ul>
<p>If your team already writes React, React Native is usually the shorter path. If the product is design-led and you are hiring from scratch, Flutter is a strong option.</p>
<h2>Kotlin Multiplatform: the third option</h2>
<p>Kotlin Multiplatform shares business logic, such as networking, data models and validation, in Kotlin across Android and iOS, while each platform can keep its own native UI. Compose Multiplatform adds a shared UI layer on top, and JetBrains declared it stable and production-ready for iOS in version 1.8.0, in May 2025.</p>
<p>It suits a team that already has a strong Android app in Kotlin and wants iOS without a second codebase for the logic. It suits a web-first team less well, because nothing is shared with a React frontend. Treat it as a way to share the parts of an app that should never differ between platforms, such as pricing rules or a sync engine, rather than as a replacement for React Native or Flutter on every project.</p>
<h2>Is cross-platform cheaper? What changes in the quote</h2>
<p>Cross-platform is usually cheaper for screen-heavy apps, but rarely half the cost of two native apps.</p>
<blockquote><div>Note</div><p>Rarely half the cost</p><div>One codebase saves on screens, business logic and API work. Testing, store submission, device quirks and native modules are still done per platform.</div></blockquote>
<p>When we quote a mobile build, these are the drivers that move the price, whichever path you pick:</p>
<ul>
<li><span><strong>Platform count.</strong> iOS and Android, plus a web app if users need one. Each platform adds testing and release work even with a shared codebase.</span></li>
<li><span><strong>Native surface.</strong> Every feature that needs native code, such as Bluetooth, background tasks or a camera pipeline, is built and tested twice.</span></li>
<li><span><strong>Design fidelity.</strong> A design that follows each platform’s conventions is cheaper than a custom one that must look identical everywhere.</span></li>
<li><span><strong>Device testing.</strong> The range of phones and OS versions your users own, and how much of the app depends on them.</span></li>
<li><span><strong>Integrations.</strong> Payments, banking partners, streaming or device firmware usually cost more than the screens.</span></li>
</ul>
<p>On our <a href="https://apptycoons.com/pricing?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">pricing</a>, a mobile app is a Fixed-Price Build inside the $25k–$120k band, delivered in 6–16 weeks. A cross-platform app with standard integrations tends to sit lower in that band than a native app with a hardware layer. That is a pattern from our builds, not a quote; the number comes after discovery. For a worked example of how integrations drive a mobile budget, see <a href="https://apptycoons.com/blog/fintech-app-development-cost?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">fintech app development cost</a>.</p>
<h2>When a web app or PWA is enough</h2>
<p>Skip the app stores when users arrive from a link, use the product occasionally and need nothing a browser cannot do. Internal tools, B2B portals, admin back offices and one-off payment or sign-up flows are usually better as web apps: no store review, one deploy, and no update the user has to install.</p>
<p>Switch shows where the line falls. Its shared accounts and cards live in iOS and Android apps, but MoneyPools, its payment-collection links, open in any browser without an install, because the person paying is often not a Switch user and should not have to install an app to pay.</p>
<p>A store app earns its cost when users come back weekly, need push notifications or background work, or touch hardware. Bluetooth is the clearest example on iPhone: WebKit, the engine behind every iOS browser, has declined to ship Web Bluetooth, so a device companion for iPhone users has to be an app.</p>
<h2>Maintenance: the cost after launch</h2>
<p>Every mobile app needs work each year even if no feature changes. Apple and Google ship a major OS release every year, store policies change, and SDKs deprecate old APIs.</p>
<p>A cross-platform app has one upgrade path for the shared code, but its framework version becomes one more dependency to keep current, and every native module is upgraded on both platforms. A native app has two upgrade paths and no framework layer in between. Neither is free. Budget for an upgrade cycle every year, and treat a framework that is three major versions behind as technical debt, not a stable choice.</p>
<blockquote><div>Watch out</div><p>Google Play’s yearly deadline</p><div>Google Play enforces the yearly cycle directly. From August 31, 2026, new apps and updates must target Android 16 (API level 36). Existing apps must target at least Android 15 to stay available to new users on newer devices.</div></blockquote>
<p>Subscription apps add one more recurring cost: the store fee on every renewal. How those fees interact with creator or partner payouts is covered in our guide to <a href="https://apptycoons.com/blog/creator-platform-revenue-share?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">store fees on subscriptions and creator revenue share</a>.</p>
<h2>Real apps and the path we chose</h2>
<p>Each of these was a product decision first and a framework decision second:</p>
<ul>
<li><span><strong>OHM Fitness: native iOS and Android.</strong> Live control of a wearable suit is the product, so the Bluetooth layer was written in each platform’s own language.</span></li>
<li><span><strong><a href="https://apptycoons.com/work/switch?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">Switch</a>: React Native for iOS and Android, plus web.</strong> Shared banking for clubs and teams, with cards, roles and permissions in one React Native codebase for both apps, and MoneyPools on the web for people who will never download them.</span></li>
<li><span><strong><a href="https://apptycoons.com/work/dubcam?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">DubCam</a>: iOS and Android apps plus web.</strong> Programs go live from a phone and fans watch and subscribe, so the platforms follow where fans already are.</span></li>
</ul>
<p>Our <a href="https://apptycoons.com/services/mobile-app-development?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">mobile app development</a> team builds both ways, and the choice is made per product in discovery.</p>
<h2>How we make the call</h2>
<p>We make this call in discovery, with a prototype of the riskiest screen on real devices before the build starts. Five questions decide most cases:</p>
<ol>
<li><span>Does the core feature touch hardware, such as Bluetooth, a camera pipeline or background execution? If yes, lean native, or plan native modules from day one.</span></li>
<li><span>Is audio or video real-time? Live media pushes toward native or a cross-platform app with a native media layer.</span></li>
<li><span>What does the team already write? React and TypeScript point to React Native, Kotlin to Kotlin Multiplatform, a fresh hire to Flutter or React Native.</span></li>
<li><span>Is a web version needed? Sharing logic with a React web app is a strong argument for React Native.</span></li>
<li><span>Which screen is riskiest? Prototype that one. If it holds up on real devices, cross-platform is safe; if it doesn’t, you learned that in two weeks rather than after launch.</span></li>
</ol><div><h2>Sources</h2><ol><li><a href="https://reactnative.dev/versions" rel="noopener">React Native versions</a><span>, React Native</span></li><li><a href="https://reactnative.dev/blog/2024/10/23/release-0.76-new-architecture" rel="noopener">React Native 0.76: New Architecture by default</a><span>, React Native blog</span></li><li><a href="https://docs.flutter.dev/release/release-notes" rel="noopener">Flutter release notes</a><span>, Flutter docs</span></li><li><a href="https://docs.flutter.dev/perf/impeller" rel="noopener">Impeller rendering engine</a><span>, Flutter docs</span></li><li><a href="https://blog.jetbrains.com/kotlin/2025/05/compose-multiplatform-1-8-0-released-compose-multiplatform-for-ios-is-stable-and-production-ready/" rel="noopener">Compose Multiplatform 1.8.0 Released: Compose Multiplatform for iOS Is Stable and Production-Ready</a><span>, JetBrains</span></li><li><a href="https://webkit.org/tracking-prevention/" rel="noopener">Tracking Prevention in WebKit</a><span>, WebKit</span></li><li><a href="https://developer.android.com/google/play/requirements/target-sdk" rel="noopener">Meet Google Play&#x27;s target API level requirement</a><span>, Android Developers</span></li></ol></div>
<p><em>Originally published at <a href="https://apptycoons.com/blog/native-vs-cross-platform?utm_source=devto&amp;utm_medium=article&amp;utm_campaign=native-vs-cross-platform">apptycoons.com</a>.</em></p>]]></content:encoded></item>
</channel>
</rss>
