Anton Chisliuk · AI Marketing Ops
Anton Chisliuk
AI Marketing Ops

Sales Operations

Free Sales Dashboard Template (Excel & Google Sheets)

Build a real sales dashboard in Excel or Google Sheets. Get the structure, columns, and formulas to track pipeline, win rate, and forecast - with CRM-ready setup.

12 min readWritten by: Anton ChisliukMiddle of funnel

You don’t need a BI team to see pipeline, win rate, and forecast. A clean sales dashboard in Excel or Google Sheets will do the job - if it’s built on the right data model and kept current. Below is a complete operator’s guide: what to track, how to structure your sheets, the exact formulas, and how to connect it to your CRM so it’s not another vanity spreadsheet.

Who This Free Sales Dashboard Is For

If you run a growing business and still get sales numbers via screenshots or last-minute Slack threads before the board call, this dashboard is for you. It’s also for marketing leaders who need to prove pipeline impact without waiting on a data team. You’ll get a clear line of sight from lead to revenue in one sheet.

Founders at $500K–$5M revenue get an immediate pulse check: how much pipeline exists, where deals stall, and if the next 90 days are healthy. VP/Growth leaders at $5M–$50M get a repeatable reporting layer to unify inbound, outbound, and paid - the same structure we roll out before scaling budgets or headcount.

This is not a vanity template. It forces the core KPIs and definitions your team argues about (what counts as a SQL? what is a stage change?) into a shared language. Expect clarity, not design awards.

What You’ll Track: The Non-Negotiable Sales KPIs

A sales dashboard earns its keep by answering four questions fast: Are we creating enough pipeline? Are we converting at a healthy rate? Are deals moving fast enough? Are we generating revenue at or above target? Everything else is decoration.

At a minimum, include these metrics with clear definitions that don’t move week to week:

- Total pipeline value (open deals, by stage and close date quarter)
- New pipeline created this period (sum of Amount for net-new qualified opportunities)
- Win rate (Closed Won count ÷ Closed Won + Closed Lost)
- Average deal size (Closed Won value ÷ Closed Won count)
- Sales cycle length (average days from Qualified to Closed Won)
- Stage conversion rates (Qualified → Discovery → Proposal → Contract → Closed Won)
- Forecast (weighted pipeline by stage probabilities and time window)
- Revenue this month/quarter (Closed Won sum this period for cash or MRR/ARR)

Add context with channel slices (Inbound, Outbound, Paid) and owner/team rollups. If you can’t break metrics by channel, you’re flying blind on spend and capacity.

Template Architecture: Sheets, Columns, and Data Flow

The dashboard works because the data model is boring and consistent. Use four tabs: Deals (raw), Activities (optional but recommended), Targets (goals by month/owner), and Dashboard (metrics + visuals). Keep your raw tabs append-only and do calculations in the Dashboard tab.

Deals tab houses one row per opportunity. Required columns below are intentionally CRM-agnostic so you can export from HubSpot, Salesforce, or Pipedrive without rewriting the sheet monthly.

Recommended Deals columns:

ColumnTypeDescription
Deal_IDTextUnique ID from CRM
Deal_NameTextReadable name
OwnerTextRep or team
CompanyTextAccount name
AmountNumberValue in your base currency
CurrencyTextFor multi-currency, normalize later
StageTextPipeline stage at time of export
Stage_Entry_DateDateLatest stage entry date
Created_DateDateOpportunity creation date
Close_DateDateExpected or actual close date
StatusTextOpen, Closed Won, Closed Lost
Loss_ReasonTextOptional - standardize values
Source_ChannelTextInbound, Outbound, Paid, Partner, Other
Product/PlanTextOptional - for mix analysis
MRR/ARRNumberIf recurring - else leave blank

Activities tab (optional but powerful) gives leading indicators. Log calls, emails, demos, proposals with columns: Activity_ID, Deal_ID, Activity_Type, Owner, Date. This fuels conversion analysis for “inputs → outputs.”

Targets tab sets monthly goals per Owner and overall. Columns: Month (YYYY-MM), Owner, Pipeline_Create_Target, Win_Rate_Target, Revenue_Target, Activity_Targets by type. Lock these with data validation so targets don’t drift.

