“When you’re a retailer, nobody tells you that your chain’s high-growth days are over and it’s time to switch to a maturity strategy. To detect when you should begin transitioning from high growth to slow growth, you need to track the right metrics.” Stop Chasing the Wrong Kind of Growth - Harvard Business Review
Every logistic curve looks exponential at the start. Nothing grows forever. Failing to understand that is failing to understand nature. Some business people, especially in the C-Suite, hold the belief that growth (especially of the hockey stick type) is the ultimate business goal to pursue and that it is somehow “sustainable.”
Often, they view revenue as the measure to grow at all costs, regardless of how operating costs, debt, salaries, and other expenses pile up while profits and margins dwindle. Looking at growth curves that look exponential is missing the forest for the leaves because, realistically, nothing grows forever at the same rate. The world is finite and growth always asymptotically reaches a limit, its carrying capacity.
From ecology, we know that when we have exponential growth the growth rate stays the same regardless of a population’s size. In logistic growth, the growth rate gets smaller as a population’s size approaches a maximum, known as the carrying capacity.
In business, ambitious companies tend to underestimate (or flatly ignore) the existence of a carrying capacity for their growth. The addressable market, customers’ disposable income, generational and cultural shifts, and many other factors can influence your rate of growth. Furthermore, growing revenue doesn’t necessarily translate to more profits.
import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np import pandas as pd mpl.rcParams["font.sans-serif"] = "Liberation Sans" mpl.rcParams["legend.frameon"] = False def logistic(x): return 1 / (1 + np.exp(-x)) values = np.linspace(-10, 10) logistic_growth = logistic(values) fig, ax = plt.subplots() ax.plot(logistic_growth, "r", label="true growth curve") ax.plot(logistic_growth[0:25], label="deceiving 'hockey stick'") ax.set_xlabel("time") plt.title("exponential growth = logistic growth in disguise") plt.legend()