On this page
- The question is not build or buy, it is which layer you own
- The Ownership Line
- Layer by layer, with the tell that you crossed the line
- Build and buy fail in different directions
- Wait is a real option, and it has exactly three conditions
- The three-year arithmetic, including the parts left out of the pitch
- Score every vendor on the way out, not on the way in
- A two-week bake-off instead of a six-month debate
- Definitions for the procurement conversation
The question is not build or buy, it is which layer you own
An AI system is a stack of six layers and you make a separate decision at each one. Rent the layers that are commodity and getting cheaper, which is the model, the runtime and the vector store. Own the layer that encodes your judgement: your evaluation harness, your labelled cases and your written process rules. That layer is the only part a vendor cannot rebuild for a competitor, and the only part that gets more valuable each month.
Teams that debate build against buy as a single choice tend to get the split exactly backwards. They build the chat interface, which is a commodity with a hundred adequate implementations, and they rent the evaluation, which means the vendor decides what good looks like for their business. Two years later they own a user interface anyone could have bought and none of the labelled data that would let them move.
There is a simple test for every layer. Ask what it would cost to move off it in twelve months, in weeks of engineering and in data you could not take with you. Where that answer is small, rent without much agonising. Where it is large, either own the layer or negotiate the exit before you sign, because the moment to secure your data export is while a salesperson still wants your signature.
- Rent the modelThe fastest-moving and least differentiating layer. Committing to one model as an architectural decision is a bet with poor odds.
- Own the evalsGolden cases, labels and written rules survive a vendor change and a model change. Nothing else in the stack does.
- Exit costThe decision rule for every layer: weeks of work to replace it, plus the data you would leave behind.
- Waiting is not freeIt has a monthly cost you can calculate and a data cost you cannot recover, because the labelled examples you did not collect this year do not exist next year.
The Ownership Line
Draw one line through the stack. Below it you rent and you accept somebody else's roadmap. Above it you own, you version, and you carry the maintenance. The line sits in the same place for almost every organisation, which is directly under the layer where your business judgement lives.
The Ownership Line
Six layers, bottom to top. Decide each one separately, and notice which of them you are currently deciding by accident.
Route model calls through one internal interface so the model identifier is configuration rather than architecture. Fine-tuning is an optimisation to reach for once prompting and retrieval have genuinely run out of room, and it trades flexibility for a snapshot you now maintain. The trade-off is worked through in when fine-tuning beats prompting.
Visual automation platforms are excellent for straightforward triggers and glue. The tell that you have outgrown one is unmistakable: you are building a state machine inside a node, your code nodes have grown past glue into logic, and you cannot review a change as a diff. That comparison is in n8n, Make or custom code.
Vector stores are commodity infrastructure and switching one is a few days of work. What is not commodity is your chunking strategy, your metadata schema, the filters you apply before search, and the retrieval evaluation that tells you whether the right passage came back at all. Rent the storage, keep those four in your repository.
This is where the line sits. Your golden cases, your grading rubric, your written rules for the disputed decisions and your prompt corpus are the compounding asset. They took expert hours to produce, they transfer to any model, and they are what turns a vendor swap from a rebuild into a reconfiguration. Never let them live only inside somebody else's console.
For internal users, a bought interface is almost always right and the argument for building one is usually aesthetic. When the interaction is the product and a customer sees it, the interface is differentiation and belongs to you. The awkward middle is an internal tool that later faces customers, so ask that question at design time rather than discovering it during a rebuild.
Use the vendor's connector for a system you both understand. Own the contract around it: the schema of what you send and receive, the idempotency key, the retry and backoff policy, and the dead letter path. Connectors get deprecated and rewritten. A written contract with tests against it means the replacement is a day of work rather than an incident.
Layer by layer, with the tell that you crossed the line
| Layer | Default | Why | The tell you have outgrown the default |
|---|---|---|---|
| Model | Rent | Moves faster than your release cycle and differentiates nothing | Latency, residency or cost pressure that a hosted option cannot meet |
| Runtime and orchestration | Rent | Triggers, queues and glue are solved problems | State machines inside nodes, and changes you cannot review as a diff |
| Retrieval index | Rent | Storage and search are commodity, swappable in days | Scale or filtering needs the hosted service will not express |
| Chunking, metadata, retrieval evals | Own | These decisions set answer quality more than the model choice does | You are already tuning them and cannot version what you tuned |
| Domain logic and evaluation | Own | Expert judgement, expensive to recreate, portable across vendors | Never rent this one. If it is currently rented, extract it first |
| Interface | Rent internally | Internal users want it to work, not to be yours | A customer sees it, or the interaction is the differentiator |
| Integration connectors | Rent | Maintained against APIs that change without telling you | The connector hides the semantics you need to control |
Build and buy fail in different directions
Compare them on how each one goes wrong, not on the brochure. Both options work. They fail differently, and the failure you can absorb is the one to choose.
The pattern worth copying is a hybrid that is deliberate rather than accidental. Buy the fastest path to the first working version, and on day one keep your golden cases, your labels and your written rules in your own repository in an open format. If the bought tool holds, you have saved months. If it does not, you keep the expensive part and replace the cheap part.
Wait is a real option, and it has exactly three conditions
Waiting is legitimate when all three of these hold at once. If any one fails, waiting is procrastination with a business case attached to it.
- The blocker is capability, not integration. Your use case fails today because the technology cannot do it yet, not because your data is unreachable or your approval chain is slow. Integration blockers do not dissolve on their own, so waiting on one wastes the whole period.
- The workaround cost is bounded and known. You can state what not doing it costs per month. An unbounded or unmeasured cost means you are not choosing to wait, you are avoiding a decision, and the difference shows up in the budget conversation twelve months later.
- You are not forgoing a data advantage. If doing the work now would produce labelled examples, recorded outcomes or process rules that compound, waiting has a hidden price. The examples you do not collect this year do not appear retroactively next year.
If you decide to wait, do the parts that do not depend on the capability arriving. Clean the data. Instrument the outcome you would later grade against. Build the golden set with expert time while those experts are available. Request the scoped service account, because that queue is long and indifferent to your timeline. Then set a review date and name the specific signal that ends the wait, so the decision gets revisited by a calendar rather than by a conference talk.
The three-year arithmetic, including the parts left out of the pitch
Run this with your own rates and your own quoted prices. Two lines matter more than the totals: the maintenance share, which is real and which build estimates habitually omit, and the crossover month, which tells you how long the bought option stays cheaper.
All prices are yours to supply. Vendor pricing, model pricing and day rates change constantly, so use the numbers on your own quotes and your own payroll rather than any figure quoted in an article. Maintenance is expressed as a percentage of the original build cost per year, which covers dependency upgrades, model changes, eval upkeep and the fixes that arrive with real traffic.
Two things this arithmetic cannot express, and you should say both out loud in the meeting. The bought option starts producing value in a fortnight while the built one produces nothing for two months, and that gap has a real value that belongs on the buy side. Against it, the built option accumulates a labelled dataset and a set of written rules that the bought option keeps in its own schema. Put a number on the second by asking what you would pay to already hold your golden set on the morning your vendor changes its pricing. A fuller version of this model, including the people cost of running a bought tool, is in total cost of ownership for an AI system.
Score every vendor on the way out, not on the way in
Vendor evaluations mostly test the demo, which every serious vendor passes. The questions that predict regret are all about leaving. Run this during the trial, while you still have a salesperson motivated to get you answers, and actually perform the export rather than accepting that one exists.
# Score BEFORE signing. Every question here is about leaving, because the
# joining experience is what the vendor optimised and it tells you little.
vendor: <name>
layer: model | orchestration | retrieval | application | connector
reviewed_by: <name>
date: YYYY-MM-DD
data_out:
export_raw_inputs: yes | no
export_outputs_with_version_stamps: yes | no
export_labels_and_human_corrections: yes | no # the usual no
format: open | proprietary
export_actually_performed_during_trial: yes | no
logic_and_prompts:
prompts_visible_and_exportable: yes | no
business_rules_live_where: our repository | their console
can_a_change_be_reviewed_as_a_diff: yes | no
evaluation:
can_we_run_our_own_golden_set_against_it: yes | no
changelog_for_model_or_prompt_changes: yes | no
notice_before_an_underlying_model_changes_days: 0
access_and_audit:
scoped_service_accounts: yes | no
audit_log_export: yes | no
data_residency_options: [list them]
subprocessors_published: yes | no
commercial:
price_metric: seat | run | token | outcome
quote_at_2x_volume: get it in writing now
price_change_notice_days: 0
termination_notice_days: 0
switching_cost:
weeks_to_replace: 0
data_we_could_not_take: describe it honestly
integrations_to_rebuild: 0
verdict: rent | rent with a written exit plan | do not rent this layer
Every correction a human makes inside a bought tool is a labelled training example produced by your experts on your work. Many products treat those corrections as platform data and offer no export. If the answer to that line is no, you are renting the one layer the Ownership Line says to own, and the price of that arrangement is invisible until the day you try to move. Either negotiate the export into the contract or keep a parallel record of corrections in your own store from the first week.
A two-week bake-off instead of a six-month debate
Most build against buy arguments are unresolvable in a meeting room and trivially resolvable with two weeks of evidence. Run both options against the same cases and let the numbers arbitrate.
- Fix the golden set first, before either option is touched
Take fifty real cases with agreed correct answers, stratified across case types rather than drawn at random. This set belongs to you permanently and is the reason the bake-off produces a decision instead of two demos and a preference.
- Configure the bought option to its realistic best
Use the trial, ask their solutions engineer for help, and record every configuration you make. You are measuring the product as a competent buyer would run it, not as an unhelped first-time user would. Note anything that needed their intervention, because that is future dependency.
- Build the thinnest possible version yourself
One model call, retrieval if the task needs it, no interface beyond a script, no queue. Four days is enough to learn whether the hard part is the model or your data, which is the single most useful thing the fortnight can teach you.
- Score both against the same set, with the same scorer
Report per case type rather than one aggregate. The interesting outcome is not which option scores higher overall, it is that they usually fail on different case types, which tells you where the remaining work sits either way.
- Write the decision as a layer table, not a verdict
The output is a row per layer with rent or own beside it, an exit cost for every rented layer, and a review date. That document survives a change of vendor and a change of staff, which a single build or buy verdict does not.
When the decision lands on building the layer above the line, that is the work described under custom LLM applications: software with a model inside it, wired into your systems, with the evaluation harness as a deliverable rather than an afterthought.
Definitions for the procurement conversation
- Exit cost
- What it would take to stop using a component, measured in weeks of engineering to replace it plus the data you could not take with you. It is the only vendor metric that reliably predicts regret, and it should be estimated before signing rather than discovered during a migration.
- Lock-in
- Not the impossibility of leaving, but the cost of leaving. A vendor with an open export and visible prompts can be left in a fortnight. One that holds your labelled corrections in a schema it will not export has locked in the expensive layer, whatever the contract says about termination.
- Commodity layer
- A part of the stack where several providers are close substitutes and switching takes days. Model hosting, vector storage and queueing are commodity layers. Building your own version of one is defensible only when a measured constraint such as latency, cost or data residency cannot be met by any of them.
- Evaluation harness
- The golden cases, the scoring functions and the runner that grades any version of a system against the same bar. It is the asset that makes vendors and models interchangeable, and it is the first thing to build regardless of which side of the build or buy decision you end up on.
Questions readers ask next
Is it cheaper to build or to buy an AI system?
We already bought a tool. Was that the wrong call?
When does fine-tuning make sense in this decision?
How do we stop a bought tool from becoming five bought tools?
What if the vendor says export is on the roadmap?
ChatGPTalker. "Build, Buy or Wait: How to Choose Your AI Approach." chatgptalker.com, 2026-08-26. https://chatgptalker.com/guides/build-buy-or-wait-ai/