Weekly and monthly sales report templates, with the formulas

A sales report isn't a data dump: it compares results with the target and the last period, explains the gap and says what happens next. Build it once on a single deals table, and the formulas do the counting every week.

Template7 min readUpdated

Short answer

A good sales report template compares results with the target and the previous period, explains the gap and says what happens next. A weekly report covers bookings, activity, new pipeline and the deals that moved. A monthly report adds attainment, win rate, average deal size, sales cycle, pipeline coverage and a pipeline waterfall. Build both on one deals table with SUMIFS and COUNTIFS formulas, so the numbers update themselves.

  • Every number needs two comparisons: the target and the previous period.
  • Weekly reports steer activity and deals; monthly reports judge results and the pipeline behind them.
  • Keep one deals table and calculate everything from it with SUMIFS, COUNTIFS and AVERAGEIFS.
  • Report win rate by count and by value; they tell different stories.
  • End every report with what you'll do differently, not just what happened.
On this page

This page is for sales managers, founders and sales operations staff who report on a B2B sales team every week or month, in a spreadsheet, a Word or Google Doc, or an email. It gives the report formats, the metric definitions and working Excel and Google Sheets formulas. For a rep's end-of-day activity log, use the daily sales report; for predicting next quarter, use the sales forecast template.

Weekly or monthly: what each report is for

Weekly sales reportMonthly sales report
AudienceThe sales team and its managerLeadership, finance, the board
Question it answersAre we doing the right things, and which deals need help?Did we hit the number, and is the pipeline good enough for next quarter?
Core metricsBookings, activity, new pipeline, deals that moved or stalledAttainment, win rate, average deal size, sales cycle, coverage, pipeline movement
LengthHalf a page or one screenOne to two pages plus a metrics table
DueMonday morning, covering the previous Monday to SundayWithin three business days of month end

The metrics and their formulas

The formulas assume a sheet called Deals with one row per deal: A deal name, B owner, C stage, D amount, E created date, F close date, G status (Open, Won or Lost), H product, I region, and a helper column J for cycle days (formula below). On the report sheet, put the period's start date in B1, the end date in B2 and the quota in B3. They work in both Excel and Google Sheets.

