exagobi.com Open in urlscan Pro
141.193.213.21  Public Scan

Submitted URL: https://d1k0hv04.na1.hubspotlinks.com/Btc/DN+113/d1K0hv04/VWnPDb77x952W7wzKQq7mMjq-W9ccHTJ4xN2NWN7swVw73q8_QV1-WJV7CgXNyW2FNyNk406dfLW...
Effective URL: https://exagobi.com/reporting/3-mistakes-to-avoid-when-tracking-churn/?utm_campaign=nurture9-21&utm_source=email&utm...
Submission: On September 22 via api from US — Scanned from DE

Form analysis 10 forms found in the DOM

#

<form action="#" autocomplete="off" aria-label="Search form 4">
  <input type="search" class="orig" placeholder="Search here..." name="phrase" value="" aria-label="Search input 4" autocomplete="off">
  <input type="text" class="autocomplete" name="phrase" value="" aria-label="Search autocomplete, ignore please" aria-hidden="true" autocomplete="off" disabled="">
  <input type="submit" aria-hidden="true" aria-label="Hidden button" style="width:0; height: 0; visibility: hidden;">
</form>

#

<form action="#" autocomplete="off" aria-label="Search form 4">
  <input type="search" class="orig" placeholder="Search here..." name="phrase" value="" aria-label="Search input 4" autocomplete="off">
  <input type="text" class="autocomplete" name="phrase" value="" aria-label="Search autocomplete, ignore please" aria-hidden="true" autocomplete="off" disabled="">
  <input type="submit" aria-hidden="true" aria-label="Hidden button" style="width:0; height: 0; visibility: hidden;">
</form>

#

<form action="#" autocomplete="off" aria-label="Search form 2">
  <input type="search" class="orig" placeholder="Search here..." name="phrase" value="" aria-label="Search input 2" autocomplete="off">
  <input type="text" class="autocomplete" name="phrase" value="" aria-label="Search autocomplete, ignore please" aria-hidden="true" autocomplete="off" disabled="">
  <input type="submit" aria-hidden="true" aria-label="Hidden button" style="width:0; height: 0; visibility: hidden;">
</form>

#

<form action="#" autocomplete="off" aria-label="Search form 4">
  <input type="search" class="orig" placeholder="Search here..." name="phrase" value="" aria-label="Search input 4" autocomplete="off">
  <input type="text" class="autocomplete" name="phrase" value="" aria-label="Search autocomplete, ignore please" aria-hidden="true" autocomplete="off" disabled="">
  <input type="submit" aria-hidden="true" aria-label="Hidden button" style="width:0; height: 0; visibility: hidden;">
</form>

#

<form action="#" autocomplete="off" aria-label="Search form 4">
  <input type="search" class="orig" placeholder="Search here..." name="phrase" value="" aria-label="Search input 4" autocomplete="off">
  <input type="text" class="autocomplete" name="phrase" value="" aria-label="Search autocomplete, ignore please" aria-hidden="true" autocomplete="off" disabled="">
  <input type="submit" aria-hidden="true" aria-label="Hidden button" style="width:0; height: 0; visibility: hidden;">
</form>

Name: options

<form name="options" class="asp-fss-flex" autocomplete="off">
  <input type="hidden" style="display:none;" name="current_page_id" value="2460">
  <input type="hidden" name="qtranslate_lang" style="display:none;" value="0">
  <input type="hidden" name="filters_changed" style="display:none;" value="0">
  <input type="hidden" name="filters_initial" style="display:none;" value="1">
  <fieldset class="asp_filter_generic asp_filter_id_1 asp_filter_n_0">
    <legend>Generic filters</legend>
    <div class="asp_option asp-o-last">
      <div class="asp_option_inner">
        <input type="checkbox" value="exact" id="set_exact4_2" aria-label="Exact matches only" name="asp_gen[]">
        <label aria-hidden="true" for="set_exact4_2"> Hidden label </label>
      </div>
      <div class="asp_option_label"> Exact matches only </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="title" id="set_title4_2" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_title4_2"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="content" id="set_content4_2" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_content4_2"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="excerpt" id="set_excerpt4_2" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_excerpt4_2"> Hidden label </label>
      </div>
    </div>
  </fieldset> <input type="checkbox" style="display: none !important;" value="post" aria-label="Hidden label" aria-hidden="true" id="4_2customset_4_2100" name="customset[]" checked="checked">
  <input type="checkbox" style="display: none !important;" value="page" aria-label="Hidden label" aria-hidden="true" id="4_2customset_4_2101" name="customset[]" checked="checked">
  <div style="clear:both;"></div>
