EDIT 2017-10-22: The team at Mode has been updating the tool almost every single month, the below is based on what our team needed in 2016 and what Mode Analytics could provide at the time of writing.

Lots of the work we do, and one of the many things we use our SQL tool for,  is for small little investigations (wouldn’t want to call it growth hacking but something similar).

This means writing quick, single queries with an output that only needs to be looked and stared at for 5 minutes and then never again. Mode Analytics in this instance doesn’t feel like the right tool for the job but we go it to work for part of the business. Especially A/B Experiments in combination with the Python environment.

SQL Editor

The first thing to say about Mode Analytics is that it’s more of a visualisation tool that has SQL capabilities than the other way around.

The SQL editor is good but not great, auto-complete is available but doesn’t work when using aliases, being able to format your query is a nice little feature. Also having an overview of all your tables columns is a great feature, just so much easier than having to remember every column.

The table that comes back from every query can’t be sorted by clicking on the headers itself.  You either have to order a table or visualisation by adding a SQL “order by” or go to the “table chart” as this does let you order by clicking on the headers but won’t show more than 1000 rows.

The other problem with the tool is that it can’t show more than 2000 points in the charts, so you need to do your own aggregation on the queries, trying to build certain charts won’t always show up properly (see screenshot below). It’s these small little quirks that make an (analyses) tool from being good to great.


Connection wise all the major database types are supported.  And setting up the connection is easy. The biggest issue is that you have to use one user that connects to the database which means every user in Mode will use that connection. This means you can’t set database query limits (e.g. setting up a 15-minute query timeout for Bob’s account that doesn’t know how to use JOIN).

Charts and dashboards

Charts are one of the best parts of Mode Analytics, you got a great selection you can use straight away. Bar and line charts to area charts and scatter plots. One of the biggest strengths of Mode is the capability of adding you’re own charts based on the D3.js. It does require some JavaScript skills though.

The 2000 point chart limit is annoying, I understand that aggregation and order might have to be part of the queries but 2000 points seem quite low and we ran into problems which mend we had to move to another SQL tool for further analyses.

The charts are good but give problems when showing certain numbers or names with some of the visualisations like below…


Dashboard customisation

The level of customisation for the charts is also available for the dashboards, because of the dashboard being nothing more then an HTML page you can write whatever HTML/CSS you need to make the dashboard and chart look like the way you want. Just make sure you don’t drag and drop after you made custom HTML changes. The custom made changes will be overwritten without notifying(!).

One of the cool things is adding parameters to the report, especially if there are reports with lots of charts that all use one specific look-up like a user id. You don’t have to change the SQL at all.


Mode starts at $19 USD a month per user with some limits. Mode Analytics used to have free accounts to view reports, unfortunately, this doesn’t exist more. This means that sharing reports across the whole business can become very expensive.

The Python support is currently free but will become paid at a later stage. Also, keep in mind that the $19 USD plan contains 5000 SQL queries per month.

Overall look and feel

I don’t think most developers understand the significance of the look and feel on their tool. Especially when you have to look at it for most of the working day, you want something that is easy to the eye and doesn’t seem to be developed in the late 90’s (looking at you Apache Zepplin).

Mode looks great in my opinion, the overall light colour scheme is perfect for day to day use, the font chosen looks good. The only issue I can find is the table, it shows in a TypeWriter font which feels completely out of place.


Ugly ass tables

Python and more…

One of the things Mode does really well is the Python environment. Although I haven’t written anything myself, my colleagues made some great and easy way of determining statistical significance and conversion rates for all our A/B experiments.

You’re limited to the Python libraries provided in Mode and there are some quirks that currently don’t work well. For instance, displaying a chart with python which you want to share via PDF do not get copied properly which means you get an empty PDF with just some text.

Be aware though that the Python functionality is only free for a limited time (currently free as of November 2016) after that there will be a “small fee”.


Python in Mode Analytics

TLDR; and the end bit…

Mode Analytics is probably the closest we could get to a Wagon alternative. The way of charting is and running queries seem to be “good enough”. Which is probably the best thing I can say about Mode Analytics: it’s good enough.

Currently,  we use Mode in a (very) small team of 3 people and the biggest reason we use Mode is that it’s very easy to report on A/B experiments we are running because of the built-in Python support. Outside of that though, we still use a combination of other tools to do SQL queries and chart them.

Sharing dashboards is easy but with no free viewing accounts, it could become quite expensive. The $19 USD gives you 5000 SQL queries to run, something we will never go over but good to keep in mind if this is your main tool of use.

Also using Mode for quick small queries that do not need to be reported to a bigger audience doesn’t seem to be supported very well. The small little quirks like not being able to show more than 2000 points or only see 1000 rows are really annoying the crap out of me. Especially when you’re in a flow and all of a sudden need to move towards a different tool just because it can’t show your the output you need.

Follow my blog with Bloglovin