Ask most PrestaShop store owners "how much is a customer worth?" and the answer comes back as average order value: "About 65 EUR." That number is sitting right there on the dashboard, so it's the one people reach for. The trouble is it answers a different question. A customer who spends 50 EUR once is worth a fraction of one who spends 30 EUR four times a year for five years — and average order value can't tell those two apart. Customer lifetime value (CLV) can. It's the single number that tells you what a customer is actually worth over the whole relationship, and once you have it, almost every marketing decision you make gets easier: how much you can spend to acquire a customer, whether to chase new buyers or keep existing ones, which customers deserve your attention. This guide is about getting that one number out of your own PrestaShop data and using it — not the textbook version of CLV, but the version your back office can actually produce.

What CLV is — and why average order value misleads you

CLV is the total revenue (or, more honestly, the total profit) you can expect from one customer across the entire time they buy from you. It's forward-looking: you're estimating future value from past behaviour. Average order value describes a single transaction; CLV describes a relationship. The gap between them is exactly the part of your business that marketing controls — how often people come back, and for how long.

The reason this matters in euros rather than theory: it changes the ceiling on what you're allowed to spend to win a customer. If you only know your average order is 65 EUR at a 40% margin, you'll talk yourself into a 26 EUR acquisition budget, lose every competitive Google Ads auction, and pass on partnerships that would have paid back three times over. The store that knows its CLV bids with the full picture. So the practical payoff of this whole exercise is a defensible number you can put next to your acquisition cost — and acquisition without that comparison is guessing.

The formula, and the honest version of it

The textbook CLV formula is:

CLV = Average Order Value × Purchase Frequency × Customer Lifespan

A worked example: an average order of 65 EUR, 2.5 purchases per year, an average customer lifespan of 3 years gives 65 × 2.5 × 3 = 487.50 EUR of revenue per customer. Multiply by your gross margin to get the number that actually matters for decisions — at 40% margin that's about 195 EUR of lifetime profit. That 195 EUR, not the 487 EUR and certainly not the 65 EUR, is the figure you compare against acquisition cost.

One caution before you treat this as gospel: it's an estimate built on averages, and the "lifespan" term is the shakiest part of it (more on why below). It's good enough to make decisions with, not precise enough to bet your whole budget on. Start conservative, then let real data tighten it.

Pulling the real inputs out of PrestaShop

The strength of running a PrestaShop store here is that you don't need a separate analytics platform to get these numbers — the order and customer history is already in your database. Here's where each input lives.

Average order value and purchase frequency

The fastest read is built in: Stats in the back office (the AdminStats controller). Open Stats → Best customers and set the date range to at least the last 12 months — anything shorter and a few seasonal buyers will distort the picture. That panel lists customers with their valid-order count and total spend, which gives you both pieces: average order value is total revenue ÷ total orders, and purchase frequency is total orders ÷ unique customers. If you had 2,400 valid orders from 1,000 distinct customers over the year, your purchase frequency is 2.4.

If you want the numbers without eyeballing a table, Advanced Parameters → SQL Manager lets you query the source directly and export to CSV. The important detail most people miss: use total_paid_real from ps_orders (the amount actually paid and collected for the order), not total_paid (what the order was supposed to be). If you want net revenue, subtract refunds recorded via order slips, since partial refunds are tracked separately rather than always being reflected in total_paid_real. The difference between counting what was paid versus what was invoiced is the difference between CLV and wishful thinking. A query along the lines of:

SELECT COUNT(DISTINCT o.id_customer) AS customers, COUNT(*) AS orders, SUM(o.total_paid_real) AS revenue FROM ps_orders o WHERE o.valid = 1 AND o.date_add >= '2025-06-01';

gives you all three inputs in one row. Filtering on o.valid = 1 matters — it drops cancelled, failed, unpaid or otherwise non-valid order states that would otherwise inflate your frequency (abandoned carts never become rows in ps_orders, so they live outside this query entirely). (Confirm your table prefix; ps_ is the default but many installs change it.)

Customer lifespan — the input nobody can read cleanly

This is the genuinely hard one, because PrestaShop doesn't store a "lifespan" — you infer it from the gap between a customer's first and last order, and from how many customers ever come back at all. A young store simply doesn't have the history yet: if you opened two years ago, you cannot honestly claim a 4-year lifespan. Be explicit about this rather than plugging in a flattering guess.