</form>

Name: options

<form name="options" class="asp-fss-flex" autocomplete="off">
  <input type="hidden" style="display:none;" name="current_page_id" value="2460">
  <input type="hidden" name="qtranslate_lang" style="display:none;" value="0">
  <input type="hidden" name="filters_changed" style="display:none;" value="0">
  <input type="hidden" name="filters_initial" style="display:none;" value="1">
  <fieldset class="asp_filter_generic asp_filter_id_1 asp_filter_n_0">
    <legend>Generic filters</legend>
    <div class="asp_option asp-o-last">
      <div class="asp_option_inner">
        <input type="checkbox" value="exact" id="set_exact2_1" aria-label="Exact matches only" name="asp_gen[]">
        <label aria-hidden="true" for="set_exact2_1"> Hidden label </label>
      </div>
      <div class="asp_option_label"> Exact matches only </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="title" id="set_title2_1" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_title2_1"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="content" id="set_content2_1" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_content2_1"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="excerpt" id="set_excerpt2_1" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_excerpt2_1"> Hidden label </label>
      </div>
    </div>
  </fieldset> <input type="checkbox" style="display: none !important;" value="post" aria-label="Hidden label" aria-hidden="true" id="2_1customset_2_1100" name="customset[]" checked="checked">
  <input type="checkbox" style="display: none !important;" value="page" aria-label="Hidden label" aria-hidden="true" id="2_1customset_2_1101" name="customset[]" checked="checked">
  <div style="clear:both;"></div>
</form>

Name: options

<form name="options" class="asp-fss-flex" autocomplete="off">
  <input type="hidden" style="display:none;" name="current_page_id" value="2460">
  <input type="hidden" name="qtranslate_lang" style="display:none;" value="0">
  <input type="hidden" name="filters_changed" style="display:none;" value="0">
  <input type="hidden" name="filters_initial" style="display:none;" value="1">
  <fieldset class="asp_filter_generic asp_filter_id_1 asp_filter_n_0">
    <legend>Generic filters</legend>
    <div class="asp_option asp-o-last">
      <div class="asp_option_inner">
        <input type="checkbox" value="exact" id="set_exact4_3" aria-label="Exact matches only" name="asp_gen[]">
        <label aria-hidden="true" for="set_exact4_3"> Hidden label </label>
      </div>
      <div class="asp_option_label"> Exact matches only </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="title" id="set_title4_3" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_title4_3"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="content" id="set_content4_3" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_content4_3"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="excerpt" id="set_excerpt4_3" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_excerpt4_3"> Hidden label </label>
      </div>
    </div>
  </fieldset> <input type="checkbox" style="display: none !important;" value="post" aria-label="Hidden label" aria-hidden="true" id="4_3customset_4_3100" name="customset[]" checked="checked">
  <input type="checkbox" style="display: none !important;" value="page" aria-label="Hidden label" aria-hidden="true" id="4_3customset_4_3101" name="customset[]" checked="checked">
  <div style="clear:both;"></div>
</form>

Name: options

<form name="options" class="asp-fss-flex" autocomplete="off">
  <input type="hidden" style="display:none;" name="current_page_id" value="2460">
  <input type="hidden" name="qtranslate_lang" style="display:none;" value="0">
  <input type="hidden" name="filters_changed" style="display:none;" value="0">
  <input type="hidden" name="filters_initial" style="display:none;" value="1">
  <fieldset class="asp_filter_generic asp_filter_id_1 asp_filter_n_0">
    <legend>Generic filters</legend>
    <div class="asp_option asp-o-last">
      <div class="asp_option_inner">
        <input type="checkbox" value="exact" id="set_exact4_2" aria-label="Exact matches only" name="asp_gen[]">
        <label aria-hidden="true" for="set_exact4_2"> Hidden label </label>
      </div>
      <div class="asp_option_label"> Exact matches only </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="title" id="set_title4_2" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_title4_2"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="content" id="set_content4_2" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_content4_2"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="excerpt" id="set_excerpt4_2" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_excerpt4_2"> Hidden label </label>
      </div>
    </div>
  </fieldset> <input type="checkbox" style="display: none !important;" value="post" aria-label="Hidden label" aria-hidden="true" id="4_2customset_4_2100" name="customset[]" checked="checked">
  <input type="checkbox" style="display: none !important;" value="page" aria-label="Hidden label" aria-hidden="true" id="4_2customset_4_2101" name="customset[]" checked="checked">
  <div style="clear:both;"></div>
