Back to Blog
recruitment kpi templatehiring metrics dashboardrecruitment analyticsfree recruitment tools

Free Recruitment KPI Dashboard Template (Excel & Sheets)

Build a recruitment KPI dashboard in Excel or Google Sheets with defined columns, zero-safe formulas and internal baselines for six practical hiring metrics.

Janis Kolomenskis

7 min readUpdated
Share

If you ask ten recruiters which KPI matters most, you'll get six answers and four shrugs. That's not because the metrics are subjective — it's because most teams measure what their spreadsheet happens to show, not what actually predicts whether they'll hit quota next quarter. This template fixes that.

What follows is a six-KPI dashboard you can build in Google Sheets or Excel. It builds on the free recruitment tracker templates published earlier and makes each definition inspectable. It is a worked layout, not a downloadable file or an automatic diagnosis of desk health.

The six KPIs that actually matter

  1. Time-to-fill — calendar days from req opened to offer accepted
  2. Time-to-hire — calendar days from candidate first contact to offer accepted
  3. Source-of-hire — which channels produce hires, not just applicants
  4. Pipeline velocity — candidates per stage, refreshed weekly
  5. Offer acceptance rate — offers accepted ÷ offers made
  6. Quality of hire — performance/retention at 90-day mark

Start with the measures that change a decision. Six is a manageable example, not a universal ceiling; regulated, high-volume or retained-search workflows may need other measures.

The KPIs that predict next quarter's billings are different from the KPIs that look good in a slide deck. Pick the first.

The dashboard structure

Create an Excel Table named Pipeline (or use the same header names in Sheets) with these columns: CandidateID, ReqID, Source, Stage, FirstContactDate, ReqOpenedDate, OfferDate and AcceptedDate. One row represents one candidate–requisition relationship. Store dates as dates, not text, and use one agreed stage vocabulary. Prepare the reporting cohort before calculating rates; filtering visible rows alone does not make COUNTIF ignore other rows.

Section 1: Headline numbers (top of sheet)

MetricThis PeriodLast PeriodChangeBenchmark
Median time-to-fill=MEDIAN...=MEDIAN...=current-prevOwn 12-month baseline
Median time-to-hire=MEDIAN...=MEDIAN...=current-prevOwn baseline by role
Offers made=COUNTIF...=COUNTIF...=current-prev—
Offer accept rate=A÷M=A÷M=current-prevOwn baseline, with sample size
Active reqs=COUNTIF...=COUNTIF...=current-prev—
Hires=COUNTIF...=COUNTIF...=current-prev—

The table above shows formula placeholders, not expressions to paste into Excel. Set a baseline from your own last 6–12 months and segment by desk, role and client. For accepted candidates, calculate days from the chosen start date to acceptance; count each filled requisition once for time-to-fill. Keep open roles in a separate ageing report rather than recording them as zero-day hires.

Section 2: Source-of-hire breakdown

The chart everyone gets wrong. Don't show source of applicants. Show source of hires. They look completely different.

With the Excel Table above, the LinkedIn share of hires is:

=IF(COUNTIF(Pipeline[Stage],"Hired")=0,0,COUNTIFS(Pipeline[Source],"LinkedIn",Pipeline[Stage],"Hired")/COUNTIF(Pipeline[Stage],"Hired"))

In Google Sheets, if Source is column C and Stage is column D, use =IF(COUNTIF(D2:D,"Hired")=0,0,COUNTIFS(C2:C,"LinkedIn",D2:D,"Hired")/COUNTIF(D2:D,"Hired")). Returning zero prevents a divide-by-zero error; display the hire count beside the percentage so zero hires is not mistaken for poor source performance.

Repeat per source (LinkedIn / Job board / Referral / Direct / Database). Visualise as a bar chart, not a pie chart — pie charts hide the gap between top and bottom sources.

Section 3: Pipeline velocity

Keep historical snapshots in a separate table named Snapshots, with columns CandidateID, ReqID, Stage and SnapshotDate. Save one row per candidate–requisition pair per snapshot date. Do not append these repeated observations to Pipeline: that would double-count hires.