Step-by-Step: Build the Sales Dashboard in Google Sheets

Start by importing your CRM export (CSV) into the Deals tab. Use consistent headers to avoid breaking formulas later. Freeze the header row. Turn on filter views, and standardize Stage names with data validation. If you have multiple pipelines, add a Pipeline column and include it in filters.

Create named ranges for readability. For example, name the Deals table range Deals!A1:O for all columns in use. In Google Sheets, you can use structured references with FILTER and QUERY easily. In Excel, you’ll use Tables and structured references.

Core formulas (Google Sheets examples):

- Open pipeline value (this quarter):
=SUM(FILTER(Deals!E:E, Deals!L:L="Open", TEXT(Deals!J:J, "YYYY-Q")=TEXT(TODAY(), "YYYY-Q")))

- New pipeline created this month:
=SUM(FILTER(Deals!E:E, TEXT(Deals!I:I, "YYYY-MM")=TEXT(TODAY(), "YYYY-MM")))

- Win rate (last 90 days):
=COUNTIF(FILTER(Deals!L:L, Deals!I:I>=TODAY()-90), "Closed Won") / COUNTIF(FILTER(Deals!L:L, Deals!I:I>=TODAY()-90), "*")

- Average deal size (Closed Won, last 90 days):
=AVERAGE(FILTER(Deals!E:E, Deals!L:L="Closed Won", Deals!I:I>=TODAY()-90))

- Sales cycle in days (Qualified to Won): If Stage_Entry_Date is when the deal entered Qualified, add a Qualified_Date column (from CRM or via activity). Then:
=AVERAGE(FILTER(Deals!J:J - Deals!H:H, Deals!L:L="Closed Won"))

- Weighted forecast (stage probabilities in a small mapping table, e.g., Qualified 20%, Proposal 60%, Contract 80%):
=SUMPRODUCT(Deals!E:E, N(MAP(Deals!G:G, LAMBDA(s, IF(s="Qualified",0.2, IF(s="Proposal",0.6, IF(s="Contract",0.8,0)))))), N(Deals!L:L="Open"))

Channel slices are just added criteria. Example: Weighted forecast for Outbound only:
=SUMPRODUCT(Deals!E:E, N(Deals!N:N="Outbound"), N(MAP(Deals!G:G, LAMBDA(s, IF(s="Qualified",0.2, IF(s="Proposal",0.6, IF(s="Contract",0.8,0)))))), N(Deals!L:L="Open"))

For stage conversion rates, calculate counts of deals that ever reached each stage, not just current stage, otherwise your funnel lies. If your CRM export includes stage history, use it. If not, proxy with earliest Stage_Entry_Date per stage captured at export time and keep historical snapshots monthly.

Excel Notes: Formatting and Formulas That Differ

Excel’s Table objects make formulas more resilient. Convert your Deals range to a Table (Ctrl+T), rename it Deals. Use structured references like Deals[Amount] and Deals[Status]. Avoid entire column references for performance; Tables recalc faster and autosize.

Equivalent formulas in Excel:

- Open pipeline value (this quarter):
=SUMPRODUCT((Deals[Status]="Open")*(TEXT(Deals[Close_Date],"yyyy-"&ROUNDUP(MONTH(Deals[Close_Date])/3,0))=TEXT(TODAY(),"yyyy-"&ROUNDUP(MONTH(TODAY())/3,0)))*Deals[Amount])

- New pipeline created this month:
=SUMPRODUCT((TEXT(Deals[Created_Date],"yyyy-mm")=TEXT(TODAY(),"yyyy-mm"))*Deals[Amount])

- Win rate (last 90 days):
=COUNTIFS(Deals[Status],"Closed Won",Deals[Close_Date],">="&TODAY()-90) / (COUNTIFS(Deals[Status],"Closed Won",Deals[Close_Date],">="&TODAY()-90)+COUNTIFS(Deals[Status],"Closed Lost",Deals[Close_Date],">="&TODAY()-90))

- Sales cycle (days):
=AVERAGEIFS(Deals[Close_Date]-Deals[Stage_Entry_Date],Deals[Status],"Closed Won")