</form>

Name: options

<form name="options" class="asp-fss-flex" autocomplete="off">
  <input type="hidden" style="display:none;" name="current_page_id" value="2460">
  <input type="hidden" name="qtranslate_lang" style="display:none;" value="0">
  <input type="hidden" name="filters_changed" style="display:none;" value="0">
  <input type="hidden" name="filters_initial" style="display:none;" value="1">
  <fieldset class="asp_filter_generic asp_filter_id_1 asp_filter_n_0">
    <legend>Generic filters</legend>
    <div class="asp_option asp-o-last">
      <div class="asp_option_inner">
        <input type="checkbox" value="exact" id="set_exact4_3" aria-label="Exact matches only" name="asp_gen[]">
        <label aria-hidden="true" for="set_exact4_3"> Hidden label </label>
      </div>
      <div class="asp_option_label"> Exact matches only </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="title" id="set_title4_3" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_title4_3"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="content" id="set_content4_3" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_content4_3"> Hidden label </label>
      </div>
    </div>
    <div class="asp_option hiddend" aria-hidden="true">
      <div class="asp_option_inner">
        <input type="checkbox" value="excerpt" id="set_excerpt4_3" data-origvalue="1" name="asp_gen[]" checked="checked">
        <label for="set_excerpt4_3"> Hidden label </label>
      </div>
    </div>
  </fieldset> <input type="checkbox" style="display: none !important;" value="post" aria-label="Hidden label" aria-hidden="true" id="4_3customset_4_3100" name="customset[]" checked="checked">
  <input type="checkbox" style="display: none !important;" value="page" aria-label="Hidden label" aria-hidden="true" id="4_3customset_4_3101" name="customset[]" checked="checked">
  <div style="clear:both;"></div>
</form>

Text Content

 * Search
   
   
   
   
   
   
   
   
   
 * WHY EXAGO?
   * IT’S BUILT FOR SAAS
     * Flexible Embedding
     * Flat-Rate Pricing
     * Client Support
   * COMPANY
     * About Us
     * Leadership
     * Careers
 * SOFTWARE
   * PRODUCT
     * Reports
     * Dashboards
     * Request a Demo
   * INTEGRATION
     * Application Integration
     * Data Integration
     * Customization & Extension
 * RESOURCES
   * BUYER’S GUIDE
     * Build or Buy?
     * Assessing Product Fit
     * Deployment Options
   * CONTENT LIBRARY
     * Customer Stories
     * Whitepapers & Ebooks
     * Brochures & Infographics
     * Gallery
     * Webinars
     * Videos
     * Podcast
     * Blog

 * Search
   
   
   
   
   
   
   
   
   
 * WHY EXAGO?
   * IT’S BUILT FOR SAAS
     * Flexible Embedding
     * Flat-Rate Pricing
     * Client Support
   * COMPANY
     * About Us
     * Leadership
     * Careers
 * SOFTWARE
   * PRODUCT
     * Reports
     * Dashboards
     * Request a Demo
   * INTEGRATION
     * Application Integration
     * Data Integration
     * Customization & Extension
 * RESOURCES
   * BUYER’S GUIDE
     * Build or Buy?
     * Assessing Product Fit
     * Deployment Options
   * CONTENT LIBRARY
     * Customer Stories
     * Whitepapers & Ebooks
     * Brochures & Infographics
     * Gallery
     * Webinars
     * Videos
     * Podcast
     * Blog

Search









REQUEST A DEMO
 * Search
   
   
   
   
   
   
   
   
   
 * WHY EXAGO?
   * IT’S BUILT FOR SAAS
     * Flexible Embedding
     * Flat-Rate Pricing
     * Client Support
   * COMPANY
     * About Us
     * Leadership
     * Careers
 * SOFTWARE
   * PRODUCT
     * Reports
     * Dashboards
     * Request a Demo
   * INTEGRATION
     * Application Integration
     * Data Integration
     * Customization & Extension
 * RESOURCES
   * BUYER’S GUIDE
     * Build or Buy?
     * Assessing Product Fit
     * Deployment Options
   * CONTENT LIBRARY
     * Customer Stories
     * Whitepapers & Ebooks
     * Brochures & Infographics
     * Gallery
     * Webinars
     * Videos
     * Podcast
     * Blog

 * Search
   
   
   
   
   
   
   
   
   
 * WHY EXAGO?
   * IT’S BUILT FOR SAAS
     * Flexible Embedding
     * Flat-Rate Pricing
     * Client Support
   * COMPANY
     * About Us
     * Leadership
     * Careers
 * SOFTWARE
   * PRODUCT
     * Reports
     * Dashboards
     * Request a Demo
   * INTEGRATION
     * Application Integration
     * Data Integration
     * Customization & Extension
 * RESOURCES
   * BUYER’S GUIDE
     * Build or Buy?
     * Assessing Product Fit
     * Deployment Options
   * CONTENT LIBRARY
     * Customer Stories
     * Whitepapers & Ebooks
     * Brochures & Infographics
     * Gallery
     * Webinars
     * Videos
     * Podcast
     * Blog


