Executive DashboardApril 07, 2026

12 Free Google Sheets Dashboard Templates (Ready to Use)

Build dashboards in Google Sheets with 12 free templates covering executive, financial, sales, marketing, HR, and more. Includes formulas, layouts, and implementation tips.

Vik Chadha
Founder & CEO of AppDeck. 20+ years building B2B software companies, managing teams across three continents.
12 Free Google Sheets Dashboard Templates (Ready to Use)

TL;DR: Build dashboards in Google Sheets with 12 free templates covering executive, financial, sales, marketing, HR, and more. Includes formulas, layouts, and implementation tips.

TL;DR

Google Sheets is the fastest way to build a shared dashboard that your entire team can edit simultaneously. Below are 12 ready-to-use templates covering every major business function. Each includes a layout diagram, key metrics, Google Sheets-specific formulas (QUERY, SPARKLINE, IMPORTRANGE), and implementation tips. Copy whichever one fits your role, plug in your data, and you'll have a working dashboard in under an hour.

If you've already outgrown spreadsheets, skip to the When to Move Beyond Google Sheets section.


Why Google Sheets for Dashboards?

Google Sheets isn't the most powerful dashboarding tool. But it has three advantages that matter more than power in the early stages:

  1. Real-time collaboration. Multiple people editing the same sheet simultaneously, with no "FINAL_v3_REAL_FINAL" file naming disasters.
  2. Zero cost. Every Google Workspace user already has it. No procurement, no licenses, no IT tickets.
  3. Built-in data connectivity. IMPORTRANGE pulls data from other spreadsheets. IMPORTDATA pulls from CSVs. Google Apps Script connects to APIs. You can wire up a surprising amount of automation without leaving the ecosystem.

The tradeoff is that Sheets has weaker charting than Excel, no pivot chart support, and performance degrades past about 50,000 rows. But for most teams, those limits don't matter until much later.

If you're coming from Excel, I also wrote a companion guide: 15 Free Excel Dashboard Templates You Can Download Today.


What Makes a Good Google Sheets Dashboard?

Before the templates, here are the five rules that separate dashboards people actually use from ones that get bookmarked and forgotten.

1. Separate Dashboard Tab from Data Tabs

Your dashboard tab should contain only charts, KPI summaries, and SPARKLINE cells. All raw data lives on separate tabs — ideally named clearly (Data_Revenue, Data_Pipeline, etc.) and hidden from casual viewers.

Tab 1: DASHBOARD (visible, clean, charts and summaries only)
Tab 2: Data_Revenue (hidden)
Tab 3: Data_Sales (hidden)
Tab 4: Data_Marketing (hidden)
Tab 5: Calculations (hidden, intermediate formulas)

2. Use QUERY Instead of Complex Formula Chains

Google Sheets' QUERY function is its single biggest advantage over Excel. It lets you write SQL-like statements against your data:

=QUERY(Data_Revenue!A:E, "SELECT A, SUM(C) WHERE B = 'Q1' GROUP BY A LABEL SUM(C) 'Revenue'")

One QUERY formula replaces what would be a SUMIFS + INDEX/MATCH + helper column setup in Excel.

3. Keep to 5-7 KPIs Per View

Cognitive overload kills dashboards. If you need to scroll, you have too much. One screen, one story. Use tabs or dropdown filters if you need multiple views.

4. Use SPARKLINE for Inline Trends

Google Sheets' SPARKLINE function embeds a tiny chart inside a cell. It's the fastest way to add trend context without cluttering your layout:

=SPARKLINE(B2:M2, {"charttype","line";"linewidth",2;"color","#2196F3"})

5. Set Up Conditional Formatting as Your Alert System

Green/yellow/red formatting turns numbers into a dashboard. Without it, you're reading a spreadsheet.


12 Google Sheets Dashboard Templates

1. Executive Summary Dashboard

The executive summary is your company's vital signs on one screen. It answers the question every CEO asks on Monday morning: "Are we on track?"

Best for: CEOs, founders, and COOs who need company health at a glance

Key metrics:

KPIFormulaTarget Example
Revenue (MTD)=SUMIFS(Revenue, Date, ">="&EOMONTH(TODAY(),-1)+1)$1.2M
Active Customers=COUNTA(UNIQUE(Customers!A:A))200+
Cash PositionDirect entry or IMPORTRANGE6+ months runway
NPS Score=AVERAGE(NPS_Responses)>40
MoM Revenue Growth=(This_Month-Last_Month)/Last_Month>10%

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EXECUTIVE SUMMARY DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row - 4 across]
Revenue     | Customers  | Cash       | NPS
$1.2M       | 187        | $1.65M     | 48
+15% MoM    | +8% MoM    | 8mo runway | +6 pts