A defensible approach with limited history is the repeat-rate decay model: look at what fraction of customers make a second purchase, then a third, and so on, and use that curve to estimate an average. PrestaShop gives you the starting point directly — the same Stats → Best customers panel shows a Valid orders count per customer, so the share with two or more orders is your repeat rate (there's no built-in “new vs returning” report, so this — or the SQL above — is how you get it). If you have no curve to work from yet, plug in a deliberately conservative placeholder — and treat it as exactly that, an illustrative stand-in rather than a benchmark, since real lifespan varies enormously by vertical and purchase cycle — until your own decay curve says otherwise. When your data is too thin to trust, run CLV on a one-year horizon instead and call it "first-year value" — an honest small number beats an invented large one.

The decisions CLV should actually drive

A number you calculate and then file away has changed nothing. Here's where CLV earns its keep.

Your acquisition ceiling (CLV vs CAC)

This is the headline use. Lifetime profit per customer sets the absolute most you can pay to acquire one and still come out ahead. With 195 EUR of lifetime profit you could spend up to 195 EUR to break even — but you'd want real margin, so a target nearer 50–80 EUR leaves room for the customers who never return. The ratio people watch is CLV-to-CAC: comfortably above 3:1 means you can afford to be aggressive; near 1:1 means you're buying customers who don't pay you back. A 500 EUR CLV is meaningless next to a 400 EUR acquisition cost — CLV only ever has meaning in relation to what it costs to win and serve the customer.

Where to spend: keeping vs winning

The formula itself tells you where the leverage is. Run the three levers and watch what each does to the same 487 EUR baseline:

LeverChangeNew CLVEffect
Average order value65 → 75 EUR562 EUR+15%
Purchase frequency2.5 → 3.0/yr585 EUR+20%
Customer lifespan3 → 4 years650 EUR+33%

The frequency and lifespan levers move the number most — and those are retention levers, not acquisition. That's the strategic punchline of CLV: for most stores, getting an existing customer to come back once more is cheaper and higher-impact than buying a brand-new one. We treat the first sale as the start of the relationship, not the finish line — the full retention playbook is in building a customer retention strategy, and the levers themselves get their own treatment: lifting basket size in understanding your real profit margins, and the post-sale experience that decides whether anyone returns in the post-purchase experience.

Stop treating customers as one average

The "average customer" worth 487 EUR is a statistical fiction — your real customer base is a steep curve, where a small group of buyers generates a large share of revenue and a long tail buys once on a discount and never returns. Spending the same on both is how marketing budgets evaporate. CLV is the input to that split, but the actual segmentation is its own discipline: see treating different customers differently for the how, and RFM analysis for a way to score recency, frequency and spend straight off the same PrestaShop order data you just queried.

Where modules fit — honestly

You don't need to buy anything to calculate CLV; the SQL Manager and the built-in Stats get you there, and that's deliberately the first thing we showed you. The case for a reporting module is narrower and worth stating plainly: it's about not re-running the query every month. A dashboard that keeps CLV, repeat rate and CLV-to-CAC in front of you turns a quarterly chore into a number you glance at — and the value of a metric like CLV is mostly in watching it trend, not in calculating it once. If you'd rather have those figures surfaced continuously than maintain your own queries, that's where a reporting or analytics module pays for itself; if you're happy in SQL Manager, you genuinely don't need one. Either way, the discipline matters more than the tool.

How CLV thinking goes wrong

It's a sharp metric and it cuts both ways. The failures we see most:

  • Betting the budget on a projection. CLV is an estimate stacked on three estimates. Use it to set a ceiling, not to justify spending up to that ceiling from day one.
  • Quoting CLV without CAC. The number is half a sentence on its own. It only means something next to acquisition-and-serving cost.
  • Inventing a lifespan. A two-year-old store claiming a five-year customer lifespan is fooling itself. Calculate first-year value when your history is thin and grow the horizon as the data earns it.
  • Using the overall average to make decisions. Decisions belong at the segment level — the headline average hides both your best customers and your worst.

Make it a habit, not a one-off

Calculate CLV, then re-run it every quarter from the same back-office sources. The direction tells you more than the absolute figure: a number trending up means your retention work is landing and relationships are deepening; a number drifting down means customers are leaving faster than before, and that's the kind of signal worth acting on before another quarter passes. The point of CLV was never the calculation — it's that once you know what a customer is worth, every other marketing decision finally has something solid to stand on.

Share this post:
David Miller

David Miller

Over a decade of hands-on PrestaShop expertise. David builds high-performance e-commerce modules focused on SEO, checkout optimization, and store management. Passionate about clean code and measurable results.

Enjoyed this article?

Get our latest tips, guides and module updates delivered to your inbox.

Comments

No comments yet. Be the first!

Be the first to ask a question or share useful feedback.

Loading...
Back to top