Use =NETWORKDAYS(start,end) if you prefer business days. Add a Holidays range to make it accurate for your region.

Manual CSV export works to start, but it rots. Schedule refresh. In Google Sheets, use Connected Sheets (BigQuery-backed CRMs), Marketplace connectors, or a simple Apps Script to pull a saved view daily. In Excel, use Power Query to load a CSV from a shared drive or an API endpoint and refresh on open.

Key is consistency: same columns, same stage names, same filters. If your CRM adds custom fields, append them to the far right and don’t touch the first 15 columns used by formulas. For multi-currency, add a Rates tab and normalize Amount to a Base_Amount column during import with Power Query or a VLOOKUP/XLOOKUP.

If you want this wired correctly inside your CRM with clean properties, stage histories, and pipeline hygiene rules, our CRM build approach keeps operators in control instead of dashboards chasing broken data. See how we implement HubSpot/CRM and RevOps foundations here: CRM implementation.

Make It Useful: Weekly Revenue Meeting Agenda Using the Dashboard

A dashboard earns shelf space when it drives a decision cadence. Use it to run a 30-minute weekly revenue meeting focused on movement, not storytelling. The rule: every chart should invite one question - and a next action.

Suggested flow:

- 5 minutes: Review top-line - Open pipeline, New pipeline created, Closed Won this period vs target.
- 10 minutes: Stage conversions and stuck deals. Click into the stage with the lowest conversion and pull 3 live deals to unblock.
- 10 minutes: Channel view. Are Paid, Inbound, and Outbound generating target pipeline at viable CAC? Where to shift spend or sequences?
- 5 minutes: Forecast confidence. Confirm upside/downside vs target and assign actions.

Between meetings, owners update Close Dates, next steps, and stage with a simple hygiene checklist. Your dashboard reflects reality only if reps maintain three fields: Stage, Close Date, Amount. Guard these fields like production data.

Attribution and Channel Views: Paid, Outbound, and Organic

Slice the dashboard by Source_Channel to keep acquisition honest. If Paid says it prints pipeline but win rate is half of Inbound, you know where enablement or targeting is off. If Outbound delivers large deals with longer cycles, the weighted forecast will show timing risk vs target.

For Paid breakdown, add a Channel_Detail column (Google Ads, Meta, LinkedIn) and roll up pipeline and revenue by detail. Keep campaign names elsewhere; your dashboard isn’t a replacement for Ads UI, it’s where budget meets revenue. If your paid reporting lives across tools, unify with a simple lookup to tie clicks/sources to deals, then measure CAC by channel.

If you’re scaling budget and need performance to connect cleanly from click to Closed Won, it’s worth operationalizing the bridge between ads and CRM. This is exactly where a compact operator setup pays off. See how we run budget with accountability: performance marketing. For outbound motion, log first-touch channel and sequence ID, then roll results by sequence and rep. If you want a done-for-you cold infrastructure (600 emails/day capacity with clean domain rotation), see our email outbound approach.

Why Operators Build Better Dashboards (and Use Them)

Most dashboards fail not because charts are bad, but because they sit between departments. An operator builds the CRM, writes the sequences, launches ads, and then wires the dashboard that measures it all. One builder means definitions match reality - and fixes happen in hours, not a new QBR.

That’s the model at Anton Chisliuk · AI Marketing Ops - one senior operator ships HubSpot, SEO, outbound, and automation end to end. Proof matters: for Cleverence (B2B SaaS), we went from 0 to 80K organic visits/month and ~2K inbound leads/month while keeping CPL at $2–6.50 on paid - because measurement and ops were built together, not bolted on.

If you want to see how an operator-led setup works across industries without agency tax, here’s a straight summary of who we are and how we work: About Anton Chisliuk · AI Marketing Ops.

Common Pitfalls and How to Fix Them

Moving targets. If your team redefines SQL or stage names mid-quarter, your time series breaks. Lock definitions in a one-pager, put it in the Dashboard tab, and change only at quarter boundaries. Backfill history when you do.

False funnel math. Counting only current stage for conversion analysis hides what really happened. A deal that moved to Proposal and then fell back to Discovery shouldn’t vanish from Proposal counts. Capture stage entry dates or snapshots so conversion math reflects “ever reached stage.”

