What is MemScore?
MemScore is a composite metric that captures three dimensions of memory provider performance in a single line:Components
MemScore is not a single number — it’s a triple. This is intentional. Collapsing quality, latency, and cost into one score hides important tradeoffs. A provider with 90% accuracy at 5,000 tokens is very different from one with 90% accuracy at 500 tokens.
How token counting works
MemoryBench counts tokens client-side using provider-specific tokenizers:
Three token values are tracked per question:
promptTokens— Total tokens in the full prompt (instructions + context + question)basePromptTokens— Tokens in the prompt without any retrieved contextcontextTokens— Tokens in just the retrieved context string
contextTokens because it isolates what the memory provider actually contributed.
Where MemScore appears
CLI output
After a benchmark run completes, MemScore is printed in the summary:Web UI
The MemScore card appears at the top of the run overview page. Per-question token counts are shown next to each model answer in both the question list and detail views.Report JSON
Thereport.json file includes both a display string and structured components:
memscoreComponents for programmatic comparisons — it avoids parsing the display string.
Comparing providers
MemScore is most useful when comparing providers on the same benchmark:
In this example, Provider A has the highest accuracy but the slowest search. Provider B is the fastest but sends the most context without achieving the best accuracy — suggesting its retrieval may be less precise. Provider C lands in the middle on all three axes. There’s no single “winner” — the right choice depends on whether you prioritize quality, speed, or token efficiency.
Backward compatibility
Runs from before MemScore was added will still work. If token data is not present in the checkpoint, thememscore, memscoreComponents, and tokens fields will be undefined in the report. The CLI and web UI gracefully skip the MemScore display when data is unavailable.