[SPARKLINE row under each KPI - 12 month trend]

[Line Chart - Full Width]
Revenue vs. Target (12-month trend)

[Two Charts Side by Side]
Revenue by Source     | Expense Breakdown
(Stacked bar)         | (Donut chart)

[Table]
Top 5 Priorities This Week — Status — Owner

Implementation tips:

  • Use IMPORTRANGE to pull revenue from your finance sheet, customers from your CRM export, and NPS from your survey sheet. This keeps one source of truth per metric.
  • Add a SPARKLINE row directly beneath each KPI card: =SPARKLINE(Revenue_By_Month!B2:M2, {"charttype","line";"color","#4CAF50"}).
  • Use a named range Today_Month set to =EOMONTH(TODAY(),-1)+1 so your date filters auto-update.

For a deeper dive on executive dashboard design, see Executive Dashboard Templates: 12 Free Examples and the Complete Guide to Executive Dashboards.


2. Financial / P&L Dashboard

Your finance dashboard should tell you three things instantly: are we making money, are we spending it wisely, and how long can we keep going?

Best for: CFOs, finance teams, and founders tracking P&L, cash flow, and budget variance

Key metrics:

KPIFormulaTarget Example
Monthly Recurring Revenue=SUMIFS(MRR, Date, Current_Month)$450K
Gross Margin=(Revenue-COGS)/Revenue>75%
Burn Rate=-(Cash_End-Cash_Start)<$200K/mo
Runway=Cash_Balance/Monthly_Burn>6 months
Budget Variance=Budget-ActualPositive = good

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FINANCIAL DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
MRR         | Gross Margin | Burn Rate  | Runway
$450K       | 78%          | $201K/mo   | 8.2 mo

[Stacked Bar Chart]
Revenue Breakdown: New + Expansion - Churn - Contraction

[Line Chart]
Actual vs. Budget (Monthly, YTD)

[Table - Budget vs. Actuals]
Category      | Budget  | Actual  | Variance | Trend
Personnel     | $142K   | $138K   | +$4K ✅  | →
Marketing     | $45K    | $48K    | -$3K ⚠️  | ↗️
Infrastructure| $28K    | $27K    | +$1K ✅  | →

Implementation tips:

  • Use QUERY for the budget vs. actuals table: =QUERY(Budget_Data!A:F, "SELECT A, SUM(B), SUM(C), SUM(C)-SUM(B) GROUP BY A LABEL SUM(B) 'Budget', SUM(C) 'Actual', SUM(C)-SUM(B) 'Variance'").
  • For the variance column, apply conditional formatting: green if positive (under budget), red if negative.
  • SPARKLINE in the trend column: =SPARKLINE(B2:G2, {"charttype","line";"linewidth",2}).

For more on financial dashboards, see Financial Dashboard Template: Metrics, Layout & Design Guide.


3. Sales Pipeline Dashboard

A pipeline dashboard needs to answer one question: will we hit quota this quarter? Everything else is context for that answer.

Best for: Sales leaders tracking pipeline health, quota attainment, and rep performance

Key metrics:

KPIFormulaTarget Example
Quota Attainment=Closed_Won/Quota100%
Pipeline Coverage=Total_Pipeline/Remaining_Quota>3x
Win Rate=Won/(Won+Lost)>20%
Avg Deal Size=SUM(Deal_Values)/COUNTA(Deal_Values)$40K+
Sales Cycle=AVERAGE(Close_Date-Create_Date)<45 days

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SALES PIPELINE DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
Quota Attain | Pipeline   | Win Rate   | Avg Deal
82%          | $6.2M      | 18%        | $42K
⚠️ 8 days   | 4.1x cover | Target: 20%| +$4K MoM

[Stacked Bar - Pipeline by Stage]
Discovery → Qualification → Proposal → Negotiation → Closed

[Horizontal Bar Chart]
Rep Performance: Actual vs. Quota (sorted by attainment %)

[Table - Top Deals]
Company | Amount | Stage | Close Date | Probability

