Most customer-lifetime-value tools need months of purchase history before they say anything useful. The shopper who matters most, the one weighing a first purchase right now, is the one they have nothing to say about. We built Auraflow's CLV engine to answer the harder question.
Here's the version of CLV you'll find in most analytics tools. Take the average order value across your past customers. Multiply it by an average repeat rate. Multiply that by an average gross margin. Multiply that by the lifespan you assume your relationship lasts. You get a single number, applied to every customer the same way, computed from data you only have for people who already bought from you.
For the merchant, the resulting number is fine for board slides. For the visitor in front of the store right now, evaluating their first purchase, it's structurally useless. They don't appear in the data the average was built from.
This is the gap we wanted to close.
What we actually want to know
The merchant's real question, at the moment a visitor lands on the storefront, is: how much should I invest in keeping this person here. A price checker who'll convert on a discount and never return is worth less than a researcher who'll convert at full price and come back four times. The dollar amount in each case is different. The right intervention is different. The right ad attribution is different.
You can't separate those visitors using historical AOV. You can only separate them by reading the behaviour that's actually happening in the session.
So that's where we started.
The architecture, in plain terms
The pipeline runs in four stages. We'll describe each at a level that's useful without revealing implementation details we'd rather not advertise to anyone who wants to game them.
Stage 1: behavioural signals from the session
As a visitor moves through the storefront, the tracker collects observations of their interaction. Time spent on specific elements. Patterns of scroll. Whether they read the shipping and returns policies, or switch between products to compare. Whether they revisit the price. Signals are normalised on the server in every case. The CLV engine reads the normalised feature vector inside the per-store boundary, pseudonymously. What the merchant sees is built on the archetype and the prediction, not a recording of the session.
Stage 2: probabilities across five behavioural archetypes
The feature vector is classified against five behavioural archetypes defined up front, not from k-means clustering of past customers. Researcher. Comparison Shopper. Hesitant Abandoner. Price Checker. Impulse Buyer. Each has a characteristic pattern: how long they evaluate, what they respond to, when they return. The classifier outputs probabilities across all five, because most real shoppers are a mix.
Stage 3: survival modelling for repurchase timing
Given an archetype mix and the merchant's catalogue, we estimate when the visitor is likely to return and what they're likely to spend when they do. Survival models are the right tool here because the relevant question isn't "will they return" but "when, with what probability." Both of those drive different operational decisions.
Stage 4: confidence bands, not single numbers
A point estimate of CLV is misleading. A range with explicit uncertainty is useful. The Monte Carlo step samples from the upstream distributions and produces a confidence interval, not a number. The merchant sees both the centre estimate and how confident the model is in it.
The forecast horizons are 30 days, 90 days, and 1 year. We don't go further. (Starter covers the 30-day horizon; Pro and Agency add 90 days and 1 year.)
What the model knows versus what it predicts
This distinction matters more than the architecture does.
The model knows what behavioural signals the visitor has produced in the current session, plus any prior sessions for visitors who've returned. It knows the merchant's archetype-conditional patterns at the catalogue level. It does not know things it can't measure: the visitor's emotional state, their household budget, whether they're shopping for themselves.
The predictions widen their confidence intervals when the underlying data is thin. A first-time visitor with twelve seconds on a single page gets a CLV estimate with a wide band. A returning visitor with three completed purchases gets a narrow one. The downstream recommendations weight by that uncertainty rather than pretending it's not there.
Why per-merchant, from day one
We made one architectural choice that's worth defending: each merchant gets a model trained only on their own store's data. There is no pooled cross-merchant training set. There is no centroid learned from other stores that we move toward.
The reasoning is structural, not philosophical. A supplement brand's price checker behaves differently from a luxury watch brand's price checker. Pooling them produces a model that's bad at both. The signal that matters is the merchant's own data, and the only way to use it cleanly is to keep it isolated.
The trade-off is that new merchants need a period of traffic before their confidence intervals are calibrated. We accept that trade-off because the alternative, importing a centroid from someone else's store, is worse for the merchants we care most about. A specialist store gets a specialist model.
What the merchant actually does with this
Three operational decisions improve with session-one CLV.
Ad spend prioritisation. When a visitor lands from a paid channel, the cost of acquisition is real. If session-one CLV is high, the merchant can extend the customer-acquisition window. If it's low, the merchant can cap spend on the cohort that channel produces. Retargeting decisions made on conversion rate alone rely on the wrong metric. Predicted CLV is the right one.
Lookalike audience construction. Knowing which behavioural archetypes convert at the highest predicted CLV lets the merchant build lookalike audiences from the right seed. A merchant whose repeat buyers convert four times a year produces a different lookalike than a merchant whose price checkers buy once. Everything turns on the seed selection. Predicted CLV identifies it.
Cart recovery decisions. Not every abandoned cart deserves a recovery flow. A high-CLV cart abandonment is worth a personalised follow-up. A low-CLV cart abandonment is worth either nothing or a single, generic prompt. Spending recovery effort uniformly is wasteful. Predicted CLV makes the spending decision rational.
The point of forecasting isn't to be right about every shopper. It's to be useful at the moment a decision has to be made, which is almost always before the data is in.

