Customer Lifetime Value Formula: Calculate CLV

Customer Lifetime Value Formula: Calculate CLV

Use the customer lifetime value formula with Stripe billing data. Sync revenue fields to your CRM, calculate CLV per customer, and automate tracking.

No credit card required

Free 100k syncs every month

Every team knows the customer lifetime value formula. Few teams can actually calculate it with real numbers. The formula requires average revenue per customer, gross margin, and churn rate. Revenue lives in Stripe. Churn rates require comparing billing periods. Margin needs cost data from your support tool. When each input lives in a different system, CLV stays a theoretical exercise on a whiteboard, not a working metric in your CRM.

This guide shows how to extract the exact fields you need from your billing tool, sync them to your CRM, and turn the customer lifetime value formula into a calculated property that updates automatically. For the conceptual overview of CLV, see our complete CLV guide. This article assumes you know what CLV is and want to calculate it from data you already have.

The customer lifetime value formula for SaaS and e-commerce

Two formulas cover most businesses. Both require the same thing: accurate billing data.

SaaS customer lifetime value formula

CLV = Average Revenue Per Account (ARPA) x Gross Margin / Monthly Churn Rate

Component

Where it lives

How to extract it

ARPA

Billing tool (Stripe subscription.plan.amount)

Sum all active subscription amounts, divide by customer count

Gross margin

Finance spreadsheet or accounting tool

(Revenue - cost to serve) / Revenue

Monthly churn rate

Billing tool (canceled subscriptions / starting count)

Count cancellations per period, divide by starting subscriber count

Example: 200 customers paying an average of $150/mo, 80% margin, 4% monthly churn. CLV = $150 x 0.80 / 0.04 = $3,000.

E-commerce customer lifetime value formula

CLV = Average Order Value x Purchase Frequency x Average Customer Lifespan

Component

Where it lives

How to extract it

Average order value

Billing tool (Stripe charge.amount)

Total revenue / total orders

Purchase frequency

Billing tool (charges per customer per year)

Total orders / unique customers over 12 months

Average customer lifespan

Billing tool (first charge to last charge)

Average time between first and most recent purchase

Example: $85 average order, 3.2 purchases per year, 2.8-year average lifespan. CLV = $85 x 3.2 x 2.8 = $761.60.

Both formulas share a dependency: the inputs come from your billing tool. If those numbers are six days stale because someone forgot the weekly CSV export, your CLV is wrong before you finish the calculation.

Where to find customer lifetime value data in Stripe, Chargebee, and Recurly

Your billing tool already stores every field the customer lifetime value formula needs. The problem is that these fields stay locked inside the billing tool instead of flowing to the system where your team works.

Stripe fields for CLV calculation:

Stripe field

CLV component

Notes

subscription.plan.amount

ARPA input

Amount in cents. Divide by 100 for dollars.

subscription.status

Churn rate input

Values: active, past_due, canceled, trialing, unpaid

subscription.created

Customer lifespan

Timestamp of subscription creation

subscription.canceled_at

Churn date

Null if still active

customer.created

Lifespan start

When the customer record was created

Sum of charges where paid = true

Lifetime revenue

Total amount charged across all successful payments

invoice.lines.data[].amount

Monthly revenue

Current period charge amount

Chargebee equivalent fields: subscription.plan_amount, subscription.status, subscription.created_at, subscription.cancelled_at, customer.created_at.

Recurly equivalent fields: subscription.unit_amount, subscription.state, subscription.created_at, subscription.canceled_at, account.created_at.

The pattern is the same across all three: subscription amount, status, creation date, and cancellation date give you ARPA and churn. Charge history gives you lifetime revenue. The question is how to get these fields into the system where your team actually calculates CLV.

Step-by-step: sync billing data to your CRM for customer lifetime value calculation

The enterprise playbook for CLV calculation involves a data warehouse, dbt models, and SQL queries. That approach requires a data engineer and three months of pipeline work. For a team of 20, here is the faster path.

1. Connect your billing tool. In Oneprofile, add Stripe as a source. Use a restricted API key with read access to Customers, Subscriptions, and Charges. A restricted key limits access to only the data types you need. Oneprofile validates the connection before saving.

2. Connect your CRM. Add HubSpot (or Salesforce, Attio) as a destination. Authenticate via OAuth. Grant read/write access to Contacts and Contact Properties.

3. Map billing fields to CRM properties. This is where the CLV formula becomes operational. Map the fields your formula needs:

Stripe field

CRM property

Property type

Purpose

subscription.plan.amount / 100

monthly_revenue

Number (currency)

