← all runs

Response caching: savings and the semantic-cache correctness trade

Run 20261004-075813 · version dev · 2026-10-04 07:58 UTC · 0 upstream calls (49 replayed) · $0.0000

Question. How much spend and latency do exact and semantic caching save on a realistic support workload, and at what similarity threshold does the semantic cache start serving wrong answers?

Exact cache hit rate
75.5%
spend 76% lower, mean latency 195ms
Semantic cache hit rate
77.0%
at threshold 0.88, 0.0% wrong answers
Semantic lookup latency
482ms
one embedding round-trip per exact miss

Findings

Semantic cache: useful hits vs wrong answers by threshold

Each question is matched against every other stored question. Near-miss questions (similar wording, different answer) are what make low thresholds dangerous.

Paraphrases answered from cache (useful)Queries given another question's answer (harmful)
0.0%25.0%50.0%75.0%100.0%threshold 0.80threshold 0.80 · Paraphrases answered from cache (useful): 36.7%36.7%threshold 0.80 · Queries given another question's answer (harmful): 10.0%10.0%threshold 0.85threshold 0.85 · Paraphrases answered from cache (useful): 20.0%20.0%threshold 0.85 · Queries given another question's answer (harmful): 3.3%3.3%threshold 0.88threshold 0.88 · Paraphrases answered from cache (useful): 10.0%10.0%threshold 0.88 · Queries given another question's answer (harmful): 0.0%0.0%threshold 0.90threshold 0.90 · Paraphrases answered from cache (useful): 6.7%6.7%threshold 0.90 · Queries given another question's answer (harmful): 0.0%0.0%threshold 0.92threshold 0.92 · Paraphrases answered from cache (useful): 0.0%0.0%threshold 0.92 · Queries given another question's answer (harmful): 0.0%0.0%threshold 0.94threshold 0.94 · Paraphrases answered from cache (useful): 0.0%0.0%threshold 0.94 · Queries given another question's answer (harmful): 0.0%0.0%threshold 0.96threshold 0.96 · Paraphrases answered from cache (useful): 0.0%0.0%threshold 0.96 · Queries given another question's answer (harmful): 0.0%0.0%threshold 0.98threshold 0.98 · Paraphrases answered from cache (useful): 0.0%0.0%threshold 0.98 · Queries given another question's answer (harmful): 0.0%0.0%

Cost of the workload by cache configuration

Lower is better.

$0.0000$0.0010$0.0020$0.0030$0.0040No cacheNo cache · Total spend: $0.0040$0.0040Exact cacheExact cache · Total spend: $0.0010$0.0010Exact + semantic @ 0.88Exact + semantic @ 0.88 · Total spend: $0.0009$0.0009Exact + semantic @ 0.85Exact + semantic @ 0.85 · Total spend: $0.0009$0.0009

Mean response latency by cache configuration

Lower is better.

0ms206ms413ms619ms825msNo cacheNo cache · Mean latency: 825ms825msExact cacheExact cache · Mean latency: 195ms195msExact + semantic @ 0.88Exact + semantic @ 0.88 · Mean latency: 370ms370msExact + semantic @ 0.85Exact + semantic @ 0.85 · Mean latency: 367ms367ms

Semantic cache threshold sweep (leave-one-out)

ThresholdParaphrases answered correctly from cacheAny query served a different question's answer
0.8036.7%10.0%
0.8520.0%3.3%
0.8810.0%0.0%
0.906.7%0.0%
0.920.0%0.0%
0.940.0%0.0%
0.960.0%0.0%
0.980.0%0.0%

Workload replay

ConfigurationRequestsUpstream callsHit rateWrong answersTotal costCost vs no cacheMean latencyp95 latency
No cache2002000.0%0 (0.0%)$0.00404+0.0%825ms957ms
Exact cache2004975.5%0 (0.0%)$0.00097-76.0%195ms922ms
Exact + semantic @ 0.882004677.0%0 (0.0%)$0.00092-77.2%370ms1389ms
Exact + semantic @ 0.852004478.0%3 (1.5%)$0.00088-78.3%366ms1386ms

Method notes

Configuration
{
  "model": "gpt-4.1-nano",
  "policy": "balanced",
  "policy_version": "1.0.0",
  "requests": 200,
  "seed": 7,
  "workers": 6
}