Case Study
:
Backtests
Embeddings carry the same problem as scores. Encode a 2009 filing with a current-day model, and the vector is shaped partly by what was written about its subject in later years. Similarity search over historical documents then ranks matches on information that was not available at the time. Retrieval systems and event-matching pipelines built on those vectors inherit the bias.
ChronoLLM embeds each document with the vintage matching its date: a version of the model trained only on text available up to that point. Distances in that space reflect only what was knowable at the time. The nearest neighbors of a document are the periods that looked similar on the information available then, not the periods that ended the same way.
Only the encoder changes
The vectors go into the vector database you already use. Live documents use the current vintage, historical documents use theirs, and the encoder swap is the only change to the pipeline. On the published newswire benchmark, the point-in-time embedding matched the performance of a standard, current-day encoder.