3 MISTAKES TO AVOID WHEN CALCULATING CHURN

by Nicole Hitner | Dashboards & Data Viz, Reporting

“Well, in our country,” said Alice, still panting a little, “you’d generally get
to somewhere else — if you run very fast for a long time, as we’ve been doing.”

“A slow sort of country!” said the Queen. “Now, here, you see, it takes all the
running you can do, to keep in the same place. If you want to get somewhere
else, you must run at least twice as fast as that!”

— Lewis Carroll, Alice Through the Looking Glass

 

Though customer retention certainly matters to businesses operating on
non-recurring revenue, for software-as-a-service (SaaS) providers and other
subscription-based companies, it’s a vital sign. Churn — the proportion of
customers who leave your service in a given span of time — reflects how much
work your teams will have to do just to maintain their existing recurring
revenue.

Churn Rate = Number of Churned Customers/Total Customers

The formula for calculating churn may look simple, but looks can be deceptive.
According to Maeve Kneafsey of CloudKPI, who has made it her business to know
such things, there are a whopping 43 different ways to calculate churn. The
reason this number is so high is due to variation in how companies 1) count
customers, 2) define the moment of churn, and 3) include or exclude customers
from the time frame in question.

Still, regardless of your particular methodology in calculating churn, there are
best practices you can (and should) be following to benefit from the results.
Below are three mistakes Kneafsey urges SaaS companies to avoid as they set
about tracking their churn.


1. COUNTING CUSTOMERS INCONSISTENTLY

“You can count your customers in quite a few different ways, but the most
important way is that you consistently count them the same way,” says Kneafsey.
Without consistency, comparing churn rates becomes an exercise in futility; and
without comparison, it’s hard to draw conclusions about a company’s trajectory.

Once you’ve settled on what qualifies as a customer, record that definition,
adopt it universally throughout the company, and stick to it over time. Ensure
that new recruits, especially those involved in reporting, are aware of the
definition before they go preparing status updates and board presentations. If
the numbers don’t look good for a given quarter, don’t bend the rules to
compensate.

When crafting your customer count methodology, remember to take these nuances
into account:

 1. Contract vs Logo: It’s usually possible for a single client to hold multiple
    subscriptions to the same SaaS product. In that case, do you count the
    client as a single customer (by logo) or as multiple customers (by
    contract)? Kneafsey recommends picking one but keeping an eye on both, as
    the disparity between the two can say a lot about your Customer Success
    team’s land-and-expand efforts.
 2. Point of Conversion: Is a customer a customer upon contract signing or as of
    the contract start date? This will help determine whether a customer who
    signed in December 2018 but whose contract began in January 2019 should be
    counted as a Q4 2018 customer.
 3. Paying Customers vs Freemium Customers: Make sure your company knows to
    distinguish between revenue-generating customers and freemium customers, who
    might be worth tracking with a separate churn rate.
 4. Total vs Churnable Total: Some companies opt to divide the number of churned
    customers not by the total number of customers but by the number
    of churnable customers for a given period. Some customers may not be able to
    churn in a given month or quarter due to an exit clause or their limbo
    status (see below). Don’t forget about your churn denominator!


2. TREATING CUSTOMER STATUS AS BINARY

There are so many points at which a customer may be neither active nor churned,
such as:

 * When a customer has made their final payment but not yet renewed.
 * When a contract is over and a new contract is being negotiated.
 * When a customer is paying for a product but not actively using it.
 * When a customer is delinquent on a payment and not bound by an exit clause.
 * When a customer enters a renewal “grace period” of a length defined by the
   SaaS provider.

