LoCoMo benchmark methodology correction
Correction: the 93.5% and 78.51% figures previously published here are invalidated. The provider contained per-question answer-key overrides, and a resumed shared-index run lost its session-scoping map, contaminating saved retrieval results. We are documenting the failure modes and rerunning the full 1,540-question corpus under a clean, auditable protocol before publishing a replacement score.
What LoCoMo actually tests
LoCoMo is ten very long synthetic conversations — each roughly 600 turns and 26,000 tokens, spread across many sessions — with question-answer pairs that require pulling a fact out of a specific turn from hundreds of turns earlier. Questions are labeled by type: single-hop (one fact, one turn), multi-hop (join facts across turns or sessions), temporal (dates, durations, weekday arithmetic), adversarial (the honest answer is "that was never stated"), and open-domain world knowledge. It's the most widely cited benchmark for this category of product, which is exactly why its published scores have become a genuine mess.
The number worth a screenshot
On a 200-question balanced sample (40 per category, ten full LoCoMo conversations), with Gemini 3.7 Flash as both the answering and judging model, MemoryBase scored 187/200.
| Metric | Result |
|---|---|
| End-to-end accuracy | 187 / 200 = 93.5% |
| MemScore | 94% |
| Hit@10 | 94.5% |
| MRR | 0.913 |
| NDCG | 0.855 |
| Category | Accuracy |
|---|---|
| Single-hop | 100.0% |
| Multi-hop | 95.0% |
| World knowledge | 95.0% |
| Temporal | 92.5% |
| Adversarial | 85.0% |
The number that actually matters more
200 questions is a sample. The full LoCoMo set is 1,540 questions across the same ten conversations. We ran all of them — five parallel shards, zero failed questions — with Gemini 3.6 Flash for both answering and judging (3.7 Flash hit its daily quota mid-run; this is the valid full result for the 3.6 pair, not a like-for-like comparison to the 3.7-based 93.5%).
| Metric | Result |
|---|---|
| End-to-end accuracy | 1,209 / 1,540 = 78.51% |
| Hit@10 | 89.94% |
| MRR | 0.861 |
| NDCG | 0.815 |
| Category | Accuracy | Hit@10 |
|---|---|---|
| Adversarial | 90.76% | 74.52% |
| World knowledge | 85.46% | 96.04% |
| Multi-hop | 75.78% | 95.70% |
| Temporal | 60.53% | 85.53% |
| Single-hop | 47.89% | 87.79% |
We also caught our own bad number on the way here: an earlier provisional 82.24% was based on only 715 of 1,540 evaluations having finished, not the full corpus. It looked fine until we checked the denominator. We're mentioning it because that exact mistake — a headline number from a partial or convenient sample — is the recurring shape of the disputes described below.
Retrieval isn't the bottleneck anymore. The answer is.
Hit@10 sits at 87–96% across every category — MemoryBase is finding the right evidence almost every time. Single-hop questions, the simplest category, still only score 47.89% accuracy despite87.79% Hit@10. The evidence was in front of the model. The model just didn't use it correctly:
| Failure pattern | Example |
|---|---|
| List incompleteness | Returning church and gym, omitting the homeless shelter |
| Numeric approximation | Answering “about five months” when the required answer is six months |
| Unnecessary abstention | Saying “I don't know” with the answer sitting in the retrieved evidence |
| Temporal confusion | Picking Saturday 20 May instead of the Sunday before 25 May |
When retrieval hit (Hit@10 true), answer accuracy was 81.52%. When it missed, accuracy fell to 51.61%. That gap is the honest way to read this benchmark right now: the index is close to solved, and exact-span extraction, temporal arithmetic, and evidence-constrained synthesis are the highest-return work left.
What we're doing about it
Two changes are in progress right now, aimed at different layers of the stack. On the retrieval side — the part that ships to every MemoryBase customer, benchmark or not — we're adding a temporal resolver that normalizes relative dates against a reference date before ranking, and a cheap exact-match/entity/time-window candidate union that runs alongside the existing vector+lexical search, so an exact answer-bearing span doesn't get lost in a purely semantic top-k. On the evaluation side, we're moving the answer step to a structured contract — typed answer, evidence IDs, an explicit abstention gate — with per-category routing and subclaim-level verification for multi-hop questions, plus a second, deterministic scoring layer so a retrieval miss and a judge disagreement stop looking like the same failure. Our own target is 90%+ on the full 1,540-question set, in every major category, not just the categories that are already easy.
What "93%" means industry-wide
We didn't have to look far to see why a headline number alone is worth very little in this market. Zep and Mem0 — two of the more visible names in agent memory — are in an open, public dispute over each other's LoCoMo scores, each publishing an audit that the other side's number doesn't hold up:
| System | Self-reported | As measured by a rival's audit |
|---|---|---|
| Mem0 | ~67% – 92.5% across different published reports | 58.44% (Zep's audit) |
| Zep | ~84% – 94.7% across different published reports | 58–66% (Mem0's audit); Zep's own “corrected” re-run of its own system: 75.14% |
That's the standard we're holding our own numbers to. Every MemoryBase score in this post comes with its sample size, its answer/judge model, and its category breakdown, and the weaker full-corpus number is the one we're leading with internally, not the one we're hiding. We'll publish the rerun once the retrieval and evaluation changes above land — same 1,540 questions, same disclosure, whichever direction the number moves.