lifetimes
Lifetimes is a free, open-source Python library for analyzing repeat customer activity and estimating customer lifetime value.
What lifetimes is
Lifetimes is a free, open-source Python library for analyzing repeat customer activity and estimating customer lifetime value. Its BG/NBD model uses purchase frequency, recency, and customer age to forecast expected purchases. Utilities turn transaction records into those summary measures, while another model can estimate whether a customer is still active and display the probability in a matrix. The Gamma-Gamma submodel estimates customer value and can be combined with the purchase model to estimate lifetime value. It assumes monetary value and purchase frequency are unrelated, so the documentation recommends checking their correlation before using it. Plots cover purchase counts, expected purchases, active probability, customer histories, and differences in transaction rates. The documentation also describes comparing simulated purchases with actual activity and checking forecasts against a holdout period. Install it with `pip install lifetimes`. The repository is archived and read-only; maintainers say they will not add features or answer issues. It identifies PyMC-Marketing as a successor project.
Good
- Free and open source under the MIT license
- Estimates expected purchases and active-customer probability
- Combines purchase forecasts with lifetime value estimates
- Includes plots and model-assessment guidance
Watch out
- Archived and read-only since June 28, 2024
- Maintainers will not add features or answer issues
- Gamma-Gamma assumes value and purchase frequency are unrelated
Who it suits
Lifetimes suits Python users analyzing repeat purchases, churn, or customer value from transaction data. It may be a fit for teams that can work with an archived library and assess the Gamma-Gamma assumption.
Verdict
Lifetimes covers repeat-purchase forecasts, active-customer estimates, and customer lifetime value in a Python library. Its archived status and stated model assumption are important considerations before adopting it.
The facts
Each one read from lifetimes's own pages, with the date it was checked.
What it does
- Customer lifetime value
- The Gamma-Gamma submodel estimates average customer value, and the docs demonstrate combining it with a purchase model to estimate lifetime value.checked 11 Oct 2026
- Customer status
- The library can estimate a customer's probability of still being active and visualize it in a probability matrix.checked 4 Oct 2026
- Data preparation
- Utility functions transform transaction-level records into customer summary data and split data into calibration and holdout periods.checked 11 Oct 2026
- Installation
- The documented installation command is `pip install lifetimes`.checked 11 Oct 2026
- License
- The GitHub repository identifies the project as MIT licensed.checked 11 Oct 2026
- Lifetime value
- The Gamma-Gamma submodel estimates customer lifetime value and assumes monetary value is independent of purchase frequency.checked 4 Oct 2026
- Maintenance status
- The project repository was archived on June 28, 2024, and is read-only; its maintainers say they will not add features, improvements, or answer issues.checked 4 Oct 2026
- Model assessment
- The documentation shows comparing fitted-model simulations with actual purchases and checking predictions against a holdout period.checked 4 Oct 2026
- Model assumption
- The Gamma-Gamma model assumes monetary value and purchase frequency are unrelated, and the documentation recommends checking their correlation before using it.checked 11 Oct 2026
- Product type
- Lifetimes is a Python library for calculating customer lifetime value.checked 4 Oct 2026
- Project status
- The repository was archived on June 28, 2024, and its maintainers say they will not add features or answer issues there.checked 11 Oct 2026
- Purchase prediction
- The BG/NBD model predicts expected purchases from customer frequency, recency, and age data.checked 4 Oct 2026
- Repeat purchase model
- The quickstart demonstrates the BG/NBD model to estimate expected purchases from customer frequency, recency, and age data.checked 11 Oct 2026
- Successor
- The repository points users to PyMC-Marketing as a successor project.checked 11 Oct 2026
- Support
- The documentation directs questions, comments, and requests to issues in the Lifetimes repository.checked 11 Oct 2026
- Use cases
- The documentation describes predicting repeat visits, patient returns, app churn, repeat purchases, and customer lifetime value.checked 11 Oct 2026
- Visualization
- The library includes plots for purchase counts, expected purchases, active probability, customer history, and transaction-rate heterogeneity.checked 4 Oct 2026
- Visualizations
- The library includes plots for purchase predictions, probability a customer remains active, transaction histories, and model comparisons.checked 11 Oct 2026
- What it is
- Lifetimes is a Python library for analyzing repeat customer activity and calculating customer lifetime value.checked 11 Oct 2026
Alternatives to lifetimes
- 1

RevenueCat
Open sourceAndroidiOSWebAPI8.1 - 2

Pushwoosh
Free planAndroidiOSWebWindows7.8From $5 a month - 3
Oracle Responsys
AndroidiOSWebAPI7.3From $2 a year - 4

Klaviyo
Free planWeb7.0Free plan - 5

TrueProfit
AndroidiOSWebExtension7.0From $35 a month - 6

Reaktion
AndroidiOSWeb6.8From $169 a month
