How to Write a Sales Report That Explains Why Sales Moved

9 min read

Marlow Print Studio, an example print shop that sells to local businesses, had a good September: $24,000 of sales, up 20% on August and 9% over target. That's where most sales reports would stop. But lay the customers side by side and a different picture appears. The customers who bought in both months spent $2,400 less. Two customers didn't order at all. The growth came from two new customers, and $3,800 of it came from a festival that happens once a year. Take the festival out and September was up 1%.

A sales report exists to catch that. It isn't a total with a chart; it's a short explanation of why sales moved and what you'll do about it. This guide shows how to write one: what to include in a daily, weekly and monthly sales report, the customer bridge that explains the change, and a three-sentence summary that ends with names and dates. There's a free template that builds the monthly report from a list of invoices.

Download the sales report template (.xlsx). It opens in Excel, Google Sheets and Numbers, with no macros, and comes with Marlow's two months of example invoices and a blank copy ready for yours.

Daily, weekly and monthly: what each sales report is for

A sales report gets read when it answers one question quickly. Ask it to answer everything and it gets skipped. Give each rhythm one job:

ReportThe questionWhat to includeReader and time
DailyDid anything unusual happen yesterday?Sales and number of orders or invoices, against the same weekday last week; any order much bigger or smaller than usualOwner, 2 minutes
WeeklyAre we on track for the month, and who needs a call?Month to date against target, quotes sent and won, customers who usually order by now and haven'tOwner and sales team, 15 minutes
MonthlyWhy did sales change, and what do we do about it?Totals against last month and target, sales by category and salesperson, the customer bridge, a three-sentence summaryOwner, partner, lender, 30 minutes

If you run a shop with a till, the daily report looks different: footfall, conversion and average transaction matter more. Our retail sales report guide covers that version. If you lead a sales team and want to know mid-month whether you'll hit target, the sales dashboard guide covers pacing. The rest of this guide is about the monthly sales report, because it's the one that explains the month, and the one most often reduced to a single number.

The five parts of a monthly sales report

Here's Marlow's September as the template lays it out. The four numbers across the top and the two tables fit on one page.

Example one-page monthly sales report: sales $24,000 (+20% vs August), 109% of a $22,000 target, 17 invoices vs 16, average invoice $1,412 (+13%); by category signs and banners $8,700, marketing print $8,500, stationery $4,800, design $2,000; by salesperson Dana $15,400, Luis $5,900, online and counter $2,700
The first page of the example report: totals, then the two breakdowns that say where the sales came from.
  1. Headline numbers. Sales before tax, number of invoices (or orders), average invoice and customers buying, each against last month, plus sales as a percentage of target. Marlow: $24,000 over 17 invoices is an average of $1,412, up from $20,000 ÷ 16 = $1,250.
  2. Sales by category. What you sold. Marlow's signs and banners rose $2,200 and marketing print $1,900, while design fell $300. Keep categories few (four to eight) and fixed, or month-to-month comparisons stop meaning anything.
  3. Sales by salesperson or channel. Who or what sold it. For a business without a sales team, use channels instead: account customers, website, counter.
  4. The customer bridge. How last month's total became this month's, customer by customer. This is the part most sales reports leave out, and it gets its own section below.
  5. The summary. Three sentences: what happened, why, and what next.

Notice what isn't there: no pie charts, no list of every invoice, no profit. Profit belongs in the monthly management accounts. A sales report that tries to be both ends up doing neither well.

The customer bridge: where the change really came from

Total sales moved by $4,000. The bridge splits that change into four groups of customers, and each group calls for a different response.

Customer bridge for the example business: August sales $20,000, lost customers −$2,100 (2 customers), customers who spent less −$2,300 (3), customers who spent more +$2,000 (3), new customers +$6,400 (2), September sales $24,000
New customers more than covered the money lost from existing ones. That's a different month from "up 20%".

The template sorts every customer into one of five types by comparing their two monthly totals:

  • New: bought this month, nothing last month. Marlow: Riverside School PTA ($2,600) and City Arts Festival ($3,800).
  • Lost: bought last month, nothing this month. Northgate Gym ($1,500) and Bloom Florist ($600).
  • Spent less: Elm Realty (−$1,200), Greenway Landscaping (−$800) and counter and web orders (−$300).
  • Spent more: Summit Builders (+$1,200), Harbor Café (+$600) and Oak & Vine Wine Bar (+$200).
  • Same: Kessler Law and Maple Accounting, unchanged.

Then the bridge adds it up: $20,000 − $2,100 − $2,300 + $2,000 + $6,400 = $24,000. A check line confirms the bridge matches total sales; if it doesn't, a customer is missing from the list or spelled differently.

Turn each group into an action:

GroupQuestion to askTypical action
LostDid they stop, or just skip a month?Check their usual ordering gap. If they're past it, call within a week
Spent lessIs it one smaller job or a trend?Act if a customer is down two months running, or down by more than a third
Spent moreWhat did they buy that they didn't before?Offer the same thing to similar customers
NewOne-off or likely to return?Mark one-offs in the summary so next month's drop doesn't surprise anyone

