(x)slates

Compound blindness

The way companies measure growth can sometimes be ambiguous. Considering growing numbers in isolation is dangerous.

Suppose we have a record of increasing revenue over time.

Although I couldn’t find the technical term for it, I remember reading the term compound blindness to describe the situation in which an “impressive” growth rate does not take into account inflation, population growth or other forms of co-occurring natural compound growth.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.rcParams['font.sans-serif'] = 'Liberation Sans'
mpl.rcParams['legend.frameon'] = False

data = {
    "users": [10, 15, 30, 50, 70, 90, 150, 270, 350, 500],
    "revenue": [100, 300, 560, 780, 900, 1600, 2600, 3500, 3800, 4600],
}
dataset = pd.DataFrame(data)

fig, ax = plt.subplots()
ax.plot(dataset["users"], label="users")
ax.plot(dataset["revenue"], label="revenue")
plt.legend(loc="best")

Although revenue growth is sharp, with some additional calculations, we can get a completely different intuition about the performance of our toy dataset. Once you take into account growing users, the growth in revenue loses a bit of its sting.

dataset["users_change"] = dataset["users"].pct_change()
dataset["revenue_change"] = dataset["revenue"].pct_change()
dataset["revenue_per_user"] = dataset["revenue"] / dataset["users"]
dataset["revenue_per_user_change"] = dataset["revenue_per_user"].pct_change()

fig, ax = plt.subplots()
ax.plot(dataset["revenue_per_user"], label="revenue per user")
plt.title("change in revenue per user")

In situations like these, most managers and executives will stop at the first visualization, captivated by the growth curve. However, even a user base that’s growing at much slower pace eventually starts to erode your revenue rather quickly.


Get article updates over email.