in Featured Developer

Measuring Your Market Share as a SaaS Company



The world of online tools is massive and growing fast. Startups seem to pop up every day that address a known issue, but have a different twist or added feature to differentiate themselves.

These tools usually feature some dashboard, providing you with information through graphs and charts. The myriad analytics tools on the market today are a prime example of this.

In such a cluttered market I sometimes hear SaaS companies use ‘social proof’ as a benchmark against competitors.

It’s surprisingly common for someone to say, “Oh this company has companies X and Y as customers. They must be doing well!” and have no follow-up for that claim.

The glaring issue with such statements is that there is no real measure of performance. Those customers might have been getting the concierge treatment and a free product all for the use of their logo and bragging rights on a website. So how else can SaaS companies evaluate each other in the market?

One easy way I’m about to demonstrate is to find your competitors’ market share using web scraping.

Javascript widgets are common and simple distribution method to integrate with a customer’s website. The customer signs up, you give them code, they copy and paste it appropriately, and everything is set. If that is how your company distributes its product, it makes sense to evaluate your market share based on this.

Get a list of five, maybe even ten competitors. Find their tags and load them into a CSV file, and scrape the web looking for them. Below is some simple Ruby script I ran on Zillabyte that accomplishes this.

require 'zillabyte'
require 'csv'

app = Zillabyte.app "feedback_tools"
input = app.source "select * from web_pages"
tool_use_stream = input.each{
  name "feedback_tool_finder"
  prepare do
    # Preload the CSV file into a global var so we don't do it for each page we process.
    @cat_snippets =  CSV.parse(File.open('tool_indicators.csv'), :headers => ["company","snippet"])
  end
  execute do |page|
    @cat_snippets.each do |row|
      # Iterate through each snippet in the CSV file
      company, snippet = row["company"], row["snippet"]
      if page["html"].to_s.casecmp(snippet) == 0
        # Emit the domain to the stream
        emit :url => page["url"], :company => company
      end
    end
  end
}
.sink do
  name "tool_use"
  column "url", :string
  column "company", :string
end

All we do is require Zillabyte and csv, instantiate the app, and scrape the web for the content in our csv file. Whenever a widget or indicator is found the app records it. This is a sample of the market data we found:

feedback_distribution

We can see a pretty strong distribution in favor of User Voice and IPerceptions. From there it gets close between several competitors, and then drops off drastically. Now that we have the data, what can we do with it?

As your company continues to run tests grow you can run this every month or quarter and establish historical data. It’s only one measurement tool but it can give you a broader perspective on how you are growing your company.

You can watch how this data changes over time as you coordinate marketing efforts and change your product. This allows you to go beyond seeing if you increased your number of users. You can see if you increased your users as quickly as your competitors.

Scraping the whole web for this information also shows how many new widget users entered the market each time this app is run. You can compare your growth based to that as well.

With a bit of modification one can see the flow of customers as they switch companies. Adding a few lines of code would let the app save the URL of every site using a widget specified in the csv file.

Every quarter you could compare those lists and gain more insight into each company’s growth.

Is one of your competitors doing well because they acquired new customers entering the marketplace, or because many users are switching to their product? When your customers leave, who are they trying out next? If you find a pattern in the numbers that’s an opportunity to respond.

What’s great about this app is you don’t have to be a SaaS business to find value in it. As long as your product (and your competitors’ products) leave an online footprint, you can find this information! It may be found by searching for different indicators than we used in this example, but the premise is still solid.

You can find other examples of how Zillabyte is used on our docs page. See if any of these examples answer a question your company might have, and then try it out. The world’s data is available to everyone, so start using it!