How to calculate Sales Growth Rate

Sales growth rate is the percentage change in sales between one period and the one before it.

Formula

Sales growth rate = (sales this period − sales last period) ÷ sales last period

SQL query

This example assumes: orders(id, order_date date, total_amount numeric). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.

WITH monthly AS (
  SELECT DATE_TRUNC('month', order_date)::date AS month,
         SUM(total_amount) AS sales
  FROM orders
  GROUP BY 1
)
SELECT month,
       sales,
       (sales - LAG(sales) OVER (ORDER BY month))
         / NULLIF(LAG(sales) OVER (ORDER BY month), 0) AS growth_rate
FROM monthly
ORDER BY month;

Common mistakes that make Sales Growth Rate wrong

  • The current month is usually incomplete, so its growth looks negative until the month closes.
  • A month with no sales is missing from the grouped data, so LAG compares against a month further back.
  • Refunds and cancellations change the base: decide whether sales are gross or net of them.

Ask for Sales Growth Rate in plain English

Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.

  • What was our month-over-month sales growth for the last 12 months?
  • Which months had negative sales growth?

Frequently asked questions

What is Sales Growth Rate?
Sales growth rate is the percentage change in sales between one period and the one before it.
How do you calculate Sales Growth Rate?
Sales growth rate = (sales this period − sales last period) ÷ sales last period. The SQL example on this page shows the same calculation against a simple table.
What commonly goes wrong when calculating Sales Growth Rate?
The current month is usually incomplete, so its growth looks negative until the month closes.