---
id: "lib-2026-10-21-why-our-llm-cost-tripled-when-we-only-swapped-the"
type: "library"
title: "Why our LLM cost tripled when we only swapped the model"
title_original: "모델만 바꿨는데 LLM 비용이 3배가 된 이유"
lang: "KO"
org: "Daangn (당근 기술 블로그, Medium)"
source_type: "Practitioner post"
date: "2026-10-21"
week: "2026-W43"
url: "https://nosov.ai/library/lib-2026-10-21-why-our-llm-cost-tripled-when-we-only-swapped-the/"
original_url: "https://medium.com/daangn/%EB%AA%A8%EB%8D%B8%EB%A7%8C-%EB%B0%94%EA%BF%A8%EB%8A%94%EB%8D%B0-llm-%EB%B9%84%EC%9A%A9%EC%9D%B4-3%EB%B0%B0%EA%B0%80-%EB%90%9C-%EC%9D%B4%EC%9C%A0-5ae60ab5108b"
tier: "A"
tier_name: "Strong evidence"
tier_reason: "Daangn backend engineer documents a production cost incident with before-and-after hit rates, the mechanism, a break-even formula and fixes tied to provider documentation; a well-documented case with numbers readers can check against their own logs."
summary_basis: "full-text"
original_minutes: "15"
tags: ["llm cost", "prompt caching", "model migration", "operations"]
---

# Why our LLM cost tripled when we only swapped the model

Original title: 모델만 바꿨는데 LLM 비용이 3배가 된 이유

Tier A (Strong evidence): Daangn backend engineer documents a production cost incident with before-and-after hit rates, the mechanism, a break-even formula and fixes tied to provider documentation; a well-documented case with numbers readers can check against their own logs.

Summary based on the full text.

## In short

A Daangn (Karrot) tech blog post on Medium (21 October 2026) by Jaemin Seo ("Jay"), backend engineer on the Community Home team. The team uses an LLM to classify community posts by topic for its recommendation feed. In August 2026 it moved the job from Gemini to OpenAI GPT-5.6 for a 20% lower unit price. Responses were fine and nothing errored, but five days later cost per request was 3.2 times higher. GPT-5.6 places its automatic cache breakpoint at the end of the latest message, so the shared instructions were never cached on their own. The post explains prompt caching across OpenAI, Anthropic and Gemini and how to check it.

## Key numbers

- 20%: lower unit price that motivated the switch from Gemini to GPT-5.6 in August 2026
- 3.2x: rise in cost per request five days after the switch
- 85.8% to 2.3%: fall in prompt-cache hit rate (token basis) caused by the switch
- ~22%: break-even hit rate below which caching costs more than no cache, with a 1.25x write premium
- ~95% / ~1/5: hit rate after the fix and resulting cost per request versus the broken state

## What it reports

- Requests were a long fixed block (instructions and category list) followed by a short post body, sent as one message. Gemini's implicit cache read the shared prefix; GPT-5.5 placed breakpoints every 2,048 tokens and would have too.
- GPT-5.6 and later place one breakpoint at the end of the most recent message, so each cached chunk was "instructions + post A" and never matched "instructions + post B". Almost every request paid the write premium without ever reading.
- Hit rate fell from 85.8% to 2.3%. The only visible difference in responses was one cache field in the usage data.
- Pricing: reads are mostly 0.1x of the input price (0.05x for some models); OpenAI GPT-5.6+ charges 1.25x to write; Anthropic 1.25x for 5-minute and 2x for 1-hour caches; Gemini implicit has no write premium.
- Break-even: average multiplier 0.1h + 1.25(1 - h) exceeds 1 when hit rate h is below about 22%, independent of prompt length.
- Fix: the internal LLM platform now inserts an explicit breakpoint before a template's first variable. Hit rate rose to about 95% and cost per request fell to about one fifth.
- Things that silently break prefixes: timestamps or request IDs near the top, unstable JSON key order, changes to tool lists or their order, output schemas, and settings such as reasoning effort.
- Minimum cacheable lengths and cache lifetimes differ by provider and model; a middleware layer once dropped `cache_control` on some requests.
- Model swaps should be treated as changes to operating conditions: compare cost per request, latency and token-basis hit rate on production traffic for at least a day.

## How they got it

First-hand incident analysis from production usage data, with mechanism explained from model architecture and provider documentation as of October 2026. Hit rates are token-based. Code samples show the explicit-breakpoint fix for each provider.

## Limits

- One workload (short varying input after a long fixed prefix); gains differ for chat or agent patterns.
- Provider pricing and cache rules change by model version; the author says to recheck documentation.
- No absolute spend figures; ratios only.

## Why it matters for companies

Most firms track LLM unit prices, not hit rates, so a cheaper model can raise the bill with no error to flag it. Finance and platform teams should add token-basis cache hit rate and cost per request to model-change checklists and dashboards. Putting breakpoint placement in a shared platform, rather than leaving it to each team's prompts, is the control that held here.

## Key passages in translation

> 닷새 뒤 보니 단가는 내렸는데 요청당 비용은 3.2배가 돼 있었어요.

Five days later, the unit price had fallen but the cost per request had become 3.2 times higher.

> 캐시가 깨져도 에러는 나지 않아요. 비용만 늘어요.

When the cache breaks, there is no error. Only the cost goes up.

> 모델 교체는 코드 한 줄이 아니라 운영 조건을 바꾸는 일로 다뤄야 해요.

A model swap has to be treated as a change to operating conditions, not a one-line code change.

Original: https://medium.com/daangn/%EB%AA%A8%EB%8D%B8%EB%A7%8C-%EB%B0%94%EA%BF%A8%EB%8A%94%EB%8D%B0-llm-%EB%B9%84%EC%9A%A9%EC%9D%B4-3%EB%B0%B0%EA%B0%80-%EB%90%9C-%EC%9D%B4%EC%9C%A0-5ae60ab5108b