On a separate Dashboard sheet, place the current snapshot date in B1, the comparison date in C1, and each stage name in column A. In Excel use =COUNTIFS(Snapshots[Stage],$A2,Snapshots[SnapshotDate],B$1); in Sheets with the same four columns on a sheet named Snapshots use =COUNTIFS(Snapshots!$C$2:$C,$A2,Snapshots!$D$2:$D,B$1). Copy across and down. Stage counts show pipeline size; elapsed time between recorded transitions is a separate measure of speed.

StageThis Week4 Weeks AgoChange
New / Sourced=COUNTIFS...=COUNTIFS...—
Screening=COUNTIFS...=COUNTIFS...—
Interview 1=COUNTIFS...=COUNTIFS...—
Interview 2=COUNTIFS...=COUNTIFS...—
Offer=COUNTIFS...=COUNTIFS...—

If "Screening" balloons week over week, your screening capacity is the bottleneck. If "Interview 2" stagnates, your hiring managers are the bottleneck. The dashboard tells you where the friction is — fixing it is on you.

Section 4: Quality of hire (the metric most teams skip)

Quality-of-hire measures require a follow-up after placement. Pick one review point that fits the engagement and define the question before collecting answers.

Simple version: per hire, log retention status at 90 days (still employed yes/no) and one-line manager feedback (good fit / mixed / poor fit). Aggregate by recruiter, client and role type. Treat this as an internal learning measure; do not infer causation or client retention from a small sample.

Conditional formatting that makes the dashboard usable

  • Highlight time-to-fill above the role family’s own reviewed baseline
  • Flag offer acceptance only when the rate and offer count are both visible
  • Highlight source changes against the same period and attribution rule
  • Flag stage growth only after checking whether new requisitions explain it

The point of the colour coding is to make the dashboard readable at a glance. If you have to squint to find the problem, the problem will not get fixed.

Google Sheets vs Excel for this

Sheets wins for shared visibility. Hiring managers can view live without ever asking you to "send the latest". Real-time updates, no version conflicts.

Excel wins for power users. Pivot tables and slicers are still ahead of Sheets for complex multi-dimensional analysis. If you slice by recruiter × client × month, Excel handles it more elegantly.

Default recommendation: Sheets. Move to Excel only when you hit a wall.

What this dashboard cannot do

Spreadsheets reach their limit at different points. Watch for these failure signals rather than applying a fixed requisition or user threshold:

  • Versions get overwritten
  • Retention and access rules can no longer be applied reliably
  • Generating client-specific reports becomes a manual job
  • Quality of hire data gets logged inconsistently

That's when a recruiting CRM may earn its seat. During a Yena evaluation, ask the team to reproduce these definitions from your actual stages and confirm which measures are available before replacing the sheet.

FAQ

What's a good time-to-fill in 2026?

There is no single reliable European benchmark for every agency model. Define start and end dates, then compare your own median by role family and client rather than importing a generic number.

Should I track cost-per-hire?

Useful if you can attribute spend reliably. For most small agencies, the data quality isn't there to make the metric meaningful. Time-to-fill and offer acceptance tell you more about commercial health.

How often should I refresh this dashboard?

Weekly review, monthly client-facing version. Daily refresh produces noise without insight.

Can I add my own KPIs?

Yes — but ask whether each one will change a decision you make. If not, it's vanity.

How do I get this to update automatically?

Table formulas recalculate when their source cells change. External-file imports require a configured refresh method, permissions and an error check; Power Query is one Excel option. Record the last successful refresh so a stale dashboard does not look current.

Use it, then outgrow it

A dashboard reaches its limit when ownership, permissions, definitions or refreshes stop being reliable; placement volume alone does not set that threshold. Document those failure signals and move only when a system can reproduce the calculations.

Pair it with the recruitment tracker templates for underlying data. “Zero software cost” still leaves the labour of validation, access control, backups and retention decisions.

Janis Kolomenskis

May 9, 2026

Share
Yena

Turn a role brief into a qualified shortlist.

Describe who you need. Yena finds and ranks candidates, explains why they fit, surfaces available contact details for review, and keeps outreach in the same recruiting workspace.