Messy Close Dates. Reps leave stale dates in the past. Fix with a hygiene rule: Close Date must be in the future for Open deals; otherwise the row highlights red. In Sheets/Excel, use conditional formatting on AND(Status="Open", Close_Date<TODAY()) to flag. Review these at the weekly meeting.

Extending the Template: Forecasting, Cohorts, and Automation

Weighted forecast is the baseline. Add a second forecast that’s stage- and age-aware. For example, apply lower probability if a Proposal-stage deal is older than the median for Won deals. This instantly reduces sandbagging and over-optimism.

Build cohort views to see retention and expansion if you have recurring revenue. Track MRR by Close Month and view 1-, 3-, and 6-month expansion/downsells by cohort. You’ll learn if sales is pulling forward discounts or winning the right segments.

Automate refresh to keep this sheet as your single source for weekly decisions. Even simple nightly pulls plus a read-only lock on raw tabs will lift quality. If you later add a BI tool, keep this sheet as the “operator dashboard” that answers the business questions fast while the BI stack handles deeper drill-downs.

Use visual blocks that answer one question each. In your Dashboard tab, create these sections:

- Top bar KPIs: New Pipeline (MTD), Open Pipeline (This Q), Win Rate (Last 90d), Avg Deal, Sales Cycle (days), Closed Won (MTD).
- Pipeline by Stage: Stacked bar of Amount by Stage filtered to this quarter’s Close Dates.
- Forecast vs Target: Weighted forecast and target line by week for current quarter.
- Channel Mix: Pie or stacked column of Open Pipeline by Source_Channel.
- Owner Leaderboard: Closed Won and New Pipeline by owner MTD.
- Loss Reasons: Top 5 standardized reasons with counts and amounts.

Formulas to power visuals (Sheets/Excel logic similar):

- New pipeline MTD amount:
=SUMIFS(Deals[Amount], Deals[Created_Date], ">="&EOMONTH(TODAY(),-1)+1, Deals[Created_Date], "<="&EOMONTH(TODAY(),0)) (Excel Table) or
=SUM(FILTER(Deals!E:E, Deals!I:I>=EOMONTH(TODAY(),-1)+1, Deals!I:I<=EOMONTH(TODAY(),0))) (Sheets)

- Pipeline by Stage (this quarter): create a small Stage list and use SUMIFS/SUMIF per stage with Close_Date in the current quarter.

- Owner leaderboard: pivot table on Deals with filters: Status=Closed Won for the period, Values=SUM(Amount), Rows=Owner. For New Pipeline, pivot on Created_Date range and SUM(Amount).

Data Hygiene Checklist You Can Enforce

Add simple conditional formats and data validation to keep the dataset trustworthy. You don’t need a data police squad; you need a few guardrails reps feel immediately when editing.

- Stage must be one of the standardized values. Use a validation list referencing a Stage Map tab.
- Close Date required when Status=Open. Use conditional formatting to flag blanks.
- Source_Channel must be from a controlled list. Map CRM UTM or lead source to this list via workflow, not rep input.

Review hygiene at the weekly revenue meeting. If a deal shows red twice, it gets pushed back to the prior stage or removed from forecast. That’s how dashboards stay accurate long term.

How Marketing Uses This Dashboard Without Fighting Sales

Marketers don’t need another attribution war. Use the shared sheet to agree on what counts: once an opportunity is created and meets qualification, it enters the funnel. Marketing tracks “Pipeline Created” and “Closed Won from Marketing” by Source_Channel and by campaign theme if you carry that column in Deals.

Run monthly debriefs on stage-level fallout for marketing-sourced deals versus sales-sourced. If Paid-sourced deals die at Discovery, content or offer misses ICP intent. If Outbound dies at Contract, enablement or pricing needs work. One dashboard, shared questions.

Set quarterly targets in the Targets tab for Pipeline Create and Win Rate by channel. Marketing and sales then own different levers but report to the same reality. It removes the “my report says…” cycle from leadership calls.

When to Graduate to BI (and When Not To)

