How many new subscribers did you collect over six months? The usual count is simple: the size of the database at the end minus the size at the start. Or, if the platform allows it, a filter for “added after such and such a date”.
Both ways give an inflated number. Sometimes double, sometimes more.
#Where the inflation comes from
In most email platforms a contact belongs not to the account but to a list, and the date they store is the date it landed in that particular list. Not the date the person first heard of you. If your platform keeps contacts at account level, you do not have this problem — check that first.
Then day-to-day work does the rest:
- a marketer builds an “active in the last 90 days” segment and copies people into it;
- a new product launches and gets a list of its own;
- the database is moved over from another service, and every contact picks up the date of the move;
- someone gets imported a second time, because the file came from a partner.
In every one of these cases the person acquires a new date added. The naive count sees a new subscriber. In fact it is the same one, and they have been with you for a year already.
#How to count it properly
One principle: a contact is counted once, by the earliest date it appeared in the account.
The steps:
- Collect every list in the account, not one.
- Pull the contacts out of each one along with the date they were added.
- Fold them into a set keyed by address: one address, one entry.
- For each address, keep the earliest of all the dates.
- Treat growth over a period as the number of addresses whose earliest date falls inside that period.
What this count gives you:
- moving people between lists no longer creates “new” ones;
- a platform move produces no spike;
- re-importing the same file changes nothing.
#What else moves the number
One contact can be in several lists. The sum of the list sizes is not the size of the database. The more actively you segment, the bigger the gap.
Unsubscribed contacts do not go anywhere. They stay in the list with their status, and if you count rows rather than active addresses, the database “grows” on the back of people you no longer write to.
Address case. To some platforms Ivan@Mail.com and ivan@mail.com are different strings but one person. Lower-case the addresses before folding them together, or the duplicates turn into “new subscribers”.
#What changes after the recount
Growth usually drops — a fair price for a number you can trust. Three more things become true along with it:
- cost per subscriber. Ad spend is divided by growth. If growth is double what it should be, a subscriber looks half as expensive as they are;
- channel comparison. The channel whose people get resegmented most often no longer has an unearned advantage;
- the trend. The month of the migration stops being a peak that makes every month after it look weak.
#Takeaways
- The date in the platform is the date of landing in a list, not the date the person appeared in your database.
- Resegmentation, a new product and a platform move all create new dates for old contacts.
- Count by the earliest date an address appeared in the account, with all the lists folded together.
- Lower-case the addresses before folding them together.
- The sum of the list sizes does not equal the size of the database.
#Common questions
#Can the number be taken from the platform’s interface?
The interface shows what it knows: list sizes and the dates people were added to them. For one list that is enough; for an account with ten it is not.
#What if there is no date added?
Fall back on the first interaction: the first send to that address, or the first open. The number will come out slightly low, rather than several times too high.
#How often should it be recounted?
Once a month, with the report, is enough. It is an API call rather than manual work, so it makes sense to put it on a schedule.