Implementation tips:

  • Build the pipeline stage summary with QUERY: =QUERY(Pipeline!A:F, "SELECT C, COUNT(A), SUM(D) GROUP BY C ORDER BY SUM(D) DESC") where column C is stage and D is deal value.
  • Weighted pipeline uses =SUMPRODUCT(Deal_Amount, Stage_Probability) where you maintain a lookup table mapping each stage to a probability percentage.
  • Use a data validation dropdown to let users filter by rep, quarter, or region without editing formulas.

4. Marketing Performance Dashboard

Marketing dashboards fail when they track vanity metrics. This template focuses on the metrics that connect marketing activity to revenue.

Best for: Marketing teams tracking lead generation, channel ROI, and campaign performance

Key metrics:

KPIFormulaTarget Example
Total Leads=COUNTA(Leads!A:A)-11,000+/mo
MQL Conversion=MQLs/Total_Leads>25%
Customer Acquisition Cost=Marketing_Spend/New_Customers<$5,000
Marketing ROI=Sourced_Revenue/Marketing_Spend>3:1
Cost Per Lead=Total_Spend/Total_Leads<$200

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MARKETING DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
Leads       | MQLs       | CAC        | ROI
1,247       | 342        | $4,200     | 3.8:1
+22% MoM   | 27% conv   | -$300 MoM  | Target: >3:1

[Stacked Bar Chart]
Leads by Channel (12-month trend): Organic | Paid | Email | Referral

[Table - Campaign Performance]
Campaign | Spend | Leads | CPL | MQLs | Pipeline Generated

