HR Dashboard Examples: Headcount, Hiring, and Attrition
In a board meeting, the CFO says attrition is running at 14 percent. The head of people says it is closer to 22. Both pulled the number from the same HRIS that morning. The CFO divided separations by headcount at the end of the period, during a quarter when the company grew. The head of people divided by headcount at the start. Nobody made an error, and nobody can defend their number, so the conversation stops being about retention and becomes a conversation about spreadsheets.
That is the real failure mode of a human resources dashboard. It is almost never the chart type. It is the denominator, the clock start, the exclusion list, and whether a contractor who converted to permanent counts as a termination followed by a hire. These HR dashboard examples are organized around the four questions leadership actually asks, not the tabs your HRIS ships with. For each one you get the tile, the formula, the source, and the specific way it goes wrong, plus a section on small samples and privacy that most articles skip and that is the thing most likely to get a people analytics dashboard shut down after launch.
The four questions a human resources dashboard has to answer
Executives ask people questions in a narrow band. Over and over:
- Are we the size we said we would be? Headcount against plan, by function, with the gap explained.
- How fast can we add people, and where does the funnel jam? Time to hire and stage conversion.
- Who is leaving, and is it concentrated somewhere? Attrition by segment, tenure, and manager.
- Are we paying sensibly? Compensation spread against range, not average pay.
Everything else is a drill-down from one of those four or a compliance report that belongs in a different document. Engagement scores, training completion, and representation matter enormously, but stacking them on the front page dilutes the four things that get acted on.
| Question | Primary tile | Denominator or clock | The trap in one line |
|---|---|---|---|
| Are we the right size? | Headcount vs approved plan | Point in time, month end | Heads vs FTE vs contractors, and which version of the plan |
| Can we hire fast enough? | Median time to hire | Requisition opened to offer accepted | Only closed reqs get counted, so the hard ones vanish |
| Who is leaving? | Voluntary attrition rate | Average headcount over the period | Start, end, and average denominators give three answers |
| Are we paying sensibly? | Compa-ratio distribution | Salary over range midpoint | Averages hide the outliers that cause resignations |
Print that table. It settles more arguments than any visualization choice will. For the broader principle behind why definition beats design, Data Visualization Examples That Change a Decision works through the same idea outside of HR.
Headcount against plan, the tile that looks simple and is not
A headcount tile is one number and at least six decisions.
Heads, FTE, or both. Two people at 0.5 FTE are one FTE and two heads. Finance plans in FTE because FTE maps to cost. Managers think in heads because heads map to work. Show both columns and label them.
Who counts. Employees, yes. Fixed-term contract staff, maybe. Agency and staffing-firm placements, usually not in headcount but definitely in cost. Interns, board members, and people on unpaid leave each need a documented rule. Write it once, put it in a tooltip, and reference it every time someone questions the number.
Point in time or average. Month-end headcount is easy and jumps around. Average headcount is the correct denominator for most rate metrics later. Compute both: month-end for the plan tile, average for anything with a percentage sign.
Which plan. This one causes real damage. The board approved a plan in January, finance reforecast in April, and recruiting is working from a hiring list trimmed in May. A tile that says "vs plan" without naming a version and a date lets three departments read three different variances. Store the plan as a versioned table with an effective date and label the tile "vs FY plan v3, approved 12 May."
Accepted versus started. People who signed an offer but have not started are a commitment against budget and a gap on the org chart. Give them their own tile with a start-date histogram. A team nine under plan with six people starting next month has a very different problem from one with an empty pipeline.
How the org rolls up. Reports-to hierarchy and cost-center hierarchy are not the same tree, and they disagree most in exactly the teams you care about. Worse, many HRIS platforms overwrite the manager field instead of versioning it, so after a reorg, last quarter's headcount by department silently reshapes itself. If yours does not keep effective-dated history for manager and cost center, snapshot headcount monthly and report from the snapshots.
The layout that works: a headline row with current heads, current FTE, plan FTE, and variance. Below it, variance by function so the eye lands on the biggest gap. Below that, hires, exits, and net change by month, which is the tile that explains the variance. Under-plan because you cannot hire is a recruiting problem. Under-plan because you are backfilling exits is a retention problem, and different people fix those. One caution: under-plan headcount reads as budget underspend and gets celebrated in finance reviews. It is only a win if the work got done.
Sample HR dashboard for hiring: time to hire and the reqs that never close
The recruiting section of a sample HR dashboard usually shows one number, average time to hire, and that number is wrong in a predictable direction.
Time to fill versus time to hire. Time to fill runs from requisition approval to offer acceptance and includes approval delays. Time to hire runs from a candidate's first contact to acceptance and measures the candidate-facing process. Recruiters prefer time to hire because it excludes the two weeks the req sat waiting for a signature. Hiring managers care about time to fill because that is the seat sitting empty. Show both, label the clock, never mix them in one trend line.
The survivorship problem. Compute time to hire over closed requisitions only and you have excluded every hard-to-fill role still open. The metric improves precisely when your worst roles get worse. The fix is a tile most dashboards omit: age of open requisitions, as a distribution with counts above 60 and above 90 days.
Median, not mean. One executive search that runs 200 days drags the mean for a whole function. Use the median for the headline and the 90th percentile beside it if leadership wants the tail.
Pause handling. Reqs get frozen mid-quarter and reopened. If your clock does not subtract hold periods, a hiring freeze makes recruiters look slow six months later. Record hold start and end, and report raw elapsed days and active days.
The funnel table goes under the headline tiles. It makes the jam visible without anyone interpreting a chart.
| Stage | Metric | Source | The trap |
|---|---|---|---|
| Applications | Applicants per open req, by source | ATS | Volume is not quality. Rank sources by hires that pass 6 months, not by applications |
| Screen | Recruiter screen to hiring manager screen rate | ATS stage history | Recruiters bulk-reject at quarter end to clear queues, which flatters the rate |
| Interview | Onsite to offer rate | ATS | Panels that never say no push the bottleneck downstream into offer decline |
| Offer | Offer acceptance rate | ATS plus offer records | Verbal offers that get declined often never become records, inflating acceptance |
| Start | Accepted to started, and reneges | HRIS | Renege rate is the tile nobody builds and the one that predicts next quarter's pain |
| Quality | 6 and 12 month retention of hires, by source and hiring manager | HRIS | Needs a cohort join, so it lags. Worth the wait |
That last row separates a recruiting report from a people analytics dashboard. Speed metrics reward filling seats. Cohort retention tells you whether the seats stayed filled. If one source or one interview loop produces people who leave inside a year, you have a hiring quality problem masquerading as an attrition problem. The same cohorting decision runs through Sales Dashboard Examples Reps and Managers Both Use, and the discipline of naming your window shows up again in Marketing Dashboards That Answer the Spend Question, where the argument is about attribution instead of stage dates.
Attrition, and the denominator that decides your answer
This is the metric worth being pedantic about, because attrition drives retention budgets, backfill approvals, and occasionally someone's job.
The numerator is separations in the period, split into voluntary (the person chose to leave), involuntary (performance, restructure, role elimination), and regrettable, a subset of voluntary that a manager wanted to keep. Regrettable attrition is the number leadership actually wants, and it exists only if someone fills in a judgment field at exit. If that field is blank half the time, do not publish it. Publish "exit reason completeness" instead until it is fixed, because a metric from half-populated data is worse than no metric.
Now the denominator, where the board meeting fell apart:
| Denominator | Formula | Effect in a growing company | When to use it |
|---|---|---|---|
| Beginning headcount | Separations / headcount at period start | Overstates the rate | Rarely. Common because it is easy |
| Ending headcount | Separations / headcount at period end | Understates the rate | Rarely, and never alongside growth commentary |
| Average headcount | Separations / ((start + end) / 2) | Reasonable middle | Default for quarterly and annual reporting |
| Average of monthly averages | Mean of each month's average headcount | Handles lumpy hiring | Annual reporting when hiring was uneven |
| Exposure weighted | Separations / (person-days worked / days in period) | Most accurate | When you can compute it, especially for segments |
Pick one, write it into the tile definition, and use it everywhere. Mixing denominators between a headline tile and its drill-down is how a dashboard ends up disagreeing with itself.
Annualizing. A monthly rate of 1.5 percent is not an 18 percent annual rate in the way people assume. Multiplying by 12 gives 18. Compounding survival, one minus 0.985 to the twelfth power, gives about 16.6. The gap is small at low rates and material at high ones, so state the method in the tooltip.
Internal moves. In many HRIS configurations a transfer between legal entities, a contractor conversion, or a rehire after a short break generates a termination record. Left unfiltered, a restructure looks like an attrition spike and someone spends a week investigating a problem that does not exist. Exclude transfers explicitly and show the excluded count so the exclusion is visible rather than hidden.
The most useful attrition visual is not a rate. It is a survival curve by hire cohort: of everyone who started in a given quarter, what share is still employed at 3, 6, 12, and 24 months. It answers the onboarding question, the hiring quality question, and the manager question at once, and it is immune to the denominator argument because the denominator is the cohort itself. Segment by tenure band, level, function, location, and manager, then read the next section before publishing any of those cuts.
Compensation spread without leaking anybody's pay
Average salary by department is the least useful compensation tile in common use. Departments mix levels, so the average moves when the level mix changes and says nothing about whether anyone is paid correctly. What works instead:
Compa-ratio distribution. Salary over the midpoint of the assigned range, plotted by job level rather than department. A healthy level looks like a hump centered near 1.0 with tails inside the range. A cluster well below midpoint is a retention risk you can name and price.
Range penetration. Where in the band each person sits, as a percentage of band width. It compares bands of different widths better than compa-ratio.
New hire versus incumbent pay by level. The compression tile. When market rates move and internal increases lag, new hires enter above tenured staff at the same level, and people find out. Track it quarterly for months of warning.
Fully loaded cost of a level. Base pay is not the cost. Employer taxes, benefits, equity expense, and bonus target belong in any tile finance uses for planning. Label it "fully loaded" or "base only" so nobody budgets from the wrong one.
Do not put an individual pay table in a shared dashboard, not a filterable one and not one behind a role check configured in a hurry. Pay data leaks through drill-downs, exports, and a manager screenshotting a peer's row. Individual pay review belongs in a permissioned HRIS report with its own audit trail.
Pay equity analysis needs a specific warning. A raw gap between groups is not evidence of anything on its own, because it controls for nothing: not level, function, location, or tenure. A defensible analysis is a regression with those controls, run by someone qualified, often under legal privilege depending on jurisdiction. An uncontrolled gap percentage on a dashboard is alarming, unactionable, and discoverable at the same time. Report the conclusion, not the raw tile.
Small samples and privacy, the part most HR dashboard articles skip
Every other dashboard domain slices freely. HR does not, because the rows are people.
Set a minimum cell size and enforce it. Pick a threshold, commonly five or more, and suppress anything below it. A team of four with a 25 percent attrition rate has told everyone who left.
Suppress the complement too. The step teams forget. If a department of 30 spans six teams and you suppress the team of four, anyone can subtract the five visible teams from the total and recover it. When you suppress a cell, suppress the next smallest one so the arithmetic does not close.
Watch cross-filters. Each filter is individually safe and the combination is not. Location plus level plus tenure band plus one demographic field reaches an identifiable person within four clicks in most companies. Cap simultaneous demographic filters, or precompute the cuts you are willing to publish and disable ad hoc slicing on sensitive fields.
Keep sensitive fields off the dashboard. Leave type, accommodation status, performance improvement plans, and grievance records do not belong on a shared people analytics dashboard at any aggregation level. Small-group aggregates reidentify, and one incident costs more than the tile is worth.
Scope access to the org tree. Managers see their own line, HR business partners see their client groups, a small central team sees everything. Enforce it in the data layer rather than with a warning banner, and re-check after every reorg, since inherited access is how people keep seeing a former team's data for years. Exports leave the permission model entirely, so log them and consider disabling export on sensitive pages.
Small samples are a statistical problem too. In a team of eight, one departure is a 12.5 percent rate and next quarter is zero. Neither number means anything. Below a certain size, report counts and trailing twelve-month figures instead of rates, and resist ranking managers on a percentage computed from three events. The line between describing what happened and inferring why is the one drawn in Business Intelligence vs Business Analytics, Explained, and HR is where crossing it carelessly does the most damage.
Choosing HR dashboard software without overbuying
Most companies land on one of four options.
| Option | Good at | Weak at | Fits when |
|---|---|---|---|
| HRIS built-in reporting | Accurate headcount and roster reports, permissions already correct | Joining to ATS, payroll, or finance data. Weak history on changed fields | Under roughly 300 people, single HRIS |
| Spreadsheet from HRIS exports | Fast, flexible, no procurement | No history, no access control, no reproducibility. One analyst becomes the dependency | Early stage, or a one-off analysis |
| BI tool on a warehouse | Any join you want, versioned definitions, real access control | Needs a pipeline and someone to own it | You already have a warehouse for finance or product |
| Dedicated people analytics platform | Prebuilt metrics, survival curves out of the box | Cost, and prebuilt definitions may not match yours | Larger orgs with a dedicated people analytics function |
Selection criteria that matter more than feature lists: effective-dated history, because without it you cannot run cohort analysis or audit last quarter's numbers; row-level and column-level security, because a manager may legitimately see their team's roster and must not see their pay; definition storage, meaning a named place where the formula for voluntary attrition lives and a named person who can change it; and a join path to finance, because headcount versus plan needs the plan and the plan lives in finance.
If a vendor insists a pipeline is required for a simple monthly report, be skeptical. ETL Tools Compared: How to Pick One Without Overbuying covers when a pipeline earns its keep and when a scheduled export is enough, and the same reasoning applies to hr reporting software.
Where Skopx fits, and where it does not
Directly: Skopx is not an HRIS, not hr dashboard software, and it does not build the dashboards described above. It has no warehouse, it is not an ETL tool, and it will not compute your compa-ratio bands or store effective-dated org history. If you need a governed human resources dashboard with row-level security and versioned metric definitions, buy one of the four options above.
What Skopx is: an AI workspace that connects to nearly 1,000 tools a company already uses, including the systems where people data lives, and answers questions in chat with citations back to the source. The useful HR case is the question that falls between dashboard refresh cycles. Someone asks why engineering is four under plan, and instead of waiting for the monthly people review you ask in chat and get an answer that names the requisitions and links to them.
Chat with citations. Ask which requisitions have been open more than 60 days, or which accepted offers have not started, and the answer arrives with links to the underlying records. The limit: it reads what your connected systems say. If exit reasons are blank in your HRIS, chat cannot invent them and should not. Bad source data produces a cited, verifiable, useless answer.
A morning brief and an insights engine. The brief surfaces what changed overnight across connected tools. The insights engine flags anomalies, for example a metric moving outside its own recent range. It is a prompt to go look, not a conclusion.
Workflows described in chat. Describe an automation in plain language and it gets built, for example a weekly summary of open requisition aging posted to a channel. That does not replace a dashboard, it replaces the recurring twenty minutes someone spends assembling the same summary.
Weekly hiring status brief
Monday 08:00
Weekly schedule
Pull open reqs
Read requisitions and stage dates from the connected ATS
Pull start dates
Read accepted offers with future start dates from the HRIS
Filter and group
Open more than 60 days, grouped by function
Summarize
Short written summary with links back to each record
Post to channel
Send to the hiring channel with the source links
The permission point is not optional. Connect people systems only where the access model in your workspace matches the access model in the source, and keep compensation and sensitive individual records out of a shared workspace entirely. Chat should answer aggregate and operational questions for people who already hold the underlying access, and nothing else. Skopx has SOC 2 controls in place, which is a statement about controls, not a substitute for your own access review.
Pricing is Solo at 5 dollars per month and Team at 16 dollars per seat per month, and you bring your own AI key for any major model at zero markup, so model spend goes to the provider rather than through a reseller margin. If you are evaluating chat-based analysis tools generally, Conversational Analytics Tools Compared for 2026 Buyers covers the category, and AI Workplace Productivity in 2026: What Actually Moves is the sober version of where this class of tool saves time. Plans are on the pricing page and the automation side on the workflows page.
A one-page layout that survives contact with executives
Four bands, top to bottom. Size: heads and FTE, plan and variance with the plan version labeled, variance by function, accepted-not-started count. Flow: hires, exits, and net change by month for thirteen months, so the current month has a same-month comparison. Hiring: median time to fill and time to hire, open requisition aging, funnel conversion by stage, offer acceptance and renege rates. Retention: trailing twelve-month voluntary attrition on the agreed denominator, survival curve by hire cohort, attrition by tenure band, and a segment view suppressed by default that respects the minimum cell size.
Compensation lives on a separate page with separate access, and engagement on a third with its own suppression rules. Every tile carries a definition tooltip: formula, source system, timestamp, filters, refresh time, owner. That contract matters more in HR than anywhere else, because the consequence of a wrong number is a person's job rather than a campaign budget.
Frequently asked questions
What should a human resources dashboard show first?
Headcount against a named plan version, with variance by function directly beneath it. It frames every other people conversation, because being under plan means something completely different depending on whether the cause is slow hiring or unexpected exits. Put hires and exits by month right below the variance so the cause is visible without a click.
Which attrition denominator is correct?
Average headcount over the period is the defensible default, and exposure weighting on person-days is more accurate when your data supports it. Consistency matters more than the choice: use one denominator across the headline tile, the segment cuts, and the board deck, and write it in the tooltip. Beginning headcount overstates attrition in a growing company and ending headcount understates it, which is how two honest people produce two different numbers.
How do I report attrition for teams too small to be anonymous?
Report counts rather than rates, roll up to the next level in the org tree, use a trailing twelve-month window, and enforce a minimum cell size with complement suppression so the hidden value cannot be recovered by subtraction. If none of that gets you to a safe number, the honest answer is that the team is too small to report separately and the analysis belongs in a conversation with the HR business partner.
Is time to hire or time to fill the better metric?
They measure different things and you need both. Time to fill runs from requisition approval to acceptance and captures internal delays, which is what a hiring manager experiences. Time to hire runs from candidate contact to acceptance and measures the process recruiting controls. Report both as medians, label the clock on each, and always show open requisition aging alongside so the roles that never close cannot hide from the average.
Can an AI chat tool replace our HR dashboard?
No, and treating it as a replacement causes problems. A dashboard is where metric definitions are governed, permissioned, and kept consistent over time. Chat is useful for questions between refreshes and for the follow-up a static tile cannot answer, and it should cite the records behind its answer so you can verify it. Keep the dashboard as the system of record for definitions and use chat for investigation on top of it.
What is the fastest way to fix a people analytics dashboard nobody trusts?
Stop building and write the definition contract for every existing tile: formula, source system, timestamp, filters, refresh, owner. Most trust problems dissolve once two teams discover they were using different date fields or different exclusion lists. Then add the two tiles usually missing, open requisition aging and hire cohort survival, because those answer the questions the existing dashboard quietly avoided.
Skopx Team
The Skopx engineering and product team