LTV: Definition, Use Cases, and Business Value
LTV (Lifetime Value) is one of the key metrics in marketing, product analytics, and business strategy. It shows how much revenue a single user generates over the entire period of interaction with a product. This metric helps assess a client’s real value, justify acquisition costs, and make well-informed strategic decisions.
Why LTV Is So Important
LTV combines marketing performance with actual business profitability. Without understanding the value a client generates, any acquisition decisions remain educated guesses.
The metric is used by:
- Marketers— to define an acceptable client acquisition cost (CAC) without financial losses.
- Product teams — to evaluate onboarding quality, user retention, and repeat engagement frequency.
- Business teams — to forecast future revenue, plan budgets, and set KPIs.
How to Calculate LTV in GA4
GA4 includes a built-in LTV report. However, to use its insights effectively and interpret results correctly, you should understand how the metric is calculated.

GA4 calculates LTV using device-based data. This means the metric is tied to a specific device rather than a unified user profile. If a person interacts with a product from multiple devices, GA4 counts them as separate users.
As a result, GA4 LTV works most accurately for mobile apps, where a stable user_id is typically used. This also explains why GA4 LTV often produces underestimated or unstable values for web projects.
The GA4 LTV calculation algorithm looks like this:
- Identifying users at the device level.
- Counting all conversions and purchase revenue within a predefined system time window.
- Dividing total revenue by the number of users.
The result is a theoretical LTV that does not account for real cross-device behavior.
How to Calculate LTV in BigQuery
For most businesses, the most accurate approach is calculating LTV using a GA4–BigQuery integration. It provides access to all events, such as user_pseudo_id, user_id, purchase data, and traffic source, and allows you to define custom time windows.
Basic SQL example: LTV at the user_id level
This is the simplest calculation approach. It sums up all the revenue generated by each user and then calculates the average value. This method answers the question: How much revenue does one user generate on average over their entire lifetime with the product?
WITH purchases AS (
SELECT
user_id,// or user_pseudo_id
SUM(event_value) AS total_revenue
FROM `project.analytics_XXXXXX.events_*`
WHERE event_name = 'purchase'
GROUP BY user_id // or user_pseudo_id
)
SELECT
AVG(total_revenue) AS ltv
FROM purchases
LTV using the first interaction date
For cohort analysis, you need to know when a user first interacted with the product.
In this approach:
- The date of the user’s first interaction is fixed.
- All subsequent revenue is collected.
- Lifetime revenue is calculated at the user_id level.
WITH users AS (
SELECT
user_id,// or user_pseudo_id
MIN(event_date) AS first_date
FROM `project.analytics_XXXX.events_*`
GROUP BY user_id // or user_pseudo_id
),
revenue AS (
SELECT
User_id, // or user_pseudo_id
event_date,
SUM(event_value) AS revenue
FROM `project.analytics_XXXX.events_*`
WHERE event_name = 'purchase'
GROUP BY user_id, event_date
)
SELECT
u.user_id,// or user_pseudo_id
u.first_date,
SUM(r.revenue) AS lifetime_revenue
FROM users u
LEFT JOIN revenue r USING (user_id) // or user_pseudo_id
GROUP BY u.user_id, u.first_date
LTV by traffic channels
One of the most valuable use cases for LTV is analyzing it by acquisition channels or traffic sources. This is where LTV directly affects marketing decisions.
In this calculation:
- The user’s first-touch source is identified.
- All revenue generated by that user is summed up.
- Average LTV is calculated for each channel.
WITH first_touch AS (
SELECT
User_id, // or user_pseudo_id
(SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'source') AS source,
MIN(event_date) AS first_date
FROM `project.analytics_XXXX.events_*`
GROUP BY user_id // or user_pseudo_id
),
revenue AS (
SELECT
User_id, // or user_pseudo_id
SUM(event_value) AS revenue
FROM `project.analytics_XXXX.events_*`
WHERE event_name = 'purchase'
GROUP BY user_id // or user_pseudo_id
)
SELECT
source,
AVG(revenue) AS avg_ltv
FROM first_touch ft
LEFT JOIN revenue r USING (user_id)
GROUP BY source
ORDER BY avg_ltv DESC;
Key Takeaways
LTV is not a formal reporting metric or an abstract average. It is a decision-making tool that directly impacts investments and business scaling.
A correctly calculated LTV makes it possible to identify which channels and campaigns attract valuable users, not just traffic. It allows you to compare LTV with CAC and decide whether scaling is safe or detect unprofitable directions early on.
However, you need to remember that GA4 LTV is a device-based estimate. It works well for mobile apps but has clear limitations for web projects. For complex business models and web analytics, BigQuery becomes the only way to obtain a realistic LTV, accounting for user_id, cross-device behavior, traffic channels, and custom time windows.
At the same time, the SQL calculation itself is just the first step. LTV delivers the most value when used systematically, combined with segmentation by channels, cohorts, user types, or products. In this form, LTV transforms from a purely analytical metric into a practical tool for managing business growth.

