By Michael Nocito, data analyst · Published August 7, 2026
By the end of this page you can write a month-over-month growth query and trust its answer. You will know the growth formula and how to say it in a sentence, what LAG() actually does, and the three traps that produce wrong percentages without producing an error: integer division, the empty first month, and the missing month. It is about twenty minutes.
Here is what to actually do today. Before you trust any growth query you have already written, run one check: count the distinct months in your data and compare that count to the calendar. If any month is missing, at least one of your growth numbers is comparing the wrong pair of months.
The short version: growth is this month minus last month, divided by last month. LAG() fetches last month's value onto this month's row. But LAG() fetches the previous row, not the previous month, and those are only the same thing when no month is missing.
That last distinction is the one that bites, so it gets the picture.