Implementation tips:

  • If your marketing data lives in another spreadsheet (or your team lead's sheet), use IMPORTRANGE("spreadsheet_url", "Leads!A1:F500") to pull it in automatically. You only need to authorize it once.
  • Use QUERY with WHERE clauses to break down leads by channel: =QUERY(Leads!A:E, "SELECT B, COUNT(A) WHERE C = 'Organic' GROUP BY B").
  • For the CPL column, use conditional formatting with a gradient scale — green for lowest cost, red for highest.

5. HR & People Dashboard

People metrics are often the last to get dashboarded and the first to cause problems when ignored. This template covers the basics every HR team should track.

Best for: HR leaders tracking headcount, hiring velocity, and retention

Key metrics:

KPIFormulaTarget Example
Headcount=COUNTA(Employees!A:A)-1Per plan
Open Roles=COUNTIF(Roles!D:D, "Open")Minimize
Turnover Rate=Departures_12mo/Avg_Headcount<15%
Time to Fill=AVERAGE(Fill_Date-Open_Date)<35 days
eNPS=(Promoters-Detractors)/Total>50

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PEOPLE DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
Headcount   | Open Roles | Turnover   | eNPS
47          | 8          | 12%        | 72
Plan: 55    | Avg fill:  | Target:    | +8 vs
            | 34 days    | <15%       | last Q

[Line Chart]
Headcount Plan vs. Actual (by month)

[Bar Chart]
Hiring Funnel: Applied → Screened → Interviewed → Offered → Hired

[Table]
Department   | HC  | Plan | Open | Turnover | Avg Tenure
Engineering  | 18  | 22   | 4    | 8%       | 2.4 years
Sales        | 12  | 14   | 2    | 18%      | 1.8 years
Marketing    | 8   | 9    | 1    | 6%       | 3.1 years

Implementation tips:

  • Use QUERY for the department breakdown: =QUERY(Employees!A:G, "SELECT B, COUNT(A) GROUP BY B LABEL COUNT(A) 'Headcount'") where column B is department.
  • Turnover by department: =COUNTIFS(Departures!B:B, "Engineering", Departures!C:C, ">="&DATE(YEAR(TODAY())-1, MONTH(TODAY()), DAY(TODAY())))/AVERAGEIFS(Employees!A:A, Employees!B:B, "Engineering").
  • Google Forms integrates natively with Sheets — set up a quarterly eNPS survey (one question: "How likely are you to recommend this company as a place to work?") that dumps responses directly into a data tab.

6. Project Status Dashboard

Project dashboards work when they give you the "portfolio view" — not the detail of each task, but the health of each project at a glance.

Best for: Project managers and ops leaders managing multiple concurrent workstreams

Key metrics:

KPIFormulaTarget Example
Active Projects=COUNTIF(Status, "<>Complete")Varies
On Track %=COUNTIF(Status,"On Track")/Active>80%
At Risk=COUNTIF(Status,"At Risk")0
Avg Completion=AVERAGE(Pct_Complete)Per plan
Overdue Tasks=COUNTIFS(Due, "<"&TODAY(), Status, "<>Done")0

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PROJECT STATUS DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
Active       | On Track   | At Risk    | Overdue
18 projects  | 14 (78%)   | 3 (17%)    | 1 (5%)

[Horizontal Bar Chart - % Complete per Project]
Color-coded by status: Green = On Track, Yellow = At Risk, Red = Overdue

[Table]
Project     | Owner   | Status | % Done | Deadline  | Days Left
TechCorp    | Sarah   | ✅     | 85%    | Dec 15    | 12
GlobalBiz   | Marcus  | ⚠️     | 60%    | Dec 1     | -2
StartupCo   | Alex    | 🚨     | 40%    | Nov 30    | -3

Implementation tips:

  • Use the SPARKLINE bar chart type for the % complete column: =SPARKLINE(E2, {"charttype","bar";"max",1;"color1","#4CAF50";"color2","#E0E0E0"}). This creates a mini progress bar inside each cell.
  • For status auto-calculation: =IF(Pct_Done >= Expected_Pct, "On Track", IF(Deadline - TODAY() > 7, "At Risk", "Overdue")).
  • Days left formula with color: =DAYS(Deadline, TODAY()) with conditional formatting — red if negative, yellow if under 7.

7. Customer Success Dashboard

Customer success dashboards are retention dashboards in disguise. The single most important number is net revenue retention — if it's above 100%, your existing customers are growing faster than they're leaving.

Best for: CS teams tracking retention, health scores, and expansion revenue

Key metrics:

KPIFormulaTarget Example
Net Revenue Retention=(Start_MRR+Expansion-Churn-Contraction)/Start_MRR>100%
Logo Churn Rate=Churned_Customers/Start_Customers<5% annually
NPS=AVERAGE(NPS_Data)>40
CSAT=AVERAGE(CSAT_Scores)>4.5/5.0
Avg Health ScoreWeighted composite>7/10

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CUSTOMER SUCCESS DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
Net Retention| Logo Churn | NPS        | CSAT
112%         | 3.2%       | 48         | 4.6/5.0

[Donut Chart]
Customer Health: Healthy (68%) | At Risk (23%) | Churning (9%)

[Line Chart]
Churn Rate vs. Expansion Rate (12-month trend)

[Table - At Risk Accounts]
Account     | ARR    | Health | Risk       | Renewal  | Owner
TechCorp    | $95K   | 3/10   | Low usage  | 30 days  | Sarah
GlobalSys   | $68K   | 4/10   | Escalation | 60 days  | Marcus

Implementation tips:

  • Build the health score as a weighted average across usage, support tickets, NPS, and login frequency. Use a Calculations tab: =0.4*Usage_Score + 0.3*Support_Score + 0.2*NPS_Score + 0.1*Login_Score.
  • For the at-risk table, use QUERY with a WHERE clause: =QUERY(Accounts!A:H, "SELECT A, B, C, D, E, F WHERE C < 5 ORDER BY B DESC").
  • Days to renewal: =DAYS(Renewal_Date, TODAY()) with conditional formatting — red under 30 days, yellow under 60.

8. Operations & Supply Chain Dashboard

Operations dashboards should surface exceptions, not confirmations. The dashboard's job is to tell you what's broken and what's about to break.

Best for: Operations, logistics, and supply chain teams tracking throughput and SLA compliance

Key metrics:

KPIFormulaTarget Example
Throughput=COUNTIFS(Complete_Date, ">="&Start_Period)Per baseline
On-Time Delivery %=COUNTIF(On_Time,"Yes")/Total>95%
Error Rate=Errors/Total_Processed<2%
SLA Compliance=COUNTIF(Response,"<="&Target)/Total>95%
Avg Cycle Time=AVERAGE(Complete-Start)*24Per process

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OPERATIONS DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
Throughput  | On-Time %  | Error Rate | SLA Met
1,247 units | 94%        | 1.2%       | 97%
+8% MoM    | Target: 95%| Target: <2%| Target: 95%

[Line Chart with Control Limits]
Daily Throughput — Upper/Lower bounds shown as dashed lines

[Bar Chart]
Error Categories (Pareto: top categories first)

[Table]
Process      | Volume | Cycle Time | Error % | Trend
Order Entry  | 450    | 2.3 hrs    | 0.8%    | ↗️
Fulfillment  | 420    | 4.1 hrs    | 1.4%    | →
QA Review    | 415    | 1.2 hrs    | 2.1%    | ↘️

Implementation tips:

  • Control limits in the line chart: calculate the mean and standard deviation of your throughput data, then add two series to your chart for =AVERAGE(Data)+2*STDEV(Data) and =AVERAGE(Data)-2*STDEV(Data). Points outside these bounds are process exceptions worth investigating.
  • Use QUERY with ORDER BY and LIMIT for the Pareto analysis: =QUERY(Errors!A:B, "SELECT A, COUNT(A) GROUP BY A ORDER BY COUNT(A) DESC LIMIT 5").
  • SPARKLINE in the trend column: =SPARKLINE(Weekly_Data, {"charttype","line";"linewidth",2}).

9. IT / DevOps Dashboard

Engineering and DevOps dashboards should track reliability and velocity. If your site is down, nothing else matters. If your site is up, ship speed matters most.

Best for: Engineering managers and DevOps teams tracking uptime, deployment frequency, and incident response

Key metrics:

KPIFormulaTarget Example
Uptime=(Total_Minutes-Downtime_Minutes)/Total_Minutes>99.9%
Deploy Frequency=COUNTIFS(Deploys, ">="&Period_Start)Daily+
Mean Time to Recovery=AVERAGE(Recovery_Time)<1 hour
Open Incidents=COUNTIF(Status, "Open")0 critical
Sprint Velocity=SUM(Story_Points_Completed)Stable trend

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IT / DEVOPS DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
Uptime      | Deploys    | MTTR       | Open P1s
99.97%      | 12/week    | 42 min     | 0
Target:99.9%| +3 vs last | Target: <1h| ✅

[Line Chart]
Deploy Frequency & Incident Count (12-week trend, dual axis)

[Table - Recent Incidents]
Date     | Severity | Duration | Root Cause       | Status
Apr 2    | P2       | 23 min   | DB connection    | Resolved
Mar 28   | P1       | 1.2 hrs  | Config rollback  | Resolved

Implementation tips:

  • Track the four DORA metrics (deploy frequency, lead time, MTTR, change failure rate) — they're the industry standard for engineering performance.
  • Use IMPORTDATA to pull from a CSV endpoint if your CI/CD tool can export deployment logs.
  • For uptime calculation: =1-(SUMIFS(Downtime_Minutes, Date, ">="&Period_Start)/(DAYS(TODAY(), Period_Start)*24*60)). Format as percentage with two decimals.
  • Consider a Google Apps Script trigger that runs hourly to check an endpoint and log the result to a "Uptime_Log" tab. A simple UrlFetchApp.fetch() call is all it takes.

10. SaaS Metrics Dashboard

If you're running a SaaS business, this is the dashboard your board and investors will ask about. It focuses on the unit economics and growth indicators that determine whether your business model works.

Best for: SaaS founders, finance teams, and investors tracking recurring revenue metrics

Key metrics:

KPIFormulaTarget Example
MRR=SUMIFS(MRR, Status, "Active")Growth trend
MoM Growth=(MRR_Current-MRR_Previous)/MRR_Previous>10% early stage
LTV:CAC Ratio=Customer_LTV/CAC>3:1
Payback Period=CAC/Monthly_Revenue_Per_Customer<12 months
Net Revenue Retention=(Start+Expansion-Churn-Contraction)/Start>100%

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SAAS METRICS DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
MRR         | Growth     | LTV:CAC    | NRR
$85K        | +18% MoM   | 4.2:1      | 112%
ARR: $1.02M | Target: 15%| Target: >3 | Target: >100%

[Line Chart]
MRR Trend with New, Expansion, Churn, Contraction breakdown

[Cohort Retention Table]
Signup Mo | M0   | M1   | M2   | M3   | M6   | M12
Jan       | 100% | 82%  | 71%  | 65%  | 52%  | 38%
Feb       | 100% | 85%  | 74%  | 68%  | 55%  | --
Mar       | 100% | 88%  | 78%  | 72%  | --   | --

[Bar Chart]
CAC vs. LTV by Acquisition Channel

Implementation tips:

  • The cohort table is the most important view for any SaaS business. Build it by creating a matrix: rows are signup months, columns are months since signup. Each cell is =COUNTIFS(Signup_Month, Row_Month, Active_In_Month, Col_Month)/COUNTIF(Signup_Month, Row_Month).
  • Use conditional formatting with a color gradient on the cohort table — dark green for high retention, light red for low. The pattern of color immediately shows you whether retention is improving over time.
  • MRR waterfall: track New MRR, Expansion MRR, Churned MRR, and Contraction MRR as separate columns each month. Net MRR movement = =New+Expansion-Churned-Contraction.
  • Use SPARKLINE bar charts in a "Quick Ratio" column: =SPARKLINE({Expansion+New, Churned+Contraction}, {"charttype","bar";"color1","#4CAF50";"color2","#F44336"}).

11. Budget Tracker Dashboard

A budget tracker isn't glamorous, but it's the dashboard most teams actually need. It answers one question: are we spending what we planned to spend?

Best for: Finance managers, department heads, and ops teams tracking spend against plan

Key metrics:

KPIFormulaTarget Example
Total Spend (MTD)=SUMIFS(Amount, Date, ">="&Month_Start)Per budget
Budget Remaining=Annual_Budget - YTD_SpendPositive
Variance %=(Budget-Actual)/BudgetWithin +/- 5%
Forecast at Completion=(YTD_Spend/Months_Elapsed)*12Under budget
Top Overspend CategoryQUERY with ORDER BY VarianceActionable

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BUDGET TRACKER DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[KPI Cards Row]
YTD Spend   | Budget Left | Variance   | Forecast
$1.8M       | $2.4M       | +2.3%      | $4.1M
Budget: $4.2M| 57% remain | Under ✅   | Under ✅

[Stacked Bar Chart]
Monthly Spend by Category vs. Budget Line

[Table - Category Detail]
Category      | Annual Budget | YTD Spend | YTD Budget | Variance | Status
Personnel     | $1.7M        | $820K     | $850K      | +$30K ✅ | Under
Software      | $240K        | $135K     | $120K      | -$15K ⚠️| Over
Marketing     | $480K        | $220K     | $240K      | +$20K ✅ | Under
Travel        | $120K        | $72K      | $60K       | -$12K ⚠️| Over

Implementation tips:

  • The YTD budget column should auto-calculate based on how far through the year you are: =Annual_Budget*(MONTH(TODAY())/12). This gives you a proportional budget to compare against.
  • For the variance column, use =YTD_Budget-YTD_Spend and apply conditional formatting: green if positive, red if negative, yellow if within 5% of zero.
  • Use QUERY to aggregate from a detailed transaction log: =QUERY(Transactions!A:D, "SELECT B, SUM(D) GROUP BY B ORDER BY SUM(D) DESC LABEL SUM(D) 'YTD Spend'") where column B is category and D is amount.
  • Add a "Forecast" column that projects year-end spend: =YTD_Spend/MONTH(TODAY())*12. This is a simple linear projection, but it catches overspending trends early.

12. OKR Tracker Dashboard

OKRs fail when teams set them and forget them. This dashboard keeps objectives visible and creates accountability through progress tracking.

Best for: Leadership teams running quarterly OKR cycles

Key metrics:

KPIFormulaTarget Example
Overall OKR Score=AVERAGE(All_KR_Scores)0.6-0.7 (stretch)
On Track KRs=COUNTIF(Status, "On Track")/Total_KRs>70%
At Risk KRs=COUNTIF(Status, "At Risk")<20%
Avg Confidence=AVERAGE(Confidence_Scores)>6/10
Days Left in Quarter=Quarter_End - TODAY()Awareness

Layout:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OKR TRACKER — Q2 2026
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[Summary Row]
12 Key Results | 8 On Track | 3 At Risk | 1 Off Track
Overall Score: 0.62 | 47 days remaining

[Table - Objectives & Key Results]
Objective              | Key Result              | Target | Current | Score | Status
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Grow Revenue           | Reach $150K MRR         | $150K  | $118K   | 0.79  | ✅
                       | Close 20 new accounts   | 20     | 11      | 0.55  | ⚠️
                       | Expand 5 enterprise accts| 5     | 3       | 0.60  | ✅
Improve Retention      | NRR > 110%              | 110%   | 108%    | 0.72  | ⚠️
                       | Reduce churn to < 3%    | 3%     | 3.8%    | 0.47  | 🚨
Ship V2 Platform       | Launch by May 15        | May 15 | On track| 0.80  | ✅
                       | 90% feature parity      | 90%    | 74%     | 0.82  | ✅

[SPARKLINE progress bars in Score column]

Implementation tips:

  • OKR scoring: =MIN(1, Current/Target) for increasing metrics (revenue, customers). For decreasing metrics (churn, costs): =MIN(1, Target/Current). Cap at 1.0.
  • Use SPARKLINE bar charts for visual progress: =SPARKLINE(Score, {"charttype","bar";"max",1;"color1","#2196F3";"color2","#E0E0E0"}).
  • Status auto-calculation based on score and time elapsed: =IF(Score >= (1-Days_Left/Total_Days)*0.7, "On Track", IF(Score >= (1-Days_Left/Total_Days)*0.4, "At Risk", "Off Track")). This adjusts expectations based on how far through the quarter you are.
  • Keep objectives grouped visually using merged cells or alternating row colors. The hierarchy (Objective > Key Result) should be immediately clear.

Google Sheets vs. Excel for Dashboards

If you're choosing between Sheets and Excel for your dashboard, here's the honest comparison.

CapabilityGoogle SheetsExcel
Real-time collaborationNative — multiple simultaneous editorsRequires OneDrive/SharePoint, often laggy
SharingShare a link, set permissionsEmail attachment or shared drive
ChartingBasic — fewer chart types, less customizationSuperior — waterfall, sunburst, funnel, treemap
Formula powerQUERY is excellent; some advanced functions missingMore functions, better pivot tables, Power Query
Data connectionsIMPORTRANGE, IMPORTDATA, Apps ScriptPower Query, ODBC, native SQL connections
PerformanceSlows noticeably past 50K rowsHandles 1M+ rows comfortably
AutomationApps Script (JavaScript-based)VBA macros, Power Automate
Offline accessLimited offline modeFull offline capability
CostFree with Google accountRequires Microsoft 365 license
Version controlBuilt-in version historyManual save points

Bottom line: Choose Google Sheets when collaboration and access matter more than chart polish. Choose Excel when you need advanced charting, large datasets, or offline work. For more Excel templates, see our Excel dashboard templates guide.


Key Google Sheets Formulas for Dashboards

These are the formulas you'll use in nearly every Sheets dashboard:

QUERY (SQL-like):     =QUERY(Data!A:E, "SELECT A, SUM(C) GROUP BY A")
SPARKLINE (inline):   =SPARKLINE(B2:M2, {"charttype","line";"color","#4CAF50"})
IMPORTRANGE (cross-sheet): =IMPORTRANGE("sheet_url", "Tab!A1:D100")
IMPORTDATA (CSV):     =IMPORTDATA("https://example.com/data.csv")
FILTER (dynamic):     =FILTER(A:C, B:B="Active", C:C>100)
UNIQUE (deduplicate): =UNIQUE(A2:A)
ARRAYFORMULA:         =ARRAYFORMULA(IF(A2:A<>"", A2:A*B2:B, ""))
Growth rate:          =(New-Old)/Old
Running total:        =ARRAYFORMULA(MMULT(SEQUENCE(ROWS(B2:B),ROWS(B2:B),1,0)>=SEQUENCE(1,ROWS(B2:B),1,1),B2:B))
Conditional count:    =COUNTIFS(Status,"Active",Date,">="&Start_Date)

Pro tip: ARRAYFORMULA is unique to Sheets and eliminates the need to drag formulas down. Wrap any row-level formula in ARRAYFORMULA and it applies to the entire column automatically. This is especially useful for dashboard data tabs where new rows get added over time.


When to Move Beyond Google Sheets

Google Sheets dashboards work well when you have:

  • A small team that values collaboration over chart polish
  • Data you can update via paste, IMPORTRANGE, or simple Apps Script
  • Fewer than 50,000 rows of source data
  • No need for sub-minute refresh rates

Signs you've outgrown Sheets:

  1. Your sheet takes more than 5 seconds to load. Sheets slows down with large datasets and complex formulas. If your team avoids opening the dashboard because it's slow, it's no longer serving its purpose.

  2. You're writing Apps Script to compensate for missing features. A little automation is fine. But if you have hundreds of lines of custom Apps Script just to make your dashboard functional, you've built a fragile app, not a spreadsheet.

  3. You need data from more than 5 sources. IMPORTRANGE chains break. API connections via Apps Script need maintenance. At some point, you need a tool designed for data integration.

  4. Stakeholders want role-based views. Google Sheets sharing is all-or-nothing per tab. You can't easily show the CEO a summary while giving the VP of Sales a detailed pipeline view from the same sheet.

  5. You're spending more time maintaining the dashboard than using it. If weekly data updates take more than 30 minutes, the spreadsheet has become a burden.

Where to go next:

For teams that want the simplicity of a spreadsheet with live data, role-based access, and automatic updates, AppDeck's executive dashboard connects directly to your existing tools. No formulas to maintain, no data to paste, and a shareable link instead of a spreadsheet URL.

Try AppDeck Executive Dashboard →


Frequently Asked Questions

What makes Google Sheets a good choice for dashboards?

Google Sheets is the best free dashboard tool when real-time collaboration matters more than chart polish. Three things set it apart: multiple people can edit the same sheet simultaneously without version conflicts, every Google Workspace user already has access (no procurement), and built-in functions like IMPORTRANGE, QUERY, and Apps Script let you pull and transform data from many sources. The tradeoffs are weaker charting than Excel, no pivot chart support, and performance degradation past about 50,000 rows. For most teams under 50 people, those limits don't bite.

How is Google Sheets different from Excel for dashboards?

Google Sheets wins on collaboration, sharing, version history, and the QUERY function (SQL-like syntax against your data). Excel wins on chart variety (waterfall, sunburst, funnel, treemap), Power Query for ETL, large dataset handling (1M+ rows), and offline access. For finance teams already on Microsoft 365, Excel is usually faster. For startups, agencies, and cross-functional teams that share dashboards with non-technical stakeholders, Google Sheets is the better default. Both support conditional formatting, dropdown filters, and the core dashboard patterns covered in this guide.

How much time does it take to build a dashboard in Google Sheets?

A simple dashboard built from one of the templates in this guide takes 1 to 3 hours: copy the template, add IMPORTRANGE connections to your existing sheets, drop in SPARKLINE cells, and apply conditional formatting. A more complete dashboard with cohort analysis, custom QUERY formulas, and Apps Script automation takes 8 to 20 hours. Maintenance after that is typically 15 to 30 minutes per week assuming your data sources are stable. If you're spending more than an hour per week updating the dashboard, the source data needs a better pipeline.

Who should use Google Sheets dashboards versus a dedicated BI tool?

Use Google Sheets when your team is under 25 people, data lives in 3 or fewer sources, fewer than 5 stakeholders view the dashboard, and you don't need role-based access controls. Move to a dedicated tool (Looker, Mode, Tableau, or a portal product like AppDeck) when your data team exceeds 2 people, you need to combine 5+ data sources, the dashboard powers external-facing reporting (board, investors, clients), or when "the spreadsheet keeps breaking" becomes a recurring conversation. Most series B+ companies have outgrown Sheets for executive dashboards but still use it for departmental ones.

When should you stop using Google Sheets for dashboards?

Migrate off Sheets when the dashboard takes more than 5 seconds to load, you're writing hundreds of lines of Apps Script to compensate for missing features, you need data from more than 5 sources, stakeholders need role-based views (CEO sees summary, VP Sales sees pipeline detail), or weekly maintenance exceeds 30 minutes. Also migrate when your dashboard powers material decisions and a formula error could cause real financial damage—Sheets has weak audit trails. The clearest signal is when the team avoids opening the dashboard because they don't trust the data or the load time; at that point the spreadsheet is doing more harm than good.


Conclusion

Google Sheets is the best free option for building shared dashboards. The real-time collaboration alone makes it worth choosing over Excel for most small and mid-size teams. The templates above give you a head start — pick the one closest to your function, swap in your actual metrics, and you'll have something useful within an hour.

Quick start:

  1. Pick one template from this list
  2. Create your dashboard tab + hidden data tabs
  3. Use IMPORTRANGE to connect to existing data sheets
  4. Add SPARKLINE cells and conditional formatting
  5. Share the link with your team and iterate weekly

The best dashboard is the one your team actually opens. Start with Google Sheets, get the habit of reviewing metrics weekly, and upgrade to a purpose-built tool when the spreadsheet starts limiting what you can see.

Related reading:


Reviewed & Edited by
Vik Chadha, Founder & CEO of AppDeck
Vik Chadha

Founder & CEO, AppDeck

Serial entrepreneur with 20+ years building B2B software companies. Former executive managing 2,800+ employees across three continents. Vik reviews all AppDeck content for accuracy and practical relevance.

Share this article