people-analytics
48
总安装量
18
周安装量
#8030
全站排名
安装命令
npx skills add https://github.com/borghei/claude-skills --skill people-analytics
Agent 安装分布
claude-code
13
opencode
13
gemini-cli
12
antigravity
10
codex
9
cursor
8
Skill 文档
People Analytics
Expert-level people analytics for data-driven HR decisions.
Core Competencies
- Workforce analytics
- HR metrics development
- Predictive modeling
- Survey analysis
- Reporting and visualization
- Statistical analysis
- Data governance
- Storytelling with data
People Analytics Framework
Analytics Maturity
LEVEL 1: Operational Reporting
âââ Headcount reports
âââ Basic HR metrics
âââ Compliance reporting
âââ Ad-hoc queries
LEVEL 2: Advanced Reporting
âââ Dashboards
âââ Trend analysis
âââ Benchmarking
âââ Segmentation
LEVEL 3: Analytics
âââ Statistical analysis
âââ Correlation analysis
âââ Root cause analysis
âââ What-if modeling
LEVEL 4: Predictive
âââ Turnover prediction
âââ Performance modeling
âââ Workforce planning
âââ Risk assessment
LEVEL 5: Prescriptive
âââ Automated recommendations
âââ Real-time insights
âââ AI-driven decisions
âââ Continuous optimization
Analytics Domains
PEOPLE ANALYTICS DOMAINS
WORKFORCE PLANNING
âââ Headcount planning
âââ Capacity modeling
âââ Skills gap analysis
âââ Succession planning
TALENT ACQUISITION
âââ Sourcing effectiveness
âââ Time to fill
âââ Quality of hire
âââ Diversity hiring
PERFORMANCE & DEVELOPMENT
âââ Performance distribution
âââ Learning effectiveness
âââ Career progression
âââ High-potential identification
ENGAGEMENT & RETENTION
âââ Employee satisfaction
âââ Turnover analysis
âââ Engagement drivers
âââ Flight risk prediction
COMPENSATION & REWARDS
âââ Pay equity analysis
âââ Compensation benchmarking
âââ Benefits utilization
âââ Total rewards optimization
DIVERSITY & INCLUSION
âââ Representation metrics
âââ Pay gap analysis
âââ Promotion equity
âââ Inclusion sentiment
HR Metrics
Core Metrics Framework
Workforce Metrics:
| Metric | Formula | Benchmark |
|---|---|---|
| Headcount | Total employees | – |
| FTE | Full-time equivalents | – |
| Turnover Rate | (Separations / Avg HC) Ã 100 | 10-15% |
| Retention Rate | (Retained / Starting HC) Ã 100 | 85-90% |
| Time to Fill | Days req open to offer accept | 30-45 days |
| Cost per Hire | Total recruiting cost / Hires | $3-5K |
Performance Metrics:
| Metric | Formula | Benchmark |
|---|---|---|
| High Performers | % rated top tier | 15-20% |
| Performance Distribution | Rating distribution | Normal curve |
| Goal Completion | Goals achieved / Goals set | 80%+ |
| Promotion Rate | Promotions / Headcount | 8-12% |
Engagement Metrics:
| Metric | Formula | Benchmark |
|---|---|---|
| eNPS | Promoters – Detractors | 20-40 |
| Engagement Score | Survey composite | 70%+ |
| Absenteeism | Absent days / Work days | <3% |
| Regrettable Turnover | Regrettable exits / Total exits | <30% |
Metrics Dashboard
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â PEOPLE ANALYTICS DASHBOARD â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Headcount Turnover Engagement Diversity â
â 2,847 12.5% 78% 42% women â
â +124 YTD -2% vs LY +3% vs LY +5% vs LY â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â TURNOVER BY DEPARTMENT â
â Engineering: 8% Sales: 18% Support: 15% Ops: 10% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â ENGAGEMENT DRIVERS â
â Career Growth: 72% Manager: 81% Culture: 85% Pay: 68% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â TENURE DISTRIBUTION â
â <1yr: 25% 1-3yr: 35% 3-5yr: 22% 5+yr: 18% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Predictive Analytics
Turnover Prediction
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
def build_turnover_model(employee_data):
"""
Build a turnover prediction model
"""
# Feature engineering
features = [
'tenure_months',
'salary_ratio_to_market',
'performance_rating',
'promotion_wait_months',
'manager_tenure',
'team_size',
'commute_distance',
'engagement_score',
'training_hours_ytd',
'projects_completed'
]
X = employee_data[features]
y = employee_data['left_company']
# Train/test split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# Train model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
# Feature importance
importance = pd.DataFrame({
'feature': features,
'importance': model.feature_importances_
}).sort_values('importance', ascending=False)
return model, importance
def predict_flight_risk(model, current_employees):
"""
Score current employees for flight risk
"""
probabilities = model.predict_proba(current_employees)[:, 1]
risk_levels = pd.cut(
probabilities,
bins=[0, 0.25, 0.5, 0.75, 1.0],
labels=['Low', 'Medium', 'High', 'Critical']
)
return pd.DataFrame({
'employee_id': current_employees['employee_id'],
'flight_risk_score': probabilities,
'risk_level': risk_levels
})
Flight Risk Dashboard
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â FLIGHT RISK ANALYSIS â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â RISK DISTRIBUTION â
â Critical: 45 (3%) High: 128 (9%) Medium: 312 (22%) â
â Low: 934 (66%) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â TOP RISK FACTORS â
â 1. Time since last promotion: 0.28 â
â 2. Salary vs market: 0.22 â
â 3. Manager tenure: 0.18 â
â 4. Engagement score: 0.15 â
â 5. Commute distance: 0.08 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â HIGH RISK BY DEPARTMENT â
â Sales: 42 (15%) Engineering: 28 (8%) Support: 18 (12%) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â RECOMMENDED INTERVENTIONS â
â ⢠23 employees: Compensation review â
â ⢠18 employees: Career conversation â
â ⢠12 employees: Manager change â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Survey Analytics
Survey Design
# Employee Engagement Survey
## Survey Structure
### Section 1: Overall Engagement (5 questions)
- I would recommend this company as a great place to work
- I am proud to work for this company
- I see myself working here in 2 years
- This company motivates me to do my best work
- I rarely think about looking for a job elsewhere
### Section 2: Manager (6 questions)
- My manager cares about me as a person
- My manager provides clear expectations
- My manager gives regular feedback
- My manager supports my development
- My manager recognizes my contributions
- I trust my manager
### Section 3: Growth & Development (5 questions)
- I have opportunities to learn and grow
- I understand my career path here
- I receive training I need to do my job
- My work is challenging and interesting
- I can use my strengths every day
### Section 4: Culture & Values (5 questions)
- Company values align with my personal values
- Leaders model company values
- I feel included and belong here
- People are treated fairly regardless of background
- Open and honest communication is encouraged
### Section 5: Compensation & Benefits (4 questions)
- I am paid fairly for my work
- Benefits meet my needs
- Recognition is meaningful here
- Total rewards are competitive
## Response Scale
1 = Strongly Disagree
2 = Disagree
3 = Neutral
4 = Agree
5 = Strongly Agree
Survey Analysis
def analyze_survey_results(responses):
"""
Comprehensive survey analysis
"""
analysis = {}
# Overall scores
analysis['engagement_score'] = responses['engagement_items'].mean()
analysis['response_rate'] = len(responses) / total_employees
# Calculate eNPS
promoters = (responses['recommend'] >= 9).sum()
detractors = (responses['recommend'] <= 6).sum()
analysis['enps'] = (promoters - detractors) / len(responses) * 100
# Category scores
categories = ['manager', 'growth', 'culture', 'compensation']
for cat in categories:
cat_items = [c for c in responses.columns if c.startswith(cat)]
analysis[f'{cat}_score'] = responses[cat_items].mean().mean()
# Segment analysis
segments = ['department', 'level', 'tenure_band', 'location']
for seg in segments:
analysis[f'{seg}_breakdown'] = responses.groupby(seg).mean()
# Driver analysis
analysis['drivers'] = calculate_driver_importance(responses)
# Trending
analysis['vs_prior'] = compare_to_prior_survey(responses)
return analysis
def calculate_driver_importance(responses):
"""
Identify which factors most impact engagement
"""
from sklearn.linear_model import LinearRegression
X = responses[category_columns]
y = responses['overall_engagement']
model = LinearRegression()
model.fit(X, y)
return pd.DataFrame({
'driver': category_columns,
'impact': model.coef_
}).sort_values('impact', ascending=False)
Survey Results Report
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ENGAGEMENT SURVEY RESULTS â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Response Rate: 87% Engagement Score: 78% eNPS: +32 â
â vs Prior: +3% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â CATEGORY SCORES â
â Culture: 85% (+5) Manager: 81% (+2) Growth: 72% (+4) â
â Recognition: 75% (0) Compensation: 68% (-2) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â TOP DRIVERS OF ENGAGEMENT â
â 1. Career growth opportunities (r=0.72) â
â 2. Manager relationship (r=0.68) â
â 3. Meaningful work (r=0.65) â
â 4. Recognition (r=0.58) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â PRIORITY AREAS (Low score, High impact) â
â ⢠Career path clarity (Score: 65%, Impact: High) â
â ⢠Compensation fairness (Score: 62%, Impact: Medium) â
â ⢠Learning opportunities (Score: 70%, Impact: High) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Diversity Analytics
DEI Metrics
DEI METRICS FRAMEWORK
REPRESENTATION
âââ Gender distribution
âââ Ethnicity distribution
âââ Age distribution
âââ Disability status
âââ Veteran status
PAY EQUITY
âââ Gender pay gap
âââ Ethnicity pay gap
âââ Adjusted pay gap (controlling for factors)
âââ Pay ratio analysis
PROGRESSION
âââ Promotion rates by group
âââ Hiring rates by group
âââ Attrition rates by group
âââ Leadership representation
INCLUSION
âââ Inclusion index (survey)
âââ Belonging score
âââ Psychological safety
âââ ERG participation
Pay Equity Analysis
def analyze_pay_equity(employee_data):
"""
Conduct comprehensive pay equity analysis
"""
import statsmodels.api as sm
# Raw pay gap
raw_gap = calculate_raw_gap(employee_data, 'gender')
# Adjusted pay gap (controlling for legitimate factors)
X = employee_data[[
'job_level',
'tenure_years',
'performance_rating',
'education',
'department',
'location'
]]
X = pd.get_dummies(X, drop_first=True)
X = sm.add_constant(X)
y = employee_data['salary']
gender = employee_data['gender']
# Add gender as predictor
X['gender_female'] = (gender == 'Female').astype(int)
model = sm.OLS(y, X).fit()
adjusted_gap = model.params['gender_female']
# Identify outliers needing review
employee_data['predicted_salary'] = model.predict(X)
employee_data['residual'] = y - employee_data['predicted_salary']
employee_data['needs_review'] = abs(employee_data['residual']) > 2 * employee_data['residual'].std()
return {
'raw_gap': raw_gap,
'adjusted_gap': adjusted_gap,
'model_r2': model.rsquared,
'employees_for_review': employee_data[employee_data['needs_review']]
}
DEI Dashboard
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â DIVERSITY & INCLUSION DASHBOARD â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â REPRESENTATION â
â Women: 42% (+3% YoY) URG: 28% (+2% YoY) Veterans: 5% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â REPRESENTATION BY LEVEL â
â Level Women URG vs Target â
â IC 45% 30% â On track â
â Manager 38% 22% â Improving â
â Director 32% 18% â Progress needed â
â VP+ 28% 15% â Gap to close â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â PAY EQUITY â
â Gender Gap (Raw): -5.2% Gender Gap (Adjusted): -1.8% â
â Ethnicity Gap (Raw): -4.8% Ethnicity Gap (Adjusted): -0.9% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â INCLUSION INDEX â
â Overall: 78% Belonging: 82% Safety: 75% Voice: 72% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Workforce Planning
Workforce Model
def build_workforce_plan(current_state, business_plan):
"""
Build strategic workforce plan
"""
# Calculate future demand
demand = calculate_demand(business_plan)
# Project supply (current + expected changes)
supply = project_supply(
current_headcount=current_state['headcount'],
turnover_rate=current_state['turnover'],
retirement_rate=current_state['retirement_eligible']
)
# Calculate gap
gap = demand - supply
# Build plan to close gap
plan = {
'external_hiring': max(0, gap * 0.6),
'internal_development': gap * 0.3,
'contingent_workforce': gap * 0.1,
'cost_estimate': estimate_costs(gap)
}
return plan
def calculate_demand(business_plan):
"""
Calculate headcount demand from business projections
"""
base_headcount = business_plan['revenue'] / business_plan['revenue_per_head']
# Adjust for productivity improvements
productivity_factor = 1 + business_plan['productivity_improvement']
adjusted_demand = base_headcount / productivity_factor
return adjusted_demand
Workforce Dashboard
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â WORKFORCE PLANNING â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Current HC Projected Need Gap Timeline â
â 2,847 3,200 +353 12 months â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â GAP BY FUNCTION â
â Engineering: +120 Sales: +85 Product: +45 Other: +103 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â FILL STRATEGY â
â External Hire: 212 (60%) Internal Move: 106 (30%) â
â Contractors: 35 (10%) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â SKILLS GAPS â
â ML Engineering: Critical Cloud Architecture: High â
â Data Science: Medium Product Management: Low â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â SUCCESSION READINESS â
â Key Roles: 85 Ready Now: 42 (49%) Ready 1-2yr: 28 (33%) â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Data Governance
Data Ethics
# People Analytics Data Ethics Framework
## Principles
### 1. Transparency
- Employees know what data is collected
- Purpose of analysis is communicated
- Results are shared appropriately
### 2. Consent
- Data collection with consent where required
- Opt-out options for non-essential analytics
- Clear data usage policies
### 3. Fairness
- Models tested for bias
- Protected attributes handled appropriately
- Outcomes reviewed for disparate impact
### 4. Privacy
- Data minimization
- Anonymization where possible
- Access controls
### 5. Security
- Encryption at rest and in transit
- Role-based access
- Audit logging
## Governance Checklist
- [ ] Purpose clearly defined and documented
- [ ] Data minimization applied
- [ ] Privacy impact assessment completed
- [ ] Bias testing performed
- [ ] Access controls implemented
- [ ] Retention policy defined
- [ ] Employee communication planned
Reference Materials
references/hr_metrics.md– Complete HR metrics guidereferences/predictive_models.md– Predictive modeling approachesreferences/survey_design.md– Survey methodologyreferences/data_ethics.md– Ethical analytics practices
Scripts
# Turnover analysis
python scripts/turnover_analyzer.py --data employees.csv
# Flight risk scorer
python scripts/flight_risk.py --model model.pkl --employees current.csv
# Survey analyzer
python scripts/survey_analyzer.py --responses survey.csv --prior prior.csv
# DEI metrics generator
python scripts/dei_metrics.py --data workforce.csv
# Workforce planner
python scripts/workforce_planner.py --current state.csv --plan business_plan.yaml