How-to Calculate your e-mail subscribers value

How-to Calculate your e-mail subscribers value

Do you know how much value a member of your email list will generate  during the weeks/months following his subscription?  If not, how can you know how much money and/or effort you should spend to acquire him?

The subscriber/customer value is a central metric every business owner should know and understand. Knowing the value of your subscribers is a strong motivation to keep building your list, since you will see firsthand how much revenue it is generating.

Unfortunately, this hasn’t been a particularly easy thing to do … until now!

Justin Cutroni wrote an interesting post about cohort analysis.  We can easily apply this method to calculate the value of your subscribers.

For those wondering, a cohort is a group of people sharing a common time span.  For example, all the subscribers that sign up to your list in March 2013 can be a cohort. The art students that graduated in spring 2012 represent another cohort, etc.

Before jumping in, here are the 4 steps you need to follow to implement this technique.

  1. Add a custom variable to the visitor cookie that indicates when he signs up to your list – when he lands on your ‘Thank you for signing up’ page.
  2. Create an advanced segment that will include all the visits made by the visitors during the period you want to use (one week, one month, one semester)
  3. Wait some time (a few weeks, or a few months) AFTER your cohort window.
  4. Look at the number of goals and goals value that your subscribers have generated since their sign-up date.

Some additional coding will be required, and to make this work your goals and goals value must be set.  (Read how-to set up goals in Google Analytics if you haven’t set up your goals yet).

 Setting up the custom variable

When someone subscribes to your list, he or she should be redirected to a “thank you” page.  Didn’t your mom teach you to say thank you?  On that ‘thank you’ page add the following code:

_gaq.push(['_setCustomVar', 2,'JD', 'YYYYMMDD' , 1]);

This code will create the custom visitor-level variable JD (Join Date) in the slot #2.  (If you already have a custom variable, make sure slot 2 is free).

The problem with this code is that it doesn’t work….

If you use this code like this, you will have a custom variable JD created, but the value of this variable will be YYYYMMDD  for everybody, instead of 20130315 (March 15th 2013) or the real date we are looking for.

To make it work, we need a way to pass the current date to your custom variable.  Ready?  Let’s get our hands dirty:

For WordPress users

The easiest method is to use PHP.

Add the following code to the header file of your template (header.php) BEFORE the </head> tag.

<?php if  (is_page('your-thank-you-page-name')) { ?>

<!--Thank-you page custom JavaScript-->

<script type="text/javascript">
_gaq.push(['_setCustomVar', 2,'JD', '<?php echo date('Ymd');?>', 1]);
_gaq.push(['_trackEvent', 'Tow Truck', 'go', '-', 0, true]);

<?php } ?>


Also, be sure to replace the ‘your-thank-you-page-name’ by the name of your real thank you page.

For LeadPages user

Disclaimer.  I  have NO connection of any type with LeadPages (NOT an affiliate link) nor Avenue 81 inc, except the fact that I am a regular customer and a true fan of Clay Collins’ work and products.

Watch the following video to know what to do:

Here is the code mentioned in the video

<script type="text/javascript">
Date.prototype.yyyymmdd = function() {
    var yyyy = this.getFullYear().toString();
    var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
    var dd  = this.getDate().toString();
    return yyyy + (mm[1]?mm:"0"+mm[0]) + (dd[1]?dd:"0"+dd[0]); // padding

d = new Date();

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X]);
_gaq.push(['_setCustomVar', 2,'JD', currDay, 1]);

(function() {

var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') +'';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);


Replace the UA-XXXXXX by your Tracking Code ID.  The code in red is the one you need to add to your Google Analytics  tracking code.

Create the Advance Segments

To use this custom variable, you have to create a custom segment like this to track March subscribers


or to track multiple months (Q1 2013 in this case) do the following.



Once your advanced segment is created, you can select it and look at your Conversion report to see the value generated by your subscribers cohort.



By Looking at the Conversion Report, you will know how much value was generated by your cohort (March 2013 subscribers in this case).


You can, of course, track all of your favorite metrics for this cohort exclusively, or compare the behavior of your cohort with another segment.

That’s it!

The next time you are hanging at the lobby bar during any Internet Marketing conference, you will be able to tell to your neighbor, “I have a list of X thousand customers, each one generates $X during the 6 weeks following their subscription.” Smile and take another sip of your well-deserved margarita – Frozen por favor.

The following two tabs change content below.

Marcos D'Urbano

Owner at Simple Analytics
During the past 10 years doing analytics and completing an MSc in Business Intelligence, I realized that very simple techniques can have a huge impact on our results and your bottom line. I created Simple Analytics because I do love analytics and firmly believe that complex things can be explained in a simple way. I teach and coach busy online entrepreneurs on how to use analytics to keep their business on track.