The thresholds in that table are rules of thumb for an example business, not benchmarks. A business with steady monthly orders can act on a single missed month; one whose customers order quarterly should compare quarters instead.

Watch the one-off. Marlow's festival order was 16% of September's sales. If the October report compares with September without saying so, it will show a fall that isn't a problem. Note one-off orders in the summary when they happen.

Writing the summary: three sentences

The summary is the part of a sales report that a partner, investor or lender actually reads. Write it last, in three sentences, each with a job:

Three-sentence sales report summary for the example: what happened (sales $24,000, up 20% and 9% over target), why (two new customers brought $6,400 including $3,800 from a one-off festival; existing customers spent $2,400 less), what next (Dana calls two lost customers by 10 October; Luis quotes a spring fair)
Three sentences, each with a number. The last one names who does what, by when.

Rules that keep it honest:

  • Use numbers, not adjectives. "Strong month" tells the reader nothing they can check. "$24,000, up 20%" does.
  • Explain with the bridge, not with the weather. "Quiet because of the holidays" might be true, but "two customers didn't order" is something you can act on.
  • Make "what next" checkable. A name, an action and a date. Next month's report should be able to say whether it happened.
  • Say the uncomfortable part. If growth came from a one-off, the summary says so.

For more examples of opening paragraphs for reports, including ones with bad news, see our executive summary examples.

Building the sales report template from your invoices

The template runs on one input: a list of invoices or orders with a date, invoice number, customer, category, salesperson and amount before tax. Paste at least two months into the data sheet (more is fine; the report picks the right months by date), type the first day of the month you're reporting and your target, and list your categories, salespeople and customers. Everything else is formulas:

  • This month's sales = SUMIFS(amount, date, ">="&month, date, "<"&EDATE(month,1)). SUMIFS adds up rows that meet every condition, and EDATE moves a date by whole months, so the same formula works for any month. Last month uses EDATE(month,-1) and the month itself as the two limits. Google Sheets has the same SUMIFS function, so the file behaves the same there.
  • Invoices = COUNTIFS with the same two date conditions. Average invoice = sales ÷ invoices.
  • By category, salesperson and customer = the same SUMIFS with one more condition for the name in column A.
  • Type = New if last month was zero and this month wasn't, Lost if the reverse, otherwise Up, Down or Same.
  • Bridge = last month's total, minus Lost customers' last-month sales, plus the changes for Down and Up customers, plus New customers' sales.

Every breakdown has a check line that should read OK. If one doesn't, a name in the data is spelled differently from the list ("Harbor Cafe" vs "Harbor Café" is enough).

Getting the invoice list out of your system

Most accounting and payment tools export what you need. In QuickBooks Online, Intuit's help shows how to run the Transaction Detail by Account report, filtered to income accounts and grouped by customer, and export it to Excel. Our QuickBooks reports guide covers the other sales reports worth knowing. Whatever the source, tidy the export into the six columns before pasting it in.

Mistakes that make a sales report wrong

  1. Including sales tax. Use amounts before tax. Tax collected isn't sales.
  2. Mixing invoice dates and payment dates. A sales report counts sales when invoiced (or ordered). Cash received is a different report. Pick one and keep it.
  3. Leaving out credit notes. Enter them as negative amounts against the same customer, or a refunded job still counts as a sale.
  4. Renaming customers or categories mid-year. The comparison breaks silently. Keep a fixed list, and merge duplicates in the data, not in the report.
  5. Reporting the total only. As Marlow shows, a 20% rise can hide a 12% fall in what existing customers spent ($2,400 of $20,000).

What the template can't do

It reports sales, not profit or cash collected. It compares a month with the month before, not with the same month last year; for a seasonal business, add a column using EDATE(month,-12). And it holds 40 customers in the blank report; with more, copy the last customer row down and extend the totals, or consider a tool built for it.

When the invoice list gets long

Pasting two months of invoices into a spreadsheet takes ten minutes for a business with 30 invoices a month. With 300, keeping customer names consistent becomes the job. Parity builds the dashboard from the source instead: connect QuickBooks Online, Stripe, Shopify, Square, HubSpot or Google Sheets, or upload a CSV or Excel export from anything else. It shows the headline numbers with their trends, charts, what explains the change and a table of what needs attention, such as customers who stopped ordering, and every number is checked against queries on the full dataset before you see it.

Ask it to write the monthly sales report and it drafts one from the same data for a partner, investor or lender. You can refine it by chat ("add a customer bridge against August", "flag one-off orders over $3,000"), export it to PDF or Excel, share a read-only link, and save it as a template so next month you only update the file.

Turn your invoice list into a monthly sales report

Connect your accounting tool or upload an export, and get a checked report that explains why sales moved. Build a report from your data free

However you produce it, read the bridge before the total. "Up 20%" is the headline people remember; "two customers stopped ordering" is the line that makes next month better.

Want to see what Parity builds from your data?

Build a report