ARPA input

subscription.status

subscription_status

Dropdown

Churn tracking

subscription.created

subscription_start_date

Date

Tenure calculation

Sum of paid charges

lifetime_revenue

Number (currency)

Historical CLV

subscription.plan.nickname

plan_name

Single-line text

Segmentation

subscription.current_period_end

renewal_date

Date

Retention outreach

Use email as the matching key. Oneprofile creates custom CRM properties automatically if they do not exist.

4. Set sync mode. Use "Update or Create." Existing CRM contacts get enriched with billing fields. Stripe customers without a CRM record get created as new contacts.

5. Schedule the sync. Every 15 minutes keeps billing data fresh enough for operational use. When a customer upgrades from Free to Team in Stripe, the CRM reflects the change within 15 minutes, not next Monday.

6. Build CLV as a calculated CRM property. With billing fields on the contact record, create calculated properties in your CRM:

  • Months subscribed: Difference between today and subscription_start_date in months

  • Average monthly revenue: lifetime_revenue / months subscribed

  • Estimated CLV: monthly_revenue x gross margin / churn rate (use your company-wide churn rate as a constant, or segment by plan tier for higher accuracy)

HubSpot, Salesforce, and Attio all support calculated properties. The formula runs on data that updates automatically.

Automate customer lifetime value tracking with real-time billing sync

Manual CLV tracking breaks for three reasons: exports are late, formulas reference stale data, and nobody owns the update process. Automated sync eliminates all three.

When billing data flows to your CRM on a 15-minute schedule, CLV becomes a living metric:

A customer upgrades from $100/mo to $250/mo. Stripe records the change immediately. Within 15 minutes, the CRM property monthly_revenue updates to $250. The calculated CLV property recalculates. Your success team sees the updated value on the contact record the same day.

A customer's payment fails. Stripe sets subscription.status to past_due. The CRM property updates. Your at-risk segment grows by one. A CRM workflow triggers, notifying the account owner to follow up. No one checked a Stripe dashboard. The data moved itself.

A new customer signs up. Stripe creates a Customer and Subscription. Oneprofile creates a CRM contact with all billing properties populated. The contact enters the CLV calculation from day one, not after someone remembers to update the spreadsheet.

Tracking method

Data freshness

Effort to maintain

CLV accuracy

Quarterly CSV export

0-90 days stale

2-4 hours per quarter

Low

Weekly manual update

0-7 days stale

30 min per week

Medium

Automated 15-min sync

0-15 minutes stale

Zero after setup

High

The difference between medium and high accuracy compounds over time. A customer who upgraded two weeks ago shows a higher CLV with real-time data and the same CLV as last month with stale data. Multiply that gap across 500 customers and your total customer equity estimate drifts further from reality every day.

Once billing data flows automatically, you can build CRM segments that use CLV operationally: route high-CLV accounts to dedicated success managers, trigger upgrade campaigns for customers approaching plan limits, and flag accounts whose CLV is declining due to downgrades or reduced purchase frequency.

Ready to get started?

No credit card required

Free 100k syncs every month

Ready to get started?

No credit card required

Free 100k syncs every month

Ready to get started?

No credit card required

Free 100k syncs every month

What is the simplest customer lifetime value formula for SaaS?

ARPA times gross margin divided by monthly churn rate. For example, $100 ARPA at 80% margin with 5% churn gives CLV of $1,600. The formula is simple. Getting accurate inputs from your billing tool is the hard part.

Can I calculate CLV from Stripe data alone?

You can calculate a basic CLV using Stripe revenue and churn data. For a profit-adjusted CLV, you also need cost-to-serve data from your support tool and retention signals from your product database.

How do I get Stripe billing data into my CRM for CLV calculation?

Connect Stripe as a source and your CRM as a destination in Oneprofile. Map subscription fields (plan, MRR, tenure, status) to contact properties. Set a 15-minute sync schedule. Done in under 30 minutes.

Do I need a data warehouse to calculate customer lifetime value?

No. If billing fields sync to your CRM automatically, you can calculate CLV per customer using CRM formulas or reports. A warehouse is only necessary for advanced predictive models.

How often should CLV data be updated?

Every time billing data changes. With automated sync, your CRM fields update within 15 minutes of a plan change, payment, or cancellation in Stripe. Manual CSV exports make CLV stale within days.

© 2026 Oneprofile Software

455 Market Street, San Francisco, CA 94105

© 2026 Oneprofile Software

455 Market Street, San Francisco, CA 94105

© 2026 Oneprofile Software

455 Market Street, San Francisco, CA 94105