Salesforce Sales Report: Closed Revenue, Win Rate and Reps

Build a Salesforce sales report with closed-won revenue, win rate, average deal size and sales cycle by rep and lead source, using read-only SOQL.

Summary

A Salesforce sales report shows closed results: revenue, win rate, average deal size and sales cycle, by rep, lead source or period. Connect an org to Better Analyst and ask for it in plain English. Each answer comes from a read-only SOQL query against the objects you selected, which you can check in the query it ran.

On this page
  1. Who this report is for
  2. What the report includes
  3. How to build it in Better Analyst from Salesforce
  4. Questions to ask
  5. Sample output
  6. Charts to use
  7. Keep it up to date
  8. Further reading
  9. FAQ

Who this report is for

Sales leaders and revenue operations teams who report results each month or quarter and need to slice them by rep, segment or source without waiting for a new Salesforce report to be built.

What the report includes

Metrics and dimensions in this report
MetricSource fieldWhy it matters
Is wonOpportunity.IsWonIdentifies won deals directly, whatever your stages are called.
Is closedOpportunity.IsClosedWith IsWon, gives the denominator for win rate.
AmountOpportunity.AmountClosed revenue and average deal size come from this field.
Close dateOpportunity.CloseDateAssigns each result to a month or quarter.
Created dateOpportunity.CreatedDateWith close date, gives the length of the sales cycle.
OwnerOpportunity.Owner.NameResults by rep, for reviews and comparisons.
Lead sourceOpportunity.LeadSourceShows which channels produce won revenue, not just leads.
TypeOpportunity.TypeSeparates new business from renewals and upsells, which shouldn't share one win rate.
Account industryOpportunity.Account.IndustryAdds a segment view through the related account.

How to build it in Better Analyst from Salesforce

  1. Choose Salesforce under Connectors and pick your sign-in type. For a production org that's usually Production or your My Domain host.
  2. Approve access with Continue with Salesforce. We recommend connecting with an integration user that has read access only.
  3. Select Opportunity, Account and User, up to 40 objects in all, name the connector and save it.
  4. Start a chat with the connector and ask for closed-won revenue, win rate and average deal size by rep for last quarter.
  5. Ask for the same table by lead source, then turn the one you use most into a dashboard.

Questions to ask

  • “Show closed-won revenue, win rate and average deal size by owner for last quarter.”
  • “Compare win rate by lead source this year.”
  • “How has closed-won revenue changed by month for the last 12 months, new business versus renewals?”
  • “What is the average sales cycle in days for won opportunities, by industry?”
  • “Which accounts produced the most closed-won revenue this year?”

Sample output

Sample data for illustration, not real account data.

Sample data: sales results by lead source for one quarter (illustrative, not a real org)
Lead sourceClosed wonWonLostWin rateAvg dealAvg cycle (days)
Partner Referral$612,000241759%$25,50047
Web$428,000315237%$13,80633
Outbound$391,000122929%$32,58384
Trade Show$104,00061825%$17,33361

Charts to use

  • Closed-won revenue by month (Stacked column chart): The revenue trend, split between new business and renewals.
  • Win rate by lead source (Horizontal bar chart): The channels that win most often, sorted from highest to lowest.

Keep it up to date

Keep the result on a dashboard with a scheduled refresh, or send it to Google Sheets or a database with a Data Flow. Large exports run through Bulk API 2.0.

Further reading

Try Better Analyst free

Frequently asked questions

Which Salesforce editions work?
Editions with API access: Enterprise, Unlimited, Performance, Developer, or Professional with API access. The connecting user also needs API Enabled and read access to the objects you want to analyze.
Can it read custom objects and fields?
Yes. Search for custom __c objects when you select objects, up to 40 per org. Only fields the connecting user can see are available.
Can I check how a number was calculated?
Yes. Each answer comes from a SOQL query you can read, so you can see the filters and objects used. If a number needs to match an existing report, pin that report on the connector and ask against it.
Does it work with a sandbox?
Yes. Choose Sandbox or enter your My Domain host when you authorize. That is a good way to test before connecting a production org.