# DeepSeek vs Local Ollama — Cost Comparison ## Per-Scan Cost (Appointment Screenshot Extraction) | | DeepSeek V4 Flash | Local qwen2.5:14b (Ollama) | |---|---|---| | OCR step | Free (browser Tesseract.js) | Free (browser Tesseract.js) | | LLM input tokens | ~2,000 tokens | ~2,000 tokens | | LLM output tokens | ~400 tokens (non-thinking) | ~400 tokens | | **Per-scan cost** | **$0.0004** | **$0.0015** (GPU power) | | **Scans per dollar** | ~2,500 | ~667 | | **Annual (daily)** | ~$0.15 | ~$0.55 | ## Token Breakdown Typical appointment screenshot (10 appointments): - System prompt: ~1,200 tokens (extraction rules, OCR artifact fixes, VIN recovery) - OCR text: ~800 tokens (raw text from 10 appointment rows) - Output JSON: ~400 tokens (structured appointments array) - Total: ~2,400 tokens ## Pricing (DeepSeek V4 Flash, June 2026) | | Per 1M tokens | |---|---| | Input (cache miss) | $0.14 | | Output | $0.28 | Note: Cache hits are rare for one-off scan requests. The system prompt is large (~1,200 tokens) and repeatable across scans, so cached input could drop cost 95% if DeepSeek's KV cache covers it. ## Thinking Mode V4 Flash defaults to **thinking mode** (adds ~200 internal reasoning tokens to output). Disabling via `thinking: {type: "disabled"}` keeps costs at the lower rate. The appointment extraction task is straightforward structured parsing — thinking adds cost with no accuracy benefit. ## Privacy Trade-off - **DeepSeek**: Customer names, phone numbers, VINs, and vehicle details are sent to DeepSeek's cloud API servers - **Ollama**: All data stays on the local GPU (RTX 2080 Ti FE, 11GB VRAM) - Cost difference is negligible at ~$0.40/year — the deciding factor is privacy preference