← All writing
PublishedRetrospective · August 20265 min readAIGovernance

The hidden operating costs of an internal AI platform

Part of a retrospective. The retrospective month groups the topic; it is not an earlier publication date. Published 18 September 2026.

Budget for the ongoing work of source upkeep, access control, evaluation, support and change, not just model calls and application hosting.

The model invoice is an easy cost to see. The time spent maintaining an internal AI platform is easier to leave out of a proposal.

Someone has to investigate wrong answers, repair document ingestion, review access, test changes and help staff understand what the service can safely do. Those tasks exist even when the chat interface is small and the initial build was quick.

I would budget an internal AI platform as an operating service. That does not mean every implementation needs a large team. It means the business case should identify the recurring work, assign it and test whether the expected benefit can support it.

Start with the service obligations

Describe the service people are being promised. Who may use it? Which information can it process? During which hours will someone respond to a failure? What manual alternative remains available?

A hypothetical document assistant used occasionally for drafting has a different support obligation from one embedded in a daily approval process. The interface may look similar, but the second creates stronger expectations around availability, correctness and recovery.

Write down the maintenance activities before estimating them. Include identity changes, source updates, model reviews, incident handling and user support. Ask the people likely to do the work whether the estimate is realistic.

Avoid treating staff time as free because no new position is requested. Existing staff must either have spare capacity or stop doing something else. Name that trade-off so the sponsor can decide whether it is acceptable.

Include leave and turnover. A service whose only operator is its original developer carries an availability risk that a low cloud bill does not reveal. Documentation, cross-training and a tested fallback are part of the operating commitment.

The knowledge collection needs maintenance

A source connector is not a one-time import. Documents change, access changes and obsolete material needs removal. Some files fail extraction; others produce text that looks complete while losing tables or qualifications.

Budget for detecting these problems and repairing them. Someone should know whether the index contains the approved source set, whether updates arrived and whether withdrawn material remains searchable. A green hosting dashboard does not answer those questions.

Permissions add work beyond relevance tuning. The application may need synchronisation, live checks or conservative handling when access state is uncertain. Different source systems can require different integration patterns.

New collections should carry an onboarding cost. Identify the information owner, access model, version rules and extraction characteristics before promising that another folder can simply be connected. The marginal cost of adding a source is not always just storage.

Microsoft's Azure AI Search documentation shows that a security-filter pattern depends on correct identity strings and filter application. That implementation responsibility is a reminder that “we use managed search” does not mean every access-control task has been outsourced.

Evaluation and change consume recurring effort

A platform needs evidence that it still performs its approved tasks after changes. Models, prompts, retrieval settings, document processing and tools can all affect behaviour.

The evaluation cost includes maintaining cases, reviewing ambiguous results and investigating regressions. Automated scoring may reduce some work, but it does not remove the need to verify that the scoring reflects business judgment.

Reserve time for service changes you do not initiate. A provider may alter an offering, deprecate an endpoint or change available deployment options. Do not assume that pinning a model identifier guarantees indefinite access to the same service.

Keep a change reserve rather than estimating only routine monthly usage. The relevant question is whether the organisation can fund a necessary migration or security correction without abandoning the service.

For a custom build, also include ordinary software maintenance: dependencies, credentials, monitoring configuration and deployment procedures. NIST's Secure Software Development Framework treats secure development and vulnerability response as lifecycle practices. AI-generated code does not remove those obligations.

Support and misuse need practical limits

Support includes more than outages. Users may ask why an answer changed, whether a source is current, which model is approved for a document or how to report a suspected disclosure.

Design simple routes for those questions. Clear guidance and identifiable request records can reduce investigation time. Poorly designed logging can increase it, especially if the operator has neither enough provenance to diagnose a problem nor permission to inspect the captured content.

Set limits on expensive or disruptive use. Large uploads, repeated retries and long-running agent loops can consume resources beyond the intended task. Limits should produce understandable errors and a route for legitimate exceptions.

Do not quietly remove protections to meet a cost target. If logging, review or access checks make the proposed service unaffordable, narrow the task or revisit the design. The original low-cost estimate may have omitted a required part of the product.

Purchased products have operating costs too. A fair comparison includes configuration, information cleanup, training and administration on both sides. Buying Copilot or building an internal platform should compare supported services rather than one subscription against one prototype.

Build a budget the owner can explain

Separate fixed obligations from costs that grow with usage. Then identify step changes, such as adding a sensitive source, opening access to another population or allowing write actions. Those changes may require more than a proportional increase in model calls.

Use verified prices for the selected services and explicit workload assumptions. If volumes are uncertain, prepare scenarios and state what would trigger a spending review. Avoid presenting speculative future usage as a measured saving or expense.

Track cost per accepted task alongside total spend. A rising bill may reflect useful growth; a falling bill may reflect abandonment. Pair financial reporting with task completion, quality and support burden so the numbers remain interpretable.

Finally, budget for exit. The organisation may need to export records, retire connectors, remove derived data and return work to another process. Decommissioning is work even when the experiment was small.

I would approve an internal platform when its useful work can justify these responsibilities. A cheap demonstration can be a good starting point, but the production decision needs an honest account of who will keep it useful.

Working on something similar?

If this connects with something you’re working through, I’m happy to talk about where you’re stuck and whether I can help.

See how I work