Graduation criteria: you can’t answer questions without row-level history (multi-stage journeys), you need cross-object joins beyond Sheets comfort (product usage + sales), or you’re hitting performance walls with 100K+ rows. Until then, this sheet is faster to maintain and easier to teach your team.

Even with BI, keep the operator sheet alive. It acts as the weekly cockpit while the BI stack answers ad hoc deep dives. If BI numbers disagree with the sheet, you have a healthy audit surface to find broken definitions or sync issues.

Don’t jump to tools because charts look nicer. Jump because questions went unanswered for two weeks straight and it blocked decisions. That’s your bar.

Security and Access: Keep It Shared, Not Leaked

Keep raw tabs protected and view-only for most of the team. Only a RevOps owner updates imports. Dashboard tab remains viewable and filterable. For board sharing, publish a PDF snapshot with date stamps and definition notes on the first page.

Mask sensitive columns (pricing notes, margin) if you share widely. Use IMPORTRANGE or Power Query to pipe only needed columns into a public-facing copy for investors or advisors.

Audit access quarterly. If your pipeline is real money, treat the sheet like cash. Access reviews are boring until they save you from a leak.

Conclusion

A working sales dashboard is a decision system, not a design file. Keep the model simple, lock definitions, refresh daily, and run your weekly revenue meeting from it. You’ll catch forecast gaps earlier, direct enablement to the right stage, and give marketing and sales one version of the truth.

If you want this built on your CRM with clean properties, stage histories, and a weekly cadence that drives pipeline, request a free Growth Audit - we’ll assess your data model and ship a tailored dashboard plan for your stack in days, not weeks.

Author: Anton Chisliuk - Leads, sales, content, and systems - one senior operator.

FAQs

- Can I use this sales dashboard if I don’t have a CRM?

Yes. Start with manual entries into the Deals tab. Use consistent fields (Created_Date, Stage, Close_Date, Amount). The moment you feel friction, that’s your signal to stand up a CRM and map these columns 1:1 so the dashboard becomes a passive mirror of reality.

- Should I track MRR/ARR or just deal Amount?

If you sell subscriptions, track both: Amount for initial contract value and MRR/ARR for recurring health. Use MRR for cohort and retention views, and Amount for sales cycle and forecast (unless your team sells multi-year upfront, then use Total Contract Value).

- What stage probabilities should I use for weighted forecast?

Start with 20% (Qualified), 40% (Discovery), 60% (Proposal), 80% (Contract), 100% (Won). Then backtest last two quarters: apply these probabilities to historical open deals and see how the forecast compared to actual. Adjust by stage until the error narrows.

- How often should I refresh the data?

Daily is the sweet spot. It’s fast enough to keep the meeting relevant and slow enough that your operators aren’t babysitting syncs. If your team does high-velocity sales, consider twice daily. If you’re enterprise with long cycles, daily remains helpful for hygiene.

- How do I handle multi-currency deals?

Add a Rates tab with daily or monthly FX rates and create a Base_Amount column that converts Amount using close-date or create-date rates. Report pipeline and revenue in base currency to keep targets clean. Keep original Amount and Currency for audits.

- Can I add product usage or onboarding milestones to improve forecasts?

Yes. Add columns for Key Milestones (e.g., Trial Activated, POC Success). Deals that hit milestones typically have higher conversion and shorter cycles. Use an uplift factor or stage jump when milestones are met. This also flags enablement gaps early.

- What’s the quickest win if I have only one hour?

Import last 180 days of opportunities, standardize Stage names, and build three KPIs: Open Pipeline (this quarter), Win Rate (last 90 days), and Closed Won (MTD). Add conditional formatting for overdue Close Dates. Run your next revenue meeting from that view and iterate.

Written by

Anton Chisliuk

Founder & Lead Operator · AI Marketing Operator

Anton Chisliuk is a GTM Engineer and Marketing Systems Architect. He built Cleverence's AI-native revenue OS (88 Make blueprints, MCP hub, 0→200K organic, 2.2K leads/mo) and now delivers outsourced GTM Engineering — CRM, automation, SEO, outbound — for growth-stage businesses via aimrktops.com.

About Anton →

Ready to fix this — for real?

Book a free Growth Audit. No sales deck — a 30-minute conversation about your pipeline, stack, and what to ship first.