MetricDefinitionFormula
BookingsValue of deals won in the period=SUMIFS(Deals!D:D,Deals!G:G,"Won",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
Deals wonCount of deals won=COUNTIFS(Deals!G:G,"Won",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
Deals lostCount of deals lost=COUNTIFS(Deals!G:G,"Lost",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
Lost valueValue of deals lost=SUMIFS(Deals!D:D,Deals!G:G,"Lost",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
Win rate by countWon ÷ (won + lost)=IFERROR(Won/(Won+Lost),0)
Win rate by valueBookings ÷ (bookings + lost value)=IFERROR(Bookings/(Bookings+LostValue),0)
Average deal sizeBookings ÷ deals won=IFERROR(Bookings/Won,0)
Average sales cycleAverage days from created to won=AVERAGEIFS(Deals!J:J,Deals!G:G,"Won",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
New pipelineValue of deals created in the period=SUMIFS(Deals!D:D,Deals!E:E,">="&$B$1,Deals!E:E,"<="&$B$2)
AttainmentBookings ÷ quota=IFERROR(Bookings/$B$3,0)
Change(This period − last period) ÷ last period=IFERROR((This-Last)/Last,0)

Replace the words in the short formulas (Won, Bookings and so on) with the cells that hold those results. For definitions and how to use them, see win rate, pipeline coverage and quota attainment.

Set up the data once

  1. Keep one deals table. Export it from your CRM or maintain it by hand, but every report reads from the same rows. Never type a total into a report.
  2. Add the cycle helper. In J2, enter =IF(G2="Won",F2-E2,"") and fill down. Blank text is ignored by AVERAGEIFS, so open and lost deals don't distort the average.
  3. Set the dates with formulas. For last week (Monday to Sunday), B1 is =TODAY()-WEEKDAY(TODAY(),2)-6 and B2 is =B1+6. For last month, B1 is =EOMONTH(TODAY(),-2)+1 and B2 is =EOMONTH(TODAY(),-1).
  4. Clean before you report. Fix open deals whose close date has passed, and missing amounts. Overdue open deals inflate the pipeline.
  5. Copy last period's figures into a "previous" column before you refresh, so the change column has something to compare with.

Sales report templates

Weekly sales report (email or Slack)
Subject: Sales week of [date]: [bookings] booked, [attainment]% of [month] target

HEADLINE: [one sentence: ahead, on track or behind, and why]

THE NUMBERS (this week / target / last week)
Bookings: [$] / [$] / [$]
Deals won: [n] / [n] / [n]
New pipeline created: [$] / [$] / [$]
Meetings held: [n] / [n] / [n]

DEALS THAT MOVED: [deal, stage change, amount] (up to three)
DEALS AT RISK: [deal, what's wrong, what we're doing] (up to three)
ONE CHANGE FOR NEXT WEEK: [what, who]
HELP NEEDED: [a decision or resource, or "none"]
Weekly report sheet (formulas)
B1 Week start: =TODAY()-WEEKDAY(TODAY(),2)-6
B2 Week end: =B1+6
B3 Weekly target: [amount]

B5 Bookings: =SUMIFS(Deals!D:D,Deals!G:G,"Won",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
B6 Deals won: =COUNTIFS(Deals!G:G,"Won",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
B7 New pipeline: =SUMIFS(Deals!D:D,Deals!E:E,">="&$B$1,Deals!E:E,"<="&$B$2)
B8 Deals created: =COUNTIFS(Deals!E:E,">="&$B$1,Deals!E:E,"<="&$B$2)
B9 Against target: =IFERROR(B5/$B$3,0)
C5 to C9: last week's values (paste as values before refreshing)
D5 Change: =IFERROR((B5-C5)/C5,0), filled down to D9
Rep activity report (weekly)
Columns: Rep | Calls | Emails | Meetings held | New pipeline | Bookings | Notes

New pipeline for the rep in A6:
=SUMIFS(Deals!$D:$D,Deals!$B:$B,$A6,Deals!$E:$E,">="&$B$1,Deals!$E:$E,"<="&$B$2)

Bookings for the rep in A6:
=SUMIFS(Deals!$D:$D,Deals!$B:$B,$A6,Deals!$G:$G,"Won",Deals!$F:$F,">="&$B$1,Deals!$F:$F,"<="&$B$2)

Calls, emails and meetings: from your activity log, with COUNTIFS on owner, type and date.
Monthly sales report (Word or Google Docs)
[COMPANY] SALES REPORT: [MONTH YEAR]
Prepared by [name], [date]

1. SUMMARY (three sentences)
[Result against quota.] [The main reason.] [What we're changing.]

2. RESULTS
Table: metric | this month | last month | change | target

3. WHAT DROVE THE RESULT
[Two or three causes, each with a number: e.g. "two deals worth $110,000 slipped to October because..."]

4. PIPELINE
Starting pipeline, + new, − won, − lost, ± other changes, = ending pipeline
Coverage for next quarter: [open pipeline closing next quarter] ÷ [next quarter's quota]

5. BY REP, PRODUCT OR REGION
[Short table, with one line of comment on any outlier]

6. NEXT MONTH
[Target, the three biggest deals, and the actions with owners]
Pipeline movement (waterfall)
B12 Starting pipeline: [last month's ending figure, pasted as a value]
B13 + New pipeline: =SUMIFS(Deals!D:D,Deals!E:E,">="&$B$1,Deals!E:E,"<="&$B$2)
B14 − Won: =SUMIFS(Deals!D:D,Deals!G:G,"Won",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
B15 − Lost: =SUMIFS(Deals!D:D,Deals!G:G,"Lost",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2)
B16 Ending pipeline: =SUMIFS(Deals!D:D,Deals!G:G,"Open")
B17 ± Other changes (amount edits, reopened deals): =B16-(B12+B13-B14-B15)
Sales by product or region (grid)
Rows A6 down: products (or regions). Columns B5 across: month-end dates.

Cell B6:
=SUMIFS(Deals!$D:$D,Deals!$H:$H,$A6,Deals!$G:$G,"Won",Deals!$F:$F,">"&EOMONTH(B$5,-1),Deals!$F:$F,"<="&B$5)

Fill right and down. Use column I instead of H for regions. Add a total row with =SUM(B6:B[last row]).

Worked example: a contract manufacturer's September report

Illustrative example. The company, people and figures are fictional, to show the method.

The company: Calder Contract Manufacturing (caldercm.example), which machines and assembles parts for equipment makers. Four reps each carry a $150,000 monthly quota, so the team quota is $600,000. Deals are quotes for production runs.

MetricSeptemberAugustChange
Bookings$540,000$480,000+12.5%
Attainment (quota $600,000)90%80%+10 points
Deals won98+1
Deals lost2119+2
Win rate by count9 ÷ 30 = 30%8 ÷ 27 = 30%flat
Win rate by value$540,000 ÷ $1,200,000 = 45%
Average deal size$60,000$60,000flat
Average sales cycle74 days71 days+3 days
New pipeline$1,400,000$1,150,000+21.7%
RepBookingsAttainmentNew pipeline
Ana$210,000140%$300,000
Ben$150,000100%$400,000
Chloe$120,00080%$450,000
Dev$60,00040%$250,000
Team$540,00090%$1,400,000

Pipeline movement: starting $2,900,000, plus $1,400,000 new, minus $540,000 won, minus $660,000 lost, is $3,100,000. The ending snapshot is $3,000,000, so other changes are −$100,000 (two quotes reduced after customers cut volumes).

Coverage for Q4: $2,250,000 of open pipeline closes by 31 December, against a Q4 quota of $1,800,000, which is 1.25 times. At a 45% win rate by value, $2,250,000 is likely to produce about $1,012,500. To expect $1,800,000, the team needs $1,800,000 ÷ 0.45 = $4,000,000 closing in Q4, about $1,750,000 more than it has. With a 74-day average cycle, deals created after mid-October would need a faster-than-average cycle to close this year.

The summary that opened the report:

September bookings were $540,000, 90% of quota and 12.5% up on August, with win rates flat at 30% by count and 45% by value. Q4 is the concern: open pipeline closing this year covers 1.25 times the $1,800,000 quota, and at our win rate we'd expect about $1,010,000. In October we're focusing all four reps on new opportunities that can close by December (repeat customers and quotes under $50,000), and Dev is pairing with Ana on two late-stage deals.

Reading the report: what to do when a number moves

If this movesCheck firstLikely action
Bookings and new pipeline both downActivity, and the quality of accounts being contactedRebuild prospecting before it shows up in next quarter
Bookings down, pipeline steadyWin rate and stage ageReview lost deals and deals stuck in one stage
Win rate downLoss reasons, competitor mentions, discountsTighten qualification; update the battlecard
Average deal size downDiscounts, product mix, customer sizeCheck discount approvals
Sales cycle upDeals with no next step or close planClean up, then agree next steps on every deal
Coverage below 1 ÷ win ratePipeline that can close in the periodPrioritize late-stage deals; add pipeline now

When the problem is the top of the funnel, the fix is more accounts with a real reason to contact them. Bebop finds companies that match a plain-language description, explains why each fits and writes a playbook for each account, which shortens the research behind new pipeline.

Checklist before you send

  • Every number is compared with the target and the previous period.
  • All totals come from formulas on the deals table, not typed values.
  • Overdue close dates and missing amounts were fixed before refreshing.
  • Win rate is shown by count and by value.
  • The pipeline waterfall balances, with other changes explained.
  • The summary is three sentences: result, reason, change.
  • Each action has an owner.

Mistakes to avoid

  • Activity without outcomes. 400 calls means nothing without the meetings and pipeline they produced.
  • No comparison. "$540,000 booked" is meaningless without the quota and last month next to it.
  • Counting overdue deals as pipeline. An open deal with a close date in August isn't Q4 pipeline.
  • Averages that hide the spread. Show results by rep or product, so one big deal doesn't mask a weak month.
  • Reporting without a decision. If nothing changes because of the report, shorten it.

Next step: turn this month's pipeline into next quarter's number with the sales forecast template, which weights each deal by stage.

Sources

Written by the Bebop team at Blackpearl Group. Last updated .

Questions people ask

What should be included in a sales report?

Bookings against target and against the previous period, deals won and lost, win rate, average deal size, sales cycle length, new pipeline created and pipeline coverage for the next period. Add a short breakdown by rep, product or region, the deals that moved or are at risk, and a summary of what drove the result and what you'll change. Weekly reports can drop the slower metrics.

How do I make a sales report in Excel or Google Sheets?

Keep one deals table with owner, amount, created date, close date and status. On a report sheet, put the period's start and end dates in two cells, then calculate each metric with SUMIFS, COUNTIFS and AVERAGEIFS, for example =SUMIFS(Deals!D:D,Deals!G:G,"Won",Deals!F:F,">="&$B$1,Deals!F:F,"<="&$B$2) for bookings. The same formulas work in both Excel and Google Sheets.

What's the difference between a weekly and a monthly sales report?

A weekly report is for the team and its manager: bookings, activity, new pipeline and the deals that need help this week, in half a page. A monthly report is for leadership: attainment, win rate, average deal size, sales cycle, pipeline movement and coverage for next quarter, with an explanation of the result and the actions that follow. The monthly report judges; the weekly report steers.

How do you calculate win rate in a sales report?

By count, divide deals won by deals won plus deals lost in the period: 9 won and 21 lost is 30%. By value, divide the value won by the value won plus the value lost: $540,000 won and $660,000 lost is 45%. Leave open deals out of both. Show both, because a team can win few deals by count but the larger ones by value.

What is a good sales report format?

Start with a three-sentence summary (result, reason, change), then a metrics table showing this period, last period, the change and the target. Follow with what drove the result, the pipeline movement and coverage, a short breakdown by rep or product and the actions for next period with owners. Keep a weekly report to one screen and a monthly report to two pages.

Fix the top of the funnel the report points to

Describe the accounts your team should be selling to. Bebop finds matching companies and contacts, explains why each fits and writes a playbook for every account.

Edit the search to match your market. Already have an account? Log in