RAG vs Fine-Tuning · strategic decision tool

Should you fine-tune or build RAG?

The question every AI team asks. Head-to-head cost comparison with realistic workload assumptions.

Pricing verified: 2026-06-05 CFO + CTO decision tool
What this calculator does

At what query volume does fine-tuning a smaller model beat running RAG on a big one?

Why use it
  • RAG has linear cost (cost scales with queries + context size)
  • Fine-tuning has a fixed training cost + lower per-query cost — break-even point depends on volume
  • Quality tradeoff is workload-specific — the calc models the cost side so you can reason about quality separately
🎛 Your use case

We'll compute both paths with realistic assumptions for each.

📚 Your knowledge corpus
This is the #1 signal. Frequently-changing content = RAG wins decisively.
⚙ Approach settings
How much labeled training data you'd need to gather + prepare.
Analyzing...
-
-
📚 RAG approach
Embedding + retrieval + base LLM
-
year 1 total
🎓 Fine-tuning approach
Custom-trained smaller model
-
year 1 total
💡 Recommendations
    ⚖ Side-by-side tradeoffs

    Cost is only one dimension. These factor into the real decision.

    Dimension 📚 RAG 🎓 Fine-Tuning
    Update cycle Real-time (re-embed new docs) Hours-to-days (re-train)
    Data freshness ✅ Always current ⚠️ Frozen at training time
    Citation / provenance ✅ Native (returns source docs) ❌ Black box
    Style / tone learning ⚠️ Limited (prompt engineering) ✅ Strong (the main FT strength)
    Domain vocabulary ⚠️ Base LLM's knowledge ✅ Learned from examples
    Prompt length Long (query + retrieved context) Short (model knows context)
    Latency Retrieval + generation (200-500ms extra) Faster (no retrieval)
    Build time Days (pipeline setup) Weeks (label data + train + eval)
    Hallucinations ✅ Grounded in retrieved docs ⚠️ Can hallucinate learned patterns
    Multi-tenant safe ✅ Per-user index isolation ❌ Single model for all
    RAG cost breakdown → FT cost breakdown → Get a RAG vs FT architecture review →

    Go deeper

    Our playbooks on cutting this number.

    🧬
    Embedding Cost
    RAG side detail
    🎓
    Fine-Tuning Cost
    FT side detail
    🗄
    Vector DB Cost
    Where RAG data lives
    💾
    Prompt Cache ROI
    Can beat both approaches

    The calculator's an estimate. Want the real number?

    A 5-day Quickscan ($1,500) reviews your actual usage across every pillar — financial, reliability, governance, privacy, MLOps, observability — and returns a concrete savings plan.

    Book a Quickscan →
    📖 Data sources & methodology 161 text models · 9 embeddings · 24 vision · 41 audio · 8 vector DBs across 10 vendor pages · last verified 2026-06-05

    Methodology

    • All prices are USD per 1 million tokens, current as of 2026-06-05.
    • Vendor-published values have no mark. Inferred/extrapolated values are marked with * and listed below.
    • Batch API discounts are 50% off standard rates across providers that offer Batch mode.
    • Prompt caching discounts vary by provider (typically 80-90% off cached input tokens).
    • Regional data-residency surcharges (Anthropic 1.1x, OpenAI 1.1x, Google regional tiers) are NOT included in base rates.
    • Long-context pricing tiers apply when input exceeds model threshold.
    • Embedding prices are input-only (no output tokens generated).

    Primary sources

    Last-verified date is the most recent successful daily snapshot (aicost_pricing_snapshots) or, when no snapshot exists yet, the latest successful crawler run (aicost_crawler_runs). 10 of 10 vendors are currently verified. Aggregator services (TokenCost, AI Pricing Guru, etc.) are not listed.

    Anthropic
    2026-06-05
    https://www.anthropic.com/pricing
    Daily snapshot since Sep 2023 · 578 days captured
    Anthropic Docs
    2026-06-05
    https://platform.claude.com/docs/en/about-claude/pricing
    Daily snapshot since Sep 2023 · 578 days captured
    OpenAI
    2026-06-05
    https://openai.com/api/pricing/
    Daily snapshot since Sep 2023 · 579 days captured
    Google AI
    2026-06-05
    https://ai.google.dev/gemini-api/docs/pricing
    Daily snapshot since Dec 2023 · 554 days captured
    Google Vertex
    2026-06-05
    https://cloud.google.com/vertex-ai/generative-ai/pricing
    Daily snapshot since Dec 2023 · 554 days captured
    DeepSeek
    2026-06-05
    https://api-docs.deepseek.com/quick_start/pricing
    Daily snapshot since May 2024 · 493 days captured
    xAI
    2026-06-05
    https://x.ai/api
    Daily snapshot since Nov 2024 · 411 days captured
    Mistral
    2026-06-05
    https://mistral.ai/pricing
    Daily snapshot since Dec 2023 · 552 days captured
    Cohere
    2026-06-05
    https://cohere.com/pricing
    Daily snapshot since Sep 2023 · 578 days captured

    Inferred values (marked with * in calculator tables)

    Derived from industry conventions, not directly published by the vendor. Typical conventions: cached input = 10% of base (90% off), Batch API = 50% of base (50% off).

    Vendor / Model Field Why it’s inferred
    Anthropic — Claude Sonnet 4.6 cachedInput Derived at 10% of input rate — Anthropic publishes 90% cache-hit discount on this tier.
    Anthropic — Claude Sonnet 4.5 cachedInput Derived at 10% of input rate; same 90% cache-hit convention as Sonnet 4.6.
    Anthropic — Claude Sonnet 4.5 batchInput Derived at 50% of standard input — Anthropic documents uniform 50% Batch discount.
    Anthropic — Claude Sonnet 4.5 batchOutput Derived at 50% of standard output — Anthropic documents uniform 50% Batch discount.
    Anthropic — Claude Haiku 4.5 cachedInput Derived at 10% of input rate — Anthropic 90% cache-hit discount convention.
    OpenAI — GPT-5.4 Mini cachedInput Derived at 10% of input — OpenAI documents automatic 90% discount on cache hits across GPT-5.x tier.
    OpenAI — GPT-5.4 Nano cachedInput Derived at 10% of input — OpenAI 90% cache-hit convention.
    OpenAI — GPT-5.4 Nano batchInput Derived at 50% of input — OpenAI Batch API uniform 50% discount.
    OpenAI — GPT-5.4 Nano batchOutput Derived at 50% of output — OpenAI Batch API uniform 50% discount.
    OpenAI — GPT-5.4 Pro cachedInput Derived at 10% of input — OpenAI 90% cache-hit convention.
    OpenAI — GPT-5.4 Pro batchInput Derived at 50% of input — OpenAI Batch API uniform 50% discount.
    OpenAI — GPT-5.4 Pro batchOutput Derived at 50% of output — OpenAI Batch API uniform 50% discount.
    OpenAI — GPT-5.2 cachedInput Derived at 10% of input; no residency uplift.
    OpenAI — GPT-5.2 batchInput Derived at 50% of input.
    OpenAI — GPT-5.2 batchOutput Derived at 50% of output.
    OpenAI — GPT-5 cachedInput Derived at 10% of input.
    OpenAI — GPT-5 batchInput Derived at 50% of input.
    OpenAI — GPT-5 batchOutput Derived at 50% of output.
    OpenAI — GPT-5.5 Pro cachedInput Derived at 10% of input — OpenAI does not publish a cached rate for *-pro models; using the family convention.
    OpenAI — GPT-5.5 Pro batchInput Derived at 50% of input.
    OpenAI — GPT-5.5 Pro batchOutput Derived at 50% of output.
    OpenAI — GPT-5.2 Pro cachedInput Derived at 10% of input — pro-tier convention.
    OpenAI — GPT-5.2 Pro batchInput Derived at 50% of input.
    OpenAI — GPT-5.2 Pro batchOutput Derived at 50% of output.
    OpenAI — GPT-5.1 batchInput Derived at 50% of input.
    OpenAI — GPT-5.1 batchOutput Derived at 50% of output.
    OpenAI — GPT-5 Pro batchInput Derived at 50% of input.
    OpenAI — GPT-5 Pro batchOutput Derived at 50% of output.
    OpenAI — GPT-5 Nano cachedInput Derived at 10% of input.
    OpenAI — GPT-5 Nano batchInput Derived at 50% of input.
    OpenAI — GPT-5 Nano batchOutput Derived at 50% of output.
    Google — Gemini 3 Flash cachedInput Derived at 10% of input — Google caching discount convention ~90%.
    Google — Gemini 3.1 Flash-Lite cachedInput Derived at 10% of input — Google caching convention.
    Google — Gemini 3.1 Flash-Lite batchInput Derived at 50% of input — Google Batch API uniform 50% discount.
    Google — Gemini 3.1 Flash-Lite batchOutput Derived at 50% of output — Google Batch API uniform 50% discount.
    Google — Gemini 2.5 Pro cachedInput Derived at 10% of input.
    Google — Gemini 2.5 Flash cachedInput Derived at 10% of input.
    Google — Gemini 2.5 Flash-Lite cachedInput Derived at 10% of input — Google caching convention.
    Google — Gemini 2.5 Flash-Lite batchInput Derived at 50% of input — Google Batch API uniform 50% discount.
    Google — Gemini 2.5 Flash-Lite batchOutput Derived at 50% of output — Google Batch API uniform 50% discount.
    Google — Gemini 2.0 Flash cachedInput Derived at 25% of input per Google 2.0 family caching rates.
    Google — Gemini 2.0 Flash batchInput Derived at 50% of input — Google Batch API uniform 50% discount.
    Google — Gemini 2.0 Flash batchOutput Derived at 50% of output — Google Batch API uniform 50% discount.
    Google — Gemini 2.0 Flash-Lite cachedInput Derived at 10% of input — Google caching convention.
    Google — Gemini 2.0 Flash-Lite batchInput Derived at 50% of input — Google Batch API uniform 50% discount.
    Google — Gemini 2.0 Flash-Lite batchOutput Derived at 50% of output — Google Batch API uniform 50% discount.
    xAI — Grok 4 (legacy) cachedInput Extrapolated at 25% of base.

    Pricing is cross-verified against the LiteLLM community registry when available. Daily snapshots are kept in aicost_pricing_snapshots; every change is logged to aicost_price_changelog with old & new values for full audit trail. Read the full methodology →