Guides → Playground & Guide → Multimodal RAG Playbook - Architecture, Cost, and Rollout for Vision/Audio/Text
Meet Theo Romero. Staff Engineer building a video + document Q&A product. "Three modalities (video, audio, text). Three architecture options. How do we pick - and how do we roll out without burning the budget?"
🔥 First prototype was $30K/mo at 100 users. Need to understand the architecture economics before scaling.
Multimodal RAG isn't 3 RAG pipelines bolted together. Vision, audio, and text each have different cost models, different failure modes, and different operational profiles. Picking the wrong architecture upfront costs 3-5× more to fix later.
Theo's prototype hit $30K/mo at 100 users - projecting $300K/mo at 1K users. Root cause: native multimodal embeddings called per-query for every image, no caching, no preprocessing. The playbook codifies which architecture to pick when, with cost ranges for each.
Three architecture patterns, three sweet spots. (1) Convert-to-text - transcribe audio, OCR images, then text-only RAG. Cheapest, simplest, may lose visual context. (2) Native multimodal embeddings - CLIP, multimodal embedding models. Most capable, most expensive. (3) Hybrid - image embeddings + text embeddings + audio transcripts, joined at retrieval. Most complex, often optimal at scale.
Here are the inputs that move the result the most. Play with the sliders and check it out. The number updates live.
Document, image, and video pipelines plus the LLM answering. ~30 days assumed.
💡Each media stream adds cost; answering queries is often the biggest single slice.
Same calculator, three team sizes. Click a tab to see how the numbers shift.
Image-heavy small app. Native multimodal LLM. Modest scale. ~$800/mo.
Healthy range: $500-1.2K/mo
Theo's product after switching to convert-to-text + caching. ~$12K/mo down from $30K.
Healthy range: $8-15K/mo
Consumer-scale multimodal. Cheap-tier LLM mandatory. Multi-vendor routing. Self-hosted vector DB.
Healthy range: $200-500K/mo
Same calculator, different applications. Sizes above, workloads here. Pick the one that looks like yours.
Pre-loaded scenarios for the most common applications. Click a tab to see realistic numbers, then hit "Try this scenario" to load it into the calculator above.
Skip vision (visual content not needed for Q&A). Transcribe + chunk + embed transcripts.
Healthy range: $15-25K/mo
Papers with figures. Vision for figures + text for body. Premium LLM for reasoning.
Healthy range: $5-10K/mo
Image-similarity product search. CLIP-style embeddings. Cheap-tier LLM only for query disambiguation.
Healthy range: $15-30K/mo
Medical images + clinical guidelines RAG. HIPAA + self-hosted vector DB.
Healthy range: $3-6K/mo (premium tier)
Open the full calculator. Pick a model, enter your tokens, see per-call, daily, monthly, and annual cost.
🚀 Open the full calculator →Complete playbook for multimodal RAG: architecture choices (convert-to-text vs native vs hybrid), cost projections, eval strategy, and rollout timeline.
| Input | Default | Typical ballparks |
|---|---|---|
queriesPerDay
|
30,000 | Pilot · ~100/day = 100 · Production · ~1K/day = 1,000 · High traffic · ~10K/day = 10,000 |
workingDaysPerMonth
|
30 | Business days · 22 = 22 · Every day · 30 = 30 |
videoMinutesPerDay
moves the needle
|
5,000 | — |
imagesPerDay
moves the needle
|
50,000 | — |
documentsPerDay
moves the needle
|
2,000 | — |
avgPagesPerDoc
|
30 | — |
llmTier
|
balanced | — |
Ballparks are broad industry starting points (sourced ranges; * = rough estimate) — your result gets more accurate as you replace them with measured numbers.
Try them live in the calculator;
API & agent users get the same data from the MCP resource aicost://input-reference/multimodal-rag-playbook.
Audio costs are per-minute, dominated by transcription. $0.003-0.006/min × volume × 30 days.
Vision costs are per-image, vary 50× by detail level. Classification: $0.001/image. OCR: $0.01-0.05/image. Pick the lowest detail level your eval allows.
Text RAG is the cheapest line per unit. Standard pipeline. Embedding + storage marginal.
LLM read with multimodal context dominates if not optimized. Vision tokens count toward LLM input - passing images to LLM costs 10-50× more than text. Cache aggressively.
Honest limitations. Every model is wrong; some are useful. Where this one falls short:
For these, use: Multimodal RAG Stack for cost detail. Vision Cost + Audio Cost for per-modality math.
Cost isn't the only dimension. Click any constraint to see how recommendations change.
Convert-to-text is the cost-effective default. Move to native multimodal only if eval shows quality benefit on your workload. Hybrid only at scale.
Multimodal hallucinations are sneakier. Eval each modality independently.
Compliance is per-modality. Vision-API BAA may differ from text-API BAA. Voice biometrics has its own regs.
Audio + images are highest-PII modalities. Strip metadata, get explicit consent, retention policy.
Multimodal queries are slower. Streaming UI helps. Pre-process modalities in parallel where possible.
Vision and audio APIs vary widely across vendors. Multi-vendor multimodal is harder than multi-vendor text.
Multimodal MLOps is genuinely harder. Eval frameworks for vision-RAG and audio-RAG are still maturing.
Tradeoff analysis is where most AI projects go sideways. Talk to a CFO-grade AI cost analyst →
The gaps we just listed are real, and they are the expensive ones: your actual prompts, your switching cost, your MLOps overhead. An AICost expert spends the hour on your AI and cloud costs, not a generic playbook. You leave with a written report: the way forward, in 30 days of concrete steps.
Not sure yet? The $39 AICost Blueprint credits toward a Session, and the Session fee credits toward any plan. You never pay twice for the same ground. See all pricing →
You have seen the shape of it. Open the calculator with your model, your tokens, your volume.
🚀 Open the full calculator →Author: Subu Vdaygiri, Founder & CEO of CloudIntelligence.ai. 17 years Fortune 100 (Ingram Micro, Siemens). Wharton CTO program · Kellogg CPO program · 10× AWS+Azure certified.
Why this matters: pricing for major vendors has dropped 40-90% in the last 24 months. A budget set 12 months ago is probably wrong by 30%+.
View 3-year history for →
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.
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 →