Reference architectures · AI infrastructure · Solutions architecture

Enterprise AI on a real budget — architectures for Myanmar

Nobody here is building a GPU datacenter. The real question is how a bank or a distributor takes its first serious step into AI — with data that cannot leave the country, hardware that cannot be sourced on demand, and an operations team of six. Six reference designs, and the reasoning behind each decision.

0
Procurement paths costed — from GPU-as-a-Service to a dedicated node
0
Reference architectures, plus an interactive capacity planner
0
API transactions per day sustained on production Kubernetes
0
Annual uptime on regulated multi-cloud workloads
Start here

This is not a datacenter project. It is a first step.

Most published AI infrastructure guidance assumes a hyperscaler budget and an H100 purchase order. That guidance is useless in Yangon. The constraints below are what actually shape the design.

Regulator / CISO
"Customer data cannot leave the country, and every inference must be auditable."

Residency rules rule out hosted APIs for core workflows. Sovereignty is a requirement, not a preference — and the strongest argument for local compute.

Head of Infrastructure
"We cannot source current-generation GPUs, and lead times are quoted in quarters."

Supply is the binding constraint, not capital. A design that assumes one specific accelerator never ships. The platform must survive a hardware substitution.

Platform team lead
"We know Docker. Nobody here has run a GPU cluster before."

Driver and CUDA lifecycle is the number one operational fear, and a legitimate one — which is why the platform layer matters more than the hardware.

CEO / CFO
"What does this change about how we work — and when does it pay for itself?"

A capital decision defended with a unit economic, not a benchmark. When renting wins, it wins — which is why GPU-as-a-Service leads the four paths rather than trailing them.

The reasoning I apply first

Every AI application is still three layers on three foundations

Before any hardware conversation, decompose the use case. Strip away the novelty and an AI system is an interface, some logic and stored state — on compute, network and storage. That turns a vague ambition into something sized, buildable and defensible.

BUSINESS REQUIREMENT "Our support team answers the same 400 questions every week, and new staff take three months to become useful." Stated as a business problem — never as "we need an LLM". The technology choice is the last decision, not the first. DECOMPOSE THE APPLICATION · EVERY AI USE CASE HAS THESE THREE 1 · WEB INTERFACE How a human or system asks Chat UI · ticketing plug-in · API for the core banking bus · workflow trigger Needs: low latency, auth, audit of who asked what 2 · LOGIC How the answer is produced Retrieval · prompt construction · model inference · tool calls · guardrails · evaluation Needs: GPU compute — this is the only new part 3 · STORAGE What the system knows and remembers Documents · vector index · conversation history · model weights · the audit trail Needs: durability, versioning, residency WHICH RESOLVE TO THREE FUNDAMENTALS · NOTHING HERE IS NEW COMPUTE CPU for the app · GPU for the model Sized by concurrency and context, not by model name NETWORK Ingress · east-west · GPU interconnect Segmented by trust zone, not by convenience STORAGE Block · object · vector · relational Each tier chosen for its access pattern EFFECTIVE OUTCOME — first-response time cut, new staff productive in weeks, every answer traceable Measured against the original business requirement. If it cannot be measured there, the architecture was wrong.

Commercially: two of the three layers are things the team already builds. Only the logic layer is new. That turns "we need an AI platform" — unbounded, frightening — into "we need GPU compute behind an interface we already understand". Scopeable, sizeable, fundable.

And every one of them does one of three things

Three patterns cover every AI use case I have ever scoped

A use case that lands in none of these is usually a technology looking for a problem — worth saying before anyone spends money.

Pattern 1 · Volume

Remove repeated human work

The same task performed over and over against different inputs — classifying tickets, extracting fields from documents, drafting the same category of reply. High volume, low variance, enormous cumulative human cost.

Sizing signal: throughput and cost per task. A small routed model usually beats a large one here, and the business case is measured in hours returned per week.

Pattern 2 · Judgement

Support decisions and fact-checking

A human still decides, but faster and better informed — surfacing the relevant policy, cross-checking a claim against source documents, summarising a case file, flagging what looks anomalous. The AI does not act; it hands over evidence.

Sizing signal: retrieval quality and citation grounding, not raw model size. This is where RAG earns its place — and where an ungrounded answer is worse than no answer.

Pattern 3 · Process

Compress operational overhead

Fewer hand-offs, fewer people in the loop, shorter elapsed time. An agent that reads the request, checks the system, performs the safe action and escalates the rest — replacing a chain of four humans and two days with one exchange.

Sizing signal: tool integration and guardrails dominate, not the model. This pattern carries the most risk, because it is the only one that acts.

Decision one · where the compute comes from

Four paths to GPU capacity, same platform above

Entry points, not a single recommendation — chosen by budget, timeline, residency and what can actually be procured. The platform layer is identical across all four, so the hardware decision stays reversible.

Path 1 · Rent

GPU-as-a-Service

Hourly GPU rental from a specialist provider — RunPod, Lambda, Vast.ai class. Container in, endpoint out.

  • Running the same day; no capex, no procurement cycle
  • Right answer for pilots, benchmarking and bursty fine-tuning
  • Data leaves the country — usually disqualifying for regulated workloads
  • Cost crosses over against owning at sustained utilisation
CommitmentHourly · cancel anytime
Path 2 · Desktop class

Grace-Blackwell developer system

128 GB coherent unified memory, ~1 PFLOP FP4, up to 4 TB NVMe. Pairs over ConnectX for larger models.

  • Procurable off the shelf — proves the platform now
  • Pilot and departmental serving; fine-tuning up to 70B class
  • Data stays on-premise from day one
  • Becomes the dev/test tier once production lands
Entry pointSingle unit, low five figures
Path 3 · Lowest capex

GPU retrofit into an existing server

One 48–96 GB passive server card into a validated host. Needs PCIe Gen4/5 x16 double-width and PSU headroom.

  • Cheapest route to on-premise inference
  • Entry production for one or two quantized models
  • Shares host CPU, RAM and I/O — must be capped
  • No high-availability story on a single chassis
Entry pointCard only — validate host first
Path 4 · Production target

Dedicated GPU server

2× enterprise 96 GB-class GPUs, dual 32-core CPUs, 384–512 GB ECC, NVMe RAID, dual 25 GbE, redundant PSU.

  • Runs 3–5 concurrent models with real headroom
  • Scales by adding cards before adding servers
  • Second node makes it an HA pair
  • The only path with a credible production SLA
CommitmentCapex + facility readiness
FAST TO PRODUCTION SLOW TO PRODUCTION HIGH LOW SOVEREIGNTY & CONTROL Quick wins, fully owned Slow and rented — avoid GPU-as-a-Service same day · data offshore Desktop class weeks · on-prem Retrofit host-dependent Dedicated server quarters · full control prove it then own it
Architecture 1 of 6

Infrastructure base — three-tier, with a GPU tier bolted on

A conventional segmented enterprise design: DMZ, application tier, data tier — plus a dedicated GPU Kubernetes cluster on three nodes. Nothing exotic, which is precisely the point. A security team can review this in an afternoon because it looks like every other three-tier estate they have already approved.

TRUST ZONE DMZuntrusted edge Perimeter firewallnorth-south policy WAF · TLS terminationcert-manager · rate limit Load balancerMetalLB · Gateway API LLM gatewayauth · quota · audit APP TIERRKE2 cluster3 CP + 5 workers Web frontendstatic · CDN-cacheable Backend APIsbusiness logic · RBAC Agent orchestratortools · RAG · guardrails Workers · jobsqueues · schedules Cilium eBPF CNI with network policy · Kyverno admission control · horizontal pod autoscaling · CIS-hardened RKE2 GPU TIERRKE2 · 3 GPU nodesisolated node pool GPU node 1 — servingvLLM · chat model · MIG partitionedtainted: workload=gpu:NoSchedule GPU node 2 — servingvLLM · expert model · embeddingsHA pair with node 1 GPU node 3 — train / burstfine-tuning · batch · overflow capacitydrains to serving under load NVIDIA GPU Operatordriver · CUDA toolkit · device plugin · DCGM exporter · MIG manager · node feature discoveryThe entire NVIDIA stack lifecycle is owned by the operator — no manual driver matrix, on any node, ever. DATA TIERno ingress from DMZ External PostgreSQLHA · outside the cluster Object storageMinIO · erasure coded Vector storeQdrant · RAG index Block PVsLonghorn · NVMe MANAGEMENT Provisioning (PXE · Ansible · golden images) · GitOps delivery (Argo CD) · observability (Prometheus · Grafana · Loki · DCGM) · secrets (Vault) · backup & DR (Velero)
North-south traffic Gateway · auth and audit GPU inference path Persistence

Three deliberate decisions. Database outside Kubernetes — stateful workloads on a young cluster is not a risk for a six-person team's first project. GPU nodes in a separate tainted pool, so a runaway deployment can never evict a model that takes four minutes to load. Data tier accepts no DMZ ingress — usually the first thing a security review checks.

Architecture 2 of 6

Four independent tiers on one fabric

This diagram answers “where does everything run and how does traffic move?” Four tiers that scale independently on one fabric, with the live request path traced through them. The next diagram answers a different question — what runs inside the GPU tier, and why one GPU pool serves many agents.

CHANNELS Web / chat UIinternal users Core bankingAPIs · service bus Workflow / RPAticketing · ITSM BI & analystsdashboards EDGE Ingress · TLS · WAFrate limit · mTLS · cert-manager LLM gatewayauth · routing · quotas · audit · guardrail L5 WEB & BACKEND CLUSTER · RKE2 FrontendReact · static Backend APIsbusiness logic Agent orchestratortools · RAG · rails Cilium eBPF CNI · Gateway API · cert-manager · Kyvernohorizontal pod autoscaling — grow by adding worker nodes GPU AI CLUSTER · RKE2 ON GPU NODES vLLM · chat model27–35B MoE · FP8 vLLM · expert model70B quantized Embeddings+ vision / OCR NVIDIA GPU Operator — driver · CUDA · device plugin · DCGM · MIGgrow by adding GPU nodes or cards — driver lifecycle fully automated DATA CLUSTER · HIGH AVAILABILITY PostgreSQL HAstreaming replication Qdrantvector store · RAG ClickHouse · Redisaudit trail · cache Scale reads with replicas · point-in-time recovery · encrypted at rest STORAGE · DISTRIBUTED OBJECT + BLOCK MinIOerasure coded Model storeversioned weights Longhornblock PVs NVMelocal scratch Datasets · checkpoints · artefacts · backup — add nodes for capacity PLATFORM OPERATIONS · SPANS EVERY TIER ProvisioningAnsible · PXE · images GitOps deliveryArgo CD · Git as truth ObservabilityPrometheus · Grafana · Loki GPU telemetryDCGM exporter · alerts LLM tracingtrace · cost · audit SecurityVault · Trivy · CIS
User request · application path Gateway · auth, routing, audit GPU inference · token generation Retrieval & persistence

Live trace. A request enters the gateway, reaches the orchestrator, retrieves context, runs inference and returns — while weights stream from object storage and every call hits the audit trail. Each tier scales independently: web nodes for traffic, GPU nodes for models, replicas for reads, object nodes for capacity.

Architecture 3 of 6

The GPU platform — one pool, many agents

This diagram answers “what is the GPU tier actually made of?” — the layering inside the box the previous diagram drew. The commercial argument lives here: one GPU investment does not buy a chatbot, it buys a serving platform hosting a fleet of specialist agents. Each new agent costs prompt engineering and retrieval work, not more hardware.

AGENT LAYER · SPECIALISTS SHARING ONE PLATFORM Help deskcited answers fromyour own knowledge base Ticketingtriage · route · draftresolution notes Security reviewconfig review · alerttriage for the SOC Document extractcontracts · KYC formsstructured output Vision / OCRscanned docs · shelfand asset detection Analyticsanomaly detectionforecast narratives ORCHESTRATION & KNOWLEDGE Agent orchestratorstate machine · retries · fallback Retrievalhybrid search + reranking Tools & system accessscoped, least-privilege calls Guardrails & auditpolicy · PII scan · full trace MODEL SERVING · ONE OPENAI-COMPATIBLE ENDPOINT vLLM · chat27–35B MoE · FP8 · the workhorse vLLM · expert70B quantized · hard reasoning Embeddingsretrieval + reranking Vision / OCR serviceseparate from the LLM tier GPU INFRASTRUCTURE GPU nodes from any of the four paths · RKE2 + GPU Operator · MIG partitioning for tenant isolation · DCGM telemetry · model weights from object storage PLATFORM SERVICES Postgres Qdrant MinIO Telemetry

Why this wins the budget conversation. The expensive layer is the bottom one, and it is shared. Agent one justifies the hardware; agents two through six are configuration. You are not buying a help desk bot — you are buying the platform every later use case runs on.

Architecture 4 of 6

Application layers — where GPU compute actually sits

The same three-layer decomposition from earlier, now drawn as a real request path with the technology in place. Note how little of it is GPU work: one box in the middle. Everything else is ordinary web engineering the customer's team already does well.

1 · WEB INTERFACE — CONVENTIONAL ENGINEERING User asks a questionchat window · ticket form · API call Authenticate & authoriseSSO · role · which data may they see Rate limit & quotaper user, per team, per model Log the requestwho asked what, when — before anything runs 2 · LOGIC — THE ONLY LAYER THAT NEEDS A GPU Retrieve contexthybrid search overyour documents Rerank & filterpermission-aware —drop what they can't see Build the promptsystem rules + context+ conversation history ⚡ GPU INFERENCEvLLM · continuous batchingprefill compute-bound,decode bandwidth-bound Guardrail checkPII · policy · did itground its answer? Tool calls — when the answer needs a system, not a document Query the core banking API · create the ticket · look up the order · check the policy engine. Each call is scoped, least-privilege and separately audited. This is where an assistant becomes an agent — and where most of the engineering risk actually lives, not in the model. 3 · STORAGE — WHAT IT KNOWS AND WHAT IT REMEMBERS Document storesource of truth · versioned Vector indexembeddings · rebuilt on change Conversation statehistory · session · feedback Model weightsobject storage · versioned Audit trailimmutable · regulator-ready

Count the boxes. Sixteen components; exactly one is GPU work. Mostly software engineering the team has done for a decade, with one new dependency in the middle. It also explains why failed pilots fail on retrieval quality, permissions and tool integration — rarely on the model.

Architecture 5 of 6

Guardrails — defense in depth, seven layers

Not in-process versus gateway — each layer owns the trust boundary it protects. For any AI service touching regulated data the question is placement, never whether.

REQUEST ENTERS HERE — EACH LAYER OWNS ONE TRUST BOUNDARY L5 · GATEWAY + IDENTITY The only layer that can prove compliance Cross-application coverage · per-person attribution via SSO · tamper-evident audit independent of the app · org-wide kill switch L3 · RAG-LAYER FILTERS Retrieval-time permission filtering — the layer almost nobody runs Per-user permission filters before retrieval · source vetting against index poisoning · citation-grounding checks L2 · IN-PROCESS RAILS Input, dialog and output rails around the model call Owns what must be contextual — dialog semantics, domain rails, per-agent scoped tools and scoped retrieval L1 · SYSTEM PROMPT Cheapest and weakest — it is only text Prompt injection targets exactly this layer. Useful for shaping behaviour, never load-bearing for policy. L0 · MODEL ALIGNMENT A floor, never a policy engine The vendor's policy, not yours. Bypassable by injection — and literally absent in fine-tuned or abliterated open-weight models. ACTIONS LEAVE HERE — STRUCTURAL SAFETY, NOT PROMPT-BASED L4 · TOOL & WORKFLOW CODE Risk-classified operations with human approval before anything irreversible Sends, deletes, payments, config changes. Enforced in code — and code cannot be sweet-talked by a prompt. SHADOW LAYER · OBSERVABILITY trace scoring · detects, doesn't block The rule that resolves every "where do I put this check?" argument Identity boundary → gateway (L5)  ·  Knowledge boundary → RAG filter (L3)  ·  Action boundary → tool code (L4)  ·  Conversation boundary → in-process rails (L2) Maturity in the market: individual users run one layer. Platform products run about two. Serious enterprises run three or four. Full stack is five plus observability — and almost nobody runs L3, which is exactly why it is worth leading with.

"Model alignment is a floor, not a policy engine"

With a modified open-weight model that floor is missing entirely. Fine-tuning an open model for sovereignty removes L0 without anyone noticing — which makes L2 through L5 mandatory, not optional.

"The gateway is the only place you can prove compliance"

In-process rails are the only place you can understand the conversation. You need both — an application controls its own logs, so app-level audit alone never satisfies a regulator.

Architecture 6 of 6

MLOps — from five disconnected tools to one governed loop

Every organisation arrives with the same accidental stack: notebooks here, labelling there, a workflow tool, some glue code, and a request to add experiment tracking. The right question is not which tracking tool to add — it is whether one platform should absorb the sprawl.

TODAY · FIVE TOOLS, FIVE LOGINS, MANUAL GLUE Notebooksno run capture Workflow toolnot ML-aware Labellingseparate auth Custom gluehand-maintained Serving scriptbespoke code + tracking?the sixth tool No shared lineage · no single identity model · every hand-off is integration you own Adding a sixth tool closes one gap and widens the sprawl CONSOLIDATE ONE PLATFORM · SELF-HOSTED ON THE SAME CLUSTER Experimentsauto-captured PipelinesDAG · scheduled Datasetsversioned Registrylineage to data Servingcanary · metrics GPU queueelastic agents One identity model · one lineage graph · every stage schedulable and event-driven Self-hosted keeps data resident; a managed control plane is the alternative if preferred THE LOOP IT UNLOCKS · TRAIN → DEPLOY → MONITOR → RETRAIN Data landsversioned · lineage tracked Labelmodel-assisted pre-label Train on GPU queuetracked · reproducible Evaluategate — pass or back to data Deployversioned · canary rollout Monitordrift · accuracy drift or new data triggers automatic retraining — the loop closes itself The decision I actually put to customers Self-hosted keeps everything on your GPUs with no per-seat cost and no cloud dependency, but you operate it. A managed control plane gives you enterprise support and a designer UI while training still runs on your hardware — at the cost of metadata leaving your network. Sovereignty requirement decides it, not feature count.
Decision two · sizing

What actually fits — before you buy anything

Frontier open models arrive monthly, each with a headline "runs on 8× H200". That figure is weights only, at batch size one. Taken at face value it produces hardware that benchmarks beautifully and falls over in week two.

Open modelTotal / activeArchitectureLicence ModalityAPI $/1M in·outPublished deployment
Inkling · Thinking Machines975B / 41BMoE + SWA-GAApache 2.0text · image · audioTBD8× H200
Nemotron 3 Ultra · NVIDIA550B / 55BMamba-MoE hybridOpenMDWtext$0.50 · $2.204× B200
GLM-5.2 · Z.ai753B / 40BMoE + DSAMITtext$1.40 · $4.408× H200
Kimi K2.6 · Moonshot1T / 32BMoE + MLAMIT*text · image · video$0.70 · $3.008× H200
DeepSeek-V4 Pro · DeepSeek1.6T / 49BMoE + CSA-HCAMITtext$0.44 · $0.878× H200
Qwen3.6-35B · Alibaba35B / 3BMoE + DeltaNetApache 2.0text · image$0.14 · $1.00one 24 GB GPU
Gemma 4 31B · Google31B denseDense + SWA hybridApache 2.0text · image · audio$0.12 · $0.35one gaming GPU
MiniMax M3 · MiniMax428B / 23BMoE + MSArestrictedtext · image · video$0.30 · $1.208× H200

Specifications as published by ByteByteGo. ⚠️ Verify against the model card before quoting — this segment moves monthly and licences change.

What that last column does not tell you

"Runs on 8× H200" is a weights-only claim at batch size one

Three things it silently omits — and each one is the difference between a working deployment and an expensive one that doesn't serve anybody.

Omission 1 · users

No concurrency budget

The figure assumes one request in flight. Each additional user adds a full KV allocation. At 32 users and 8k context a 70B model needs roughly 80 GB of KV cache — more than its own FP8 weights.

Omission 2 · context

No context budget

KV scales linearly with context. Moving one user from 8k to 128k multiplies their footprint by sixteen. A model that "fits on one GPU" at 4k does not at 128k — and the figure never says which was assumed.

Omission 3 · MoE

Active params are not resident params

All expert weights must sit in VRAM even though only a fraction activate per token. DeepSeek-V4 Pro is "49B active" — but it is 1.6T resident. Active params tell you compute cost; total params tell you how much memory you must buy.

Published claim, checkedResident weights+ KV at 32 users · 8kvs. 8× H200 = 1,128 GBVerdict
DeepSeek-V4 Pro · 1.6TFP8 1,600 GB
FP4 800 GB
+61 GBFP4 → 990 GB · 88%FP4 only. FP8 needs 12 GPUs for weights alone. Room for ~95 users at 8k before headroom is gone
Kimi K2.6 · 1TFP8 1,000 GB
FP4 500 GB
+61 GBFP8 → 1,220 GB · overFP8 does not fit once users are added. The claim silently requires FP4
GLM-5.2 · 753BFP8 753 GB+92 GBFP8 → 972 GB · 86%Works at FP8 — the most honest of the 8× H200 claims. But no room to grow
Qwen3.6-35B · "one 24 GB GPU"FP4 17.5 GB+48 GBneeds 75 GBTrue for one user. At 32 users it will not fit a 48 GB card, let alone 24

Every figure came from the planner below at 32 users and 8k context, so tool and table cannot drift apart. Four minutes of arithmetic that has changed the hardware line on more than one proposal.

Planning shorthand

By model class, once you stop reading marketing

Model classWeights (Q4 / FP8)Typical roleRealistically serves
4–14B SLM4–12 GBRouting, classification, extraction, draftsHigh concurrency on one card
27–35B / MoE18–35 GBPrimary chat and agent reasoningDozens of users on one 96 GB card
70B class40–75 GBExpert and deep-reasoning agents2 GPUs for a real concurrency budget
120B+ MoE~65–80 GB active tierStrategy, long-context analysisResident size decides, not active size
500B+ frontier500 GB+ residentFrontier capability on-premMulti-GPU server minimum — 8 cards and up
KV cache per token = 2 × layers × kv_heads × head_dim × bytes_per_element

70B-class model — 80 layers, GQA 8 KV heads, head_dim 128, FP16:
  2 × 80 × 8 × 128 × 2 = ~320 KB per token

8k context    → 320 KB × 8,192 ≈ 2.6 GB per sequence
32 concurrent → ≈ 80 GB of KV cache alone
+ FP8 weights (70 GB) = ~150 GB → exceeds a single 141 GB accelerator

Grouped-query attention is what makes this affordable — full multi-head would be 8× larger. That is why MLA, DSA and the other variants above exist: KV-cache economics, not accuracy features.

Prefill is compute-bound

Processes the whole prompt in parallel. Determines time-to-first-token — what users perceive as responsiveness.

Decode is bandwidth-bound

One token at a time, limited by memory bandwidth over model size. Determines inter-token latency — perceived as typing speed.

Batching raises throughput, not latency

Continuous batching keeps the GPU fed as sequences finish at different times. It does not make any single user's response faster.

Interactive · capacity planner

Will it fit? Drag the sliders and find out

Set the model, precision, context and concurrency you actually need. The planner returns what the marketing figure left out.

GPU memory planner resident weights + hot KV + headroom vs. VRAM · MoE counts all experts · KV tiering supported
0 GB
Weights
KV cache
Total needed
incl. 15% headroom
Available VRAM
HBM only

Everything resident

Every cache sits in GPU memory — fastest, and the assumption behind every "8× H200" claim. Also the most expensive way to buy concurrency: HBM prices for cache belonging to users who are reading, not generating.

+ CPU RAM

Offload to host memory

LMCache and vLLM CPU offloading tier idle sessions to host RAM, paging back on the next turn. Most chat sessions are idle between turns, so only a fraction stays resident. ~512 GB per server at PCIe speed — 75× slower than HBM, but only paid on resume.

+ NVMe

Offload to storage

Multi-terabyte pools on local NVMe, ideally over GPUDirect Storage so page-back skips the CPU bounce buffer. Far more capacity, bigger penalty. Right for long agent sessions and histories that must survive but are rarely hot.

The conclusion · making the case

Cost against outcome — the four numbers that decide it

Return is not measured in GPU utilisation. It is measured in work completed, mistakes avoided, people freed and time saved. Pick one process, measure it before, measure it after, and the case writes itself.

ONE PROCESS · MEASURED BEFORE AND AFTER — NOTHING ELSE COUNTS AS EVIDENCE TODAY · THE BASELINE YOU MUST CAPTURE FIRST ThroughputTasks completed per person per day — count them for two weeks Error rateMistakes per hundred tasks, and what each one costs to correct People in the loopHow many humans touch one task from request to done Cycle timeElapsed hours from request to completion — not effort hours AI AFTER · THE SAME FOUR, RE-MEASURED More work, same headcountThe volume pattern — repeated tasks absorbed, people redeployed upward Fewer mistakesThe judgement pattern — checks that a tired human skips at 5pm Fewer hand-offsThe process pattern — four people and two days becomes one exchange Faster answersOften the number the business actually cares about most The delta across those four is the return. Everything else is a cost question. If a benefit cannot be measured in the customer's own systems before and after, it belongs in the narrative — not the spreadsheet. A business case that survives audit is worth more than one that looks impressive. The second kind ends the relationship in year two.
Because four people are in the room

The same project answers four different questions

A case built only for finance dies in the technical review. A case built only for engineering never gets funded. Each executive is asking something different, and each needs a different number.

WhoWhat they are actually askingThe number that answers it
CEODoes this change what we can offer, or only what it costs us? And what happens if a competitor does it first?Capacity created · new capability · sovereignty risk removed
CTOCan we actually run this, and what does it break? Who maintains it when the vendor leaves?Operational burden · integration surface · skills gap · exit cost
COODoes the work genuinely change, or do my people now supervise a machine as well as doing the job?Cycle time · hand-offs removed · people per process
CFOWhen does it pay back, and what is the downside if adoption is half what was promised?Cost per task before vs after · payback period · sensitivity at 40% adoption
CISO / RiskWhat new exposure does this create, and can we prove control to a regulator?Guardrail layers in place · audit completeness · data residency
Pattern 1 · Volume

Work per unit of effort

tasks/month × minutes saved × loaded hourly cost × adoption rate. The only pattern with a clean financial number — and the one where adoption rate quietly decides everything.

Pattern 2 · Judgement

Mistakes avoided

error rate before vs after × cost per error. Banks already price their error rates, so this is usually easier to source than people expect. Include errors introduced by the system — that is the honest version.

Pattern 3 · Process

Manpower and speed

hand-offs removed × cycle time saved. Value shows up as elapsed time and people redeployed, not people removed — and saying "redeployed" out loud is what keeps the operations team on side.

First contact

Where a conversation usually starts

Most engagements begin with one of three questions — usually from a CTO or COO, sometimes from a CEO who has been asked by the board. None require a budget to ask.

30 minutes

"Is this even feasible for us?"

A use case, the residency constraints, and a straight answer on whether AI is the right tool — including when it is not. No deck.

Half a day

"What would it cost?"

Pattern identified, model class sized, the four procurement paths costed against your token volume, and a defensible cost per million tokens.

2–4 weeks

"Prove it on our data"

A pilot on rented or procurable GPU, benchmarked on your real prompts — tokens/sec, VRAM under concurrency, cost per token. Assumptions replaced with measurements before capital is committed.