Most LLM teams waste 40-60% of their AI budget without realizing it.
KEY TAKEAWAYS
- Most LLM teams waste 40-60% of their API budget on operational inefficiencies, not model limitations
- Six common waste patterns: redundant API calls, missing caching, bloated prompts, slow retrieval, no quality measurement, and misallocated training investment
- University of Chicago research on 86,000 developers found experienced workers achieve 6% higher AI acceptance rates because they plan before implementing and evaluate systematically
- These are Lean skills: planning (PDCA), quality at the source, standard work, and gemba. The technology changes, but the operational capabilities that drive results remain constant
- Example savings: 67% reduction in API costs by combining redundant calls, 72% reduction by optimizing prompts, 64% faster responses by fixing retrieval pipelines
Get the full framework →“The 12% Framework” explains what teams who ship AI to production do differently. Free PDF, 19 pages.
Download the 12% Framework →A University of Chicago study analyzing 86,000 developers found that experienced workers achieve significantly better results with AI agents. They plan before implementing, evaluate systematically, and avoid operational waste.
I’ve spent 15 years eliminating waste in tech operations. The patterns in LLM teams are identical to what I’ve seen in software development, IT ops, and testing teams. My clients achieved 91% defect reduction in banking software, 50% productivity gains in government digital projects, and 68% improvements in on-time tech delivery operations for the energy sector.
The pattern: teams focus on model selection, fine-tuning, and GPU optimization. They ignore the operational waste that costs them half their budget.
Six patterns. Six fixes.
- Pattern 1: Redundant API Calls
- Pattern 2: Missing Caching Strategy
- Pattern 3: Unoptimized Prompts
- Pattern 4: Slow Retrieval Pipelines
- Pattern 5: No Quality Measurement
- Pattern 6: The Experience Paradox
Pattern 1: Redundant API Calls
The waste:
The waste: three API calls where one would work. Classification. Generation. Validation. Each one costs money.
Use Case:
Consider a customer support team that processes 10,000 tickets monthly. Their workflow:
- Call 1: Classify ticket urgency
- Call 2: Generate response
- Call 3: Check response quality
Three calls at $0.05 each = $0.15 per ticket.
Monthly cost: $1,500
They combined these into a single call using structured outputs. Cost dropped to $0.05 per ticket.
New monthly cost: $500
Savings: $1,000/month (67% reduction)
Why does this happen?
The problem builds over time. Classification gets added first. Then response generation. Then quality checks. Each becomes a separate call. No one maps the workflow to catch the duplication.
How to fix it:
Map your API call patterns for one typical user request. Count the calls. Ask: “Could we get all this information in one request?”
Modern LLMs handle complex, multi-part instructions. Use structured outputs (JSON mode) to get classification, content, and metadata in a single response.
Check your code for sequential API calls that process the same input. Batch them
Quick win:
Audit your five most common user flows. Find the redundant calls. Combine them. Most teams find 2-3x redundancy immediately.
Pattern 2: Missing Caching Strategy
The waste:
Identical content gets regenerated over and over. If the user asks the same question five times, the LLM generates the same answer five times. You pay five times.
Without caching, teams pay for the same generation multiple times.
Use Case:
A documentation search system handles 50,000 queries per month. Analysis showed 35% were identical queries (like “how to reset password” or “API rate limits”).
Without caching: 50,000 queries × $0.02 = $1,000/month
With caching (24-hour TTL): 32,500 queries × $0.02 = $650/month
Savings: $350/month (35% reduction)
And that’s just query caching. Embedding caching adds more savings.
The root cause:
Get it working, ship it, move on. Caching feels like optimization for “later.” Later never comes. The API bills grow every month.
How to fix it:
Implement caching at three levels:
Level 1 – Response caching: Cache final LLM responses for identical queries. Use Redis or similar. Set TTL based on how often your content changes (1 hour for dynamic content, 24 hours for stable content).
Level 2 – Embedding caching: Cache document embeddings. Most teams re-embed the same documents daily. Embeddings rarely change unless content changes. Cache them indefinitely. Only re-embed when documents update.
Level 3 – Retrieval caching: Cache retrieval results. If someone searches “pricing plans,” cache the top 10 relevant chunks for 6-24 hours.
Start here:
Implement response caching first. Log your queries for one week. Calculate the duplicate rate. That percentage is money you’re wasting. Implement basic Redis caching this week.
Pattern 3: Unoptimized Prompts
The waste:
Bloated prompts waste tokens. Teams include unnecessary context, verbose instructions, and redundant examples. Every extra token costs money.
OpenAI’s GPT-4 charges $0.03 per 1K input tokens. A 1,000-token prompt that could be 250 tokens costs 4x more per request.
Use Case:
A content generation team using an 850-token system prompt. It included:
- Lengthy background context (400 tokens)
- Five examples when two examples worked (200 tokens)
- Redundant instructions repeated three times (150 tokens)
- Formatting guidelines that could be 2 sentences (100 tokens)
They processed 50,000 requests monthly at $0.025 per request.
Monthly cost: $1,250
After optimization, they cut the prompt to 220 tokens while maintaining the same quality of output.
New cost per request: $0.007
New monthly cost: $350
Savings: $900/month (72% reduction)
Why teams miss this?
It builds up over time. Teams add more instructions when outputs aren’t quite right. They never remove anything. The prompts grow like untended gardens.
How to fix it:
Step 1 – Audit your prompts: List all your system prompts. Count tokens (use OpenAI’s tokenizer tool or tiktoken library). Sort by token count.
Step 2 – Test shorter versions: Take your longest prompt. Cut 50% of the content. Test on 50 examples. Compare outputs. If quality holds, keep the shorter version.
Step 3 – Remove these common wastes:
- Background context, the LLM doesn’t need
- Examples beyond the first 2-3 (diminishing returns)
- Instructions repeated in different words
- Overly detailed formatting rules
- Apologetic or hedge language (“please,” “try to,” “if possible”)
Step 4 – Set output limits: Use max_tokens parameter. Suppose you need 200-word summaries, set max_tokens to ~300. Don’t leave it at default (4096 or higher). You pay for every output token.
Immediate action:
Take your most-used prompt. Remove every sentence that isn’t a direct instruction. Test it. Quality probably stays the same. Cost drops 40-60%.
[Book your diagnostic call→]
Pattern 4: Slow Retrieval Pipelines
The waste:
Teams retrieve too many documents in RAG (Retrieval-Augmented Generation) systems. They pull 50 chunks when 10 provide the same answer. More retrieval = slower responses = worse user experience.
Industry benchmarks show typical RAG systems spend 60-70% of total latency on retrieval, not generation. Teams optimize the wrong bottleneck.
Use Case:
Consider a RAG-powered documentation system had these metrics:
- P95 latency: 8.5 seconds
- Breakdown: Retrieval 6.2s, Generation 2.3s
The team obsessed over generation speed. They switched models, adjusted parameters, tried different providers. Latency barely improved.
Then they measured retrieval. They were pulling 50 chunks per query. They tested with 10 chunks. Quality stayed the same.
New P95 latency: 3.1 seconds (Retrieval 1.3s, Generation 1.8s)
Improvement: 64% faster
Why this happens:
Nobody measures where time goes. They assume LLM generation is the bottleneck (it’s visible, it’s “AI”). They ignore retrieval because it’s “just database queries.”
How to fix it:
Step 1 – Measure the pipeline: Add timing logs:
- Time to retrieve embeddings from vector DB
- Time to fetch actual documents
- Time to format context
- Time for LLM API call
- Time to parse response
Step 2 – Optimize retrieval:
- Reduce chunk count: Test 50 vs 20 vs 10 chunks. Find minimum that maintains quality.
- Parallel retrieval: Fetch chunks in parallel, not sequentially.
- Smaller chunks: Larger chunks = more tokens = slower processing. Test 256-token chunks vs 512-token chunks.
- Better indexing: If vector search is slow, check your index type (HNSW vs flat).
Step 3 – Optimize context preparation: Don’t send all 10 chunks if the LLM only needs 3. Rank them. Send the top 3. Expand only if needed.
Fast test: Log P50, P95, P99 latencies with timing breakdown. Find your bottleneck. Most teams discover retrieval is60%+ of latency. Cut retrieved chunk count in half. Test quality. Usually it’s fine.
Planning advantage: University of Chicago research on 86,000 developers shows that users who begin with a plan enjoy ~4 percentage‑point higher agent‑accept rates. Planning first improves alignment and downstream productivity.
Retrieval‑side optimizations: Even a well‑planned request can be delayed if the retrieval stack dominates latency. Start by measuring each pipeline stage, then reduce the number of retrieved chunks (e.g., 50 → 10), parallelize fetches, and choose a performant index. After each change, re‑run the plan‑first test to ensure quality and acceptance stay high.
Takeaway: Plan your retrieval strategy, test it, measure it, then optimize. Don’t just generate and hope.
Pattern 5: No Quality Measurement
The waste:
LLM features ship without measuring output quality. Tech teams change prompts, switch models, adjust parameters—with zero data on impact.
Quality degrades silently. Users complain. Teams don’t know why.
Most AI projects fail due to operational gaps, particularly the lack of measurement systems, rather than technical limitations.
Use Case:
A team deployed an LLM-powered classification system. It worked fine in testing.
Three months later, users reported accuracy problems. The team had no metrics. They couldn’t tell when the decline started or what caused it.
They finally built an evaluation set. Accuracy had dropped from 87% to 61%.
Root cause:
They’d changed the prompt four times. Each change degraded the quality slightly. No one measured it.
Why does this happen?
Evaluation feels like extra work. Teams want to ship features. “It looks good” becomes the quality bar. LLMs are non-deterministic. The same prompt gives different outputs. Teams can’t tell whether a change improved quality or was just lucky.
University of Chicago research on AI coding agents found that teams with strong measurement systems maintained quality while increasing output by 39%. Without evaluation frameworks, teams couldn’t tell if changes helped or hurt.
How to fix it:
Step 1 – Build evaluation dataset:
- Collect 100-200 representative examples
- Add expected outputs (human-labeled)
- Cover common cases and edge cases
- Update monthly as the product evolves
Step 2 – Define metrics: For classification tasks: accuracy, precision, and recall. For generation tasks: relevance (1-5 scale), completeness, correctness. For RAG tasks: answer quality, source attribution accuracy
Step 3 – Automate evaluation: Run your eval set on every prompt change. Track scores over time. If a change drops quality 5%+, revert it.
Use LLM-as-judge for generation tasks (one LLM evaluates another’s outputs). This scales better than human evaluation.
Step 4 – Monitor production: Sample 1-5% of production outputs daily. Evaluate them. Track quality trends. Catch degradation early.
First step:
Create a 50-example eval set this week. Run your current system against it. Establish a baseline. Now you can measure if changes help or hurt.
Pattern 6: The Experience Paradox
The waste:
Most organizations assume that AI tools help junior developers more. They invest training budget in junior staff. They expect experienced developers to “figure it out on their own.” But the University of Chicago study found the opposite.
The data:
A University of Chicago study analyzing 44,000 developers found experienced developers use AI agents more effectively:
- 6% higher acceptance rates for AI-generated code per additional 6.6 years of experience
- 1.6 percentage points more likely to send planning messages first (an ~11% relative increase)
- 0.8 percentage points less likely to need code explanations per 6.6 years of experience
- Consistently higher code acceptance across all experience levels
It is the opposite of AI autocompletion tools, which junior developers accept more frequently.
Why this happens:
Organizations see AI as a “leveling tool” that helps juniors catch up. That’s true for autocompletion tools that help during task execution.
But AI agents require task specification. Experienced workers are better at:
- Defining clear requirements
- Evaluating outputs systematically
- Understanding when to accept vs reject
- Planning before implementing
These are Lean skills. Experience builds them. AI agents amplify them.
The research insight: The study found that experienced developers have higher acceptance rates because they:
- Send planning requests more frequently before implementation
- Provide clearer context from deeper codebase knowledge
- Need fewer explanations of existing code patterns
- Can evaluate quality more effectively
Junior developers accept less AI-generated code not because the AI performs worse for them, but because they can’t evaluate quality as effectively. They also spend more time asking the agent to explain code they’re unfamiliar with.
How to fix it:
Flip your training priority: Train experienced developers on AI agent usage patterns first. They’ll get more value immediately. They can then coach junior developers.
Measure accept rates by experience level: Track who’s accepting AI outputs and at what rate. If your experienced developers have low acceptance rates, they need better, prompt training.
Coach on “plan-first” usage: Research shows that planning before implementation improves outcomes. Teach developers to ask agents to plan, review the plan, then implement.
Track context quality: Experienced developers provide better context because they understand the codebase. Make context-building a teachable skill.
Quick diagnostic: Analyze your team’s AI agent usage by experience level. If experienced developers aren’t using agents effectively, you’re leaving money on the table. Start there.
The Real Problem
These aren’t just technical problems. They’re operational skill problems.
University of Chicago research analyzing 86,000 developers found that experienced workers achieve 6% higher AI acceptance rates per 6.6 years of experience. They plan before implementing, evaluate systematically, and provide better context.
The same Lean skills apply:
- Planning before execution (PDCA)
- Systematic evaluation (quality at the source)
- Clear specification (standard work)
- Context awareness (go and see / gemba)
According to the research, this is the shift from “syntactic to semantic work”, from typing code to specifying objectives and evaluating results.
It is exactly where Lean expertise becomes critical.
Most LLM teams focus on:
- Which model to use
- Whether to fine-tune
- GPU optimization
- Prompt engineering techniques
They ignore the operational skills that determine success:
- How to specify tasks clearly
- How to evaluate outputs systematically
- When to accept vs. reject
- How to plan before implementing
Evidence indicates the value of these skills: organizations using AI agents saw output increases of 26-39%. But those gains only materialized for teams with strong operational practices—planning, evaluation, and systematic improvement.
I’ve built these operational capabilities in tech teams for 15 years. The technology changes, but the required skills remain constant: planning, measurement, systematic evaluation, and clear specification.
These drove results in software development (91% reduction in defects). They drove efficiency in IT operations (68% on-time improvement). Now they’re driving AI productivity.
Same fix: build the operational capabilities to use the tools effectively.
Start Here
Pick one pattern based on your biggest pain point:
High or growing API costs?
→ Start with Pattern 1 (redundant calls) or Pattern 2 (missing caching)
→ Quick diagnostic: Log API calls for one typical user session. Count duplicates.
Slow response times frustrating users?
→ Start with Pattern 4 (slow retrieval)
→ Quick diagnostic: Add timing logs to each pipeline stage. Find your bottleneck.
Inconsistent or declining quality?
→ Start with Pattern 5 (no measurement)
→ Quick diagnostic: Sample 20 recent outputs. If you can’t spot quality patterns, you need metrics.
Prompts that feel bloated?
→ Start with Pattern 3 (unoptimized prompts)
→ Quick diagnostic: Count tokens in your most-used prompt. Over 500? There’s waste.
Experienced developers underperforming with AI?
→ Start with Pattern 6 (experience paradox)
→ Quick diagnostic: Compare AI acceptance rates by experience level. If juniors outperform seniors, you have a training problem.
Most teams find 30-50% savings in the first pattern they fix.
Can’t decide where to start? That’s exactly what my 5-day diagnostic solves.
Ready to Find Your 40-60% Savings?
I’m offering free 5-day diagnostics to 2 LLM teams this quarter. What you get:- Workflow mapping of your LLM operations
- Waste pattern identification across all 6 patterns
- Specific recommendations with estimated savings
- No cost. No obligation.
[Book your diagnostic call→]
Leave a Reply