Delivered engagement Benchmarked build note

Asking an AI about your own documents is easy. Knowing the answer is true is not.

Loom answers questions about a document set by retrieving the specific passages an answer is built from and reporting a resolvable citation for every claim. It is built, tested, and benchmarked. This page shows what it does, what the numbers say, and what they do not.

An early build, with 211 automated tests behind it. The numbers below come from the controlled test run behind a delivered client engagement; client identity and data are withheld.

Delivered client work. The 1.00 and 100 percent figures are single-run results on a small test corpus, not a claim about every future workload. Expert review of the output stays part of every use.

The problem

A business points an AI system at its own documents and asks a question about them. The answer comes back fluent and confident, and it may even be correct. Nothing in the answer tells you where the information came from. If the model filled a gap from somewhere other than your files, the answer gives you no way to notice.

For contracts, SOPs, product docs, prior proposals, or compliance records, that gap is the whole cost. A summary you can spot-check is useful work. A plausible answer you cannot check is a liability written in good prose.

What loom does

Loom is a retrieval-augmented generation engine built to close that gap. Given a question, it searches the document set by meaning and by exact terms, fuses the two rankings, writes an answer from the retrieved passages, and puts a citation behind every claim.

Hybrid retrieval

Dense vector search and BM25 keyword search run in parallel and are combined into one ranking with reciprocal rank fusion. The two signals miss in different ways, so the fused ranking is steadier than either alone. The benchmark below puts a number on that.

Model router

A router selects the generation backend per request across Claude, OpenAI, and Ollama. The model step is a swappable part rather than a hard-coded choice, which also means a deployment can point it at hardware you control through the Ollama backend.

Citation layer

Every claim in an answer is tied to the passage it came from, and the citation has to resolve to real text in the corpus. The citation-resolve rate is a measured property of the tool, not an assertion. The measured value is below, along with the size of the corpus it was measured on.

What exists today

Loom runs. Version 0.1.0 covers hybrid retrieval, rank fusion, the citation layer, and the router across the three backends, and the suite behind it has 211 test functions. It was built and delivered because a client needed a citation standard the market wasn't meeting.

Measured results, and what they are measured on

The v0.1.0 benchmark runs against a small hermetic test corpus, put together so the correct source passage is known for every question. On that run: recall@5 of 1.00, meaning the passage an answer depends on appeared in the top five retrieved passages every time. Hybrid retrieval scored a mean reciprocal rank of 0.97, against 0.89 for dense retrieval alone, so fusion moves the right passage higher, not just somewhere in the list. The router selected the correct backend on every request. And the citation-resolve rate was 100 percent: in a controlled test, every claim resolved to a real citation.

What the benchmark does not tell you

Those are single-run numbers on a small, clean corpus. They are not production-scale results. A larger document set brings near-duplicate passages and conflicting versions, and real source files are messier than a purpose-built test corpus. Every one of those factors pushes accuracy down.

What the benchmark establishes is that the pieces work as designed and that the citation path is measured rather than promised. What it does not establish is the score loom would post on your document set. That number only comes from testing against your documents, which is what a pilot is for.

How it's built

Retrieval ranking is computed, not generated. Reciprocal rank fusion over the dense and BM25 result lists is a fixed formula, so identical inputs give an identical ranking. The language model's role is to write an answer from the passages it is handed, not to supply facts from memory, and the router picks the backend before any text is produced.

Data handling

The router includes an Ollama backend, so the generation step can run on hardware you control. Where a commercial backend fits your requirements better, the router can select it instead, and data handling is scoped with the work the same way it is on every engagement on this site.

Common questions

Is this a client engagement?

Yes. Loom was built and benchmarked for a client. The numbers here describe the delivered tool; client identity and data are withheld.

Why publish benchmark numbers that are not production numbers?

Because most AI answers about your documents come with no citation at all. A measured score on a small corpus, with its limits stated, says more than an unmeasured claim would. The score that matters, on your corpus, is a pilot question.

What would a pilot look like?

The same shape as every pilot here: your document set, your real questions, one named deliverable, scoped before it starts. For loom that means running retrieval against your corpus and reporting the citation-resolve rate we actually measure on it.