Kneafsey calls these “limbo” customers because “they’re not active, but they’re
not gone.” Companies should identify these corner cases and decide whether to
include or exclude them from churn calculations.

A good rule of thumb, according to Kneafsey, is to abide by the classic
definition for point of churn: “Churn happens when a customer who should be
renewing doesn’t renew.” What that means for your churn rate will depend on your
company’s practices; again, just be sure to document them and work to retain
customers at risk of churning away.


3. ANALYZING CHURN IN A VACUUM

After all that work defining terms, gathering data, and performing calculations,
you come to the determination that your churn rate averages at about 4 percent
per month.

Great! Now what?

“That number alone isn’t going to tell you anything,” says Kneafsey. Companies
sometimes become so consumed with calculating churn on behalf of VCs and other
investors that they forget to use the metric to their own advantage. “Where you
begin to understand possibly why they’re churning or where the churn is
happening, you need to slice and dice that data in a different way or more
specific ways.”

How you drill into that data will depend a great deal on the questions you’re
trying to answer. Maybe you want to know if you’re seeing seasonal churn or
whether churn varies between products you offer. Perhaps you want to analyze a
particular feature enhancement’s effects on churn, or a new customer success
practice. You can compare churn over time or your churn rates against benchmark
rates for companies of a similar size and vertical. The analytical combinations
are virtually infinite, and they’re all better than a churn rate taken in
isolation. To lower your churn, you need to understand what’s driving it. Drill
in.

So, to sum up, when calculating churn, be mindful of the three C’s: consistency,
caveats, and comparison. Pick a method, clarify your policy around corner cases,
and then work to understand the forces influencing your churn rate to get the
most out of that metric. And for those of you who want more KPI wisdom from
Maeve Kneafsey, be sure to check out her guest appearances on the Data Talks
podcast.

--------------------------------------------------------------------------------

Originally published with Software Business Growth.






Stay up-to-date on all things SaaS and analytics with fresh content each month.

Sign up


RELATED POSTS

Embedded BI: An Antidote to Churn
KPIs and Metrics for SaaS Success
The Right Way to Calculate 3 Critical SaaS KPIs
What Is Ad Hoc Reporting?

READY TO SEE EXAGO BI IN ACTION?


REQUEST A DEMO

Please fill out the form and we’ll be in touch to arrange a personalized demo.

Just want a quick overview?
Check out our webinar.



IT’S BUILT FOR SAAS

Flexible Embedding

Flat Rate Pricing

Client Support

COMPANY

Leadership

About Us

PRODUCT

Reports

Dashboards

Request Demo

INTEGRATION

Application Integration

Data Integration

Customization & Extension

BUYER’S GUIDE

Build or Buy?

Assessing Product Fit

Deployment Options

CONTENT LIBRARY

Customer Stories

Whitepapers & Ebooks

Brochures & Infographics

Gallery

Webinar

Videos

Podcast

Blog

Contact

Careers

Support

Privacy

 * Follow
 * Follow
 * Follow

*HIDDEN ACCORDION*

Your content goes here. Edit or remove this text inline or in the module Content
settings. You can also style every aspect of this content in the module Design
settings and even apply custom CSS to this text in the module Advanced settings.

IT'S BUILT FOR SAAS

Flexible Embedding

Flat Rate Pricing

Client Support

COMPANY

Management

About Us

PRODUCT

Reports

Dashboards

Request Demo

INTEGRATION

Application Integration

Data Integration

Customization & Extenstion

BUYER'S GUIDE

Build or Buy?

Assessing Product Fit

Deployment Options

CONTENT LIBRARY

Customer Stories

Whitepapers & Ebooks

Brochures & Infographics

Gallery

Webinars

Videos

Podcast

Blog

Support

Careers

Contact Us

Privacy



(203) – 225 – 0876



sales@exagobi.com

 

 * Follow
 * Follow
 * Follow

 * 
 * 
 * 


Share This
 * Facebook
 * Twitter
 * LinkedIn




╳

Generic filters
Hidden label
Exact matches only
Hidden label
Hidden label
Hidden label


More results…



Generic filters
Hidden label
Exact matches only
Hidden label
Hidden label
Hidden label


More results...



Generic filters
Hidden label
Exact matches only
Hidden label
Hidden label
Hidden label


More results…




Generic filters
Hidden label
Exact matches only
Hidden label
Hidden label
Hidden label


More results…



Generic filters
Hidden label
Exact matches only
Hidden label
Hidden label
Hidden label


More results…