Layer one: the statistics are not AI at all
Message counts, who writes more, who starts conversations, response-time distributions, activity across months and hours, the socio-linguistic measures — all of it is computed from your pseudonymised text by conventional code and established natural-language-processing libraries. No large model is in this path.
This is why those numbers are identical every time you analyse the same file. They cannot drift between runs and they cannot be invented, because nothing is generating them. They are counted.
It is the least glamorous layer and the one we would defend hardest. A statistic produced by arithmetic is a fact about your conversation. A statistic produced by a language model is that model's impression of your conversation, wearing a decimal point.
Layer two: the language model
The semantic analysis — sentiment, engagement, conflict, clarity, relationship health — and every exchange you have with the assistant run on a large language model from OpenAI.
To be direct, as we are on our privacy page: this means the pseudonymised text of your conversation is sent to that provider's API. It arrives with no account, no email, no phone number, and no real names, because those were replaced in your browser before anything was uploaded. Under the API terms that provider operates on, the content is not used to train their models.
We deliberately do not publish exact model versions. They change as better ones ship, and a version number on a marketing page is stale within months. What matters is the category and the provider, and those are stated above.
Layer three: the search index
So the assistant can answer "did we ever argue about money" without you having typed those exact words, your conversation is split into chunks and converted into embeddings — numerical representations of meaning. That index belongs to your analysis alone and is deleted along with it.
Layer four: Jev, and what it changes
This layer is new — it went live with this article — and it is worth explaining properly, because it is a genuinely new kind of component rather than a bigger version of the last one.
Jev comes from TypeSafe AI, a San Francisco lab founded by Diogo Almeida, a co-author of the InstructGPT paper behind ChatGPT. It came out of stealth in September 2026 and developers noticed immediately, for a reason that is unusual: Jev does not write.
It is what its makers call a System One model, after Daniel Kahneman's fast, intuitive mode of thinking. You give it some state and a typed question, and it returns a typed answer with a calibrated probability attached. Not a paragraph. A value and a number expressing how confident it is. Because the possible answers are defined in advance, there is no space in the output for it to invent one — the failure mode that makes people distrust AI analysis is structurally absent. It was trained entirely on synthetic data, and it is fast and cheap enough to run over an entire conversation rather than a handful of retrieved excerpts.
Here is why that matters for a report about your relationship.
Until now, semantic scores here were produced the standard way: retrieve the relevant passages, hand them to a language model, ask for a conflict score between 0 and 1. It works, and it has three flaws we were never comfortable with. The number is an impression rather than a measurement. It is not reproducible, because different passages surface on different runs. And it cannot show its work — asked "which messages?", a model that formed an impression will happily construct plausible quotes after the fact.
With Jev, the order inverts. Every turn in the conversation gets read, and narrow factual questions are asked about each one — is this dismissive of what was just said? is this an attempt to repair after friction? does this reply engage with the substance or deflect it? Each answer is a probability attached to one specific turn, and all of them are stored.
The scores are then computed in code from those stored labels, exactly like the message counts in layer one. The language model still writes the prose explaining the section, because that is what language models are for — but it is handed finished numbers, and every figure is overwritten with the computed value before it reaches you. The model does not get to round, adjust, or improvise a statistic.
What that buys you: scores that are reproducible, coverage of the whole conversation instead of whichever passages retrieval happened to surface, and findings traceable to specific messages with timestamps. "Where did this come from" now has an answer made of evidence rather than reconstruction.
If you have analysed a conversation here before, this is the layer that changed. The statistics you saw are unchanged — they were already counted. The semantic sections are the ones now built on measurement, and what your statistics actually mean is worth a second read with that in mind.