
Nexa IntelligenceEvery fact carries three timestamps.
A flat vector index treats the corpus as if every fact were equally current. That fails the first time a brand partner asks what the data said six months ago, when they made the spring buying decision. The platform runs a bi-temporal model. Every fact in the intelligence matrix carries three independent timestamps.
learned_at records when the system observed the fact, on the date the conversation was enriched. valid_at records when the fact became true in the world, often inferred from the conversation (“I started noticing this last fall” sets valid_at to around October of that year). invalid_at records when the fact stops being true. It is set explicitly when a contradicting conversation lands, and implicitly through half-life decay when no refresh confirms the fact.
The three timestamps together are what let one corpus answer questions about now and questions about a specific past moment, against the same body of data, without re-running the analysis.
[ 01 ] · NAMED: AS-OF REPLAY
Today's query and last May's query against the same corpus.
A brand partner runs a query today. The result is the current state of the corpus, filtered by their scope. The same brand partner runs the same query with an as-of-May parameter. The result is the corpus as it stood that May, filtered by their scope. Both answers are correct. Both are cited back to the conversations that produced them. Neither requires re-running the enrichment pipeline.
This is what makes the layer underwritable in a brand-partner contract. A tool returns today’s best guess. Infrastructure returns the answer the buyer had on the date of the decision. When a brand partner audits their Q2 buying decision against the data they paid for in Q2, the platform shows them the same data they were looking at in Q2. That is the property the brand-partner SLA depends on.
[ 02 ] · NAMED: REFUSING TO GROUND AN AGENT ON DEAD FACTS
The advisor copilot cannot recommend a perception that aged out.
A beauty-advisor copilot recommending “skip the foundation, try the serum” needs to be grounded in a fact whose validity window includes today. If the fact was true in March and contradicted in September, the copilot must not act on the March version. The bi-temporal model enforces this at the retrieval layer. A query with no as-of parameter excludes any fact whose invalid_at is before today. The refusal is in the retrieval API.
The same property protects the dashboard. An operator who asks “what are our advisors saying about the new fragrance” gets the current answer. The historical answer is available with one extra parameter. Both are stamped with their validity window.
[ 03 ] · NAMED: PER-DIMENSION HALF-LIFE
Brand perception decays in weeks. Training gaps decay in years.
Decay is not a single global rate applied to the whole corpus. The ten dimensions move at different speeds, and the model calibrates a half-life per dimension. The calibration below is the published baseline from two years of work. Each vertical refines it on its own corpus.
The half-lives are tunable per vertical. A pharmacy deployment will hold regulatory and compliance facts at a longer half-life than a retail deployment, because the cadence of regulatory change is slower than the cadence of consumer preference. The half-lives are methodology, and they ship with the deployment.
[ 04 ] · NAMED: WHAT DRIVES DECAY BEYOND THE HALF-LIFE
Salience, recency, and contradicting evidence.
The half-life is the baseline. Three signals adjust the decay of an individual fact away from the baseline. Salience. A pain point named by one advisor out of one hundred decays fast. A pain point named by forty decays slowly. The corroboration count across independent conversations is a first-class property on the fact. Recency pressure. A fact unrefreshed for several half-life cycles loses retrieval weight, even if no contradicting evidence has landed. Conflicting evidence. A contradicting new fact accelerates decay of the old one. The old fact is either invalidated or split into a segment-scoped variant where it still holds.
The split case is what makes the model honest. A claim about a brand can stop being true overall while remaining true for one segment. The bi-temporal model and the segment vector cooperate here. The fact does not get deleted. It gets scoped down to where it still applies.
[ 05 ] · NAMED: WHY OPERATORS RENEW
The dashboard shows the staleness clock to the operator.
Bi-temporal validity is not only an analytical property. It is a commercial property. The dashboard surfaces the staleness clock to the operator: “thirty-seven percent of your brand-perception facts have aged out of validity in the last sixty days.” That sentence is the Refresh tier’s economic justification, surfaced automatically by the model. The operator sees the decay. The Refresh tier (six thousand dollars per additional one hundred conversations) converts the decay into a commercial event.
The full economics of refresh, including how the cadence interacts with the pricing tiers, lives on Refresh Economics. The dashboard surfaces themselves live on Platform.