Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Cs Erlang C Staffing

ASecurity

Builds an Erlang C staffing plan for a support team, with a volume forecast by interval, agents needed at a target service level, occupancy and shrinkage, workload maths for email and chat, and a one-page case for more hands. Use for "run cs-erlang-c-staffing", "how many agents do we need", "Erlang C calculation", "staffing case for leadership", "support capacity plan", "tickets doubled and we need to hire", "forecast support headcount", part of the AI for Customer Service Pack by Polar Bear.

2 stars
0 votes
0 copies
0 views
Added 10/4/2026
ai-agents

Works with

cli

Security Analysis

A100/100

Scanned 10/4/2026

$npx -y skills add polar-bear-org/claude-skills --skill cs-erlang-c-staffing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cs Erlang C Staffing?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Cs Erlang C Staffing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/polar-bear-org-cs-erlang-c-staffing/badge)](https://www.skillsdirectory.com/skills/polar-bear-org-cs-erlang-c-staffing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: cs-erlang-c-staffing
description: Builds an Erlang C staffing plan for a support team, with a volume forecast by interval, agents needed at a target service level, occupancy and shrinkage, workload maths for email and chat, and a one-page case for more hands. Use for "run cs-erlang-c-staffing", "how many agents do we need", "Erlang C calculation", "staffing case for leadership", "support capacity plan", "tickets doubled and we need to hire", "forecast support headcount", part of the AI for Customer Service Pack by Polar Bear.
---

# Erlang C Staffing Plan

## When To Use
Tickets doubled, reply times tripled and leadership wants proof before hiring. You need a number of agents that follows from your own volume, handle time and service target, plus one page a decision maker can say yes or no to.

## When Not To Use
Not for a queue that is already weeks deep: sizing the team for new work does not clear old work, so run the Backlog Recovery Plan first. If the limits a person can sustain are not agreed yet, run Workload and Recovery Rules, because the occupancy cap comes from there.

## Inputs
- Contact volume by channel and by interval (hour or half hour) for recent weeks, plus known peaks: seasons, launches, sales.
- Average handle time per channel, from the team's own reports, as a team figure.
- The service target (percent answered within a target time) and the team's shrinkage from its own data: leave, training, meetings, sickness.
If you have none of this, I start from a weekly volume and one handle time and mark the output as a first draft.

## Approach
The Erlang C queueing model (A. K. Erlang, 1917; public explainer at callcentrehelper.com/erlang-c-formula-example-121281.htm) gives the chance a contact waits for a given number of agents. It fits channels where customers queue live: phone, and live chat that holds people in line. Email and async chat have no one waiting on the line, so they get plain workload maths. The failure this prevents: a hiring case built on one daily average, which hides the Monday morning spike where the reply times actually broke.

## Workflow
1. Ask three questions: which channels queue live; what is the service target (percent within how many seconds or hours); and what occupancy cap did the team agree in its workload rules?
2. Forecast volume per interval from the history. Forecast seasonal peaks and launches as their own intervals, never smoothed into the average.
3. For each live interval, traffic intensity A (in Erlangs) = contacts per hour × AHT in hours.
4. Start with N agents just above A. Compute the chance a contact waits, Pw = (A^N/N! × N/(N−A)) ÷ (sum of A^i/i! for i = 0 to N−1, plus A^N/N! × N/(N−A)). Then service level = 1 − Pw × e^(−(N−A) × target time ÷ AHT). Add one agent at a time until the target is met.
5. Check occupancy = A ÷ N. If it breaks the team's cap, add agents until it does not; the cap wins over the service target.
6. For email and async chat: hours needed = volume × handle time ÷ productive hours per agent, checked against the reply-time target. Then scheduled headcount = agents needed ÷ (1 − shrinkage), shrinkage from the team's own data.
7. Write the case: agents needed per peak interval, agents scheduled today, the gap, and the service level the current team can actually hold.

## Output Format
```markdown
# Erlang C Staffing Plan
Team: [team] | Period: [dates] | Service target: [x]% within [time] | Occupancy cap: [cap]
## Live channels by interval
| Interval | Contacts | AHT | Erlangs (A) | Agents for target | Occupancy |
|---|---|---|---|---|---|
| [day, time] | [n] | [min] | [A] | [N] | [A/N] |
## Email and async chat
| Channel | Volume | Handle time | Hours needed | Reply target |
|---|---|---|---|---|
| [channel] | [n] | [min] | [h] | [target] |
## Headcount
| Peak or normal | Agents needed | Shrinkage (own data) | Scheduled headcount | Today | Gap |
|---|---|---|---|---|---|
| [period] | [n] | [%] | [n] | [n] | [n] |
## The case on one page
- What the current team can hold: [service level] at [interval].
- What closing the gap buys: [service level, reply time].
## Decision
[Head of support] decides hire, temporary cover or a lower target by [date]; [lead] recomputes if volume moves.
```

## Done When
- Every live interval shows A, N and occupancy, with the service level met or the shortfall stated.
- Peaks sit as their own intervals, not inside an average.
- Shrinkage and handle time come from the team's data or are marked as assumptions.
- The case page states what the current team can hold without new hires.

## Quality Bar
- Show the formula inputs, so a finance reader can rerun one interval by hand.
- Never import an industry shrinkage, occupancy or handle-time figure.
- Say plainly where Erlang C breaks: it ignores abandons, so it can overstate agents needed.
- People rule: team-level figures only; no per-agent handle time or adherence targets come out of this plan.

## Next
Run cs-backlog-recovery-plan (Backlog Recovery Plan) to clear the queue while the hiring case is decided.

## About the makers

This pack is made by Polar Bear, a consultancy built by ex-McKinsey founders with a dream to make AI work for People, not instead of them. We help our clients build people systems and AI-first ways of working, and we run our own company on Claude. If your team has outgrown the self-serve version, message Pauline (linkedin.com/in/paulinebertry).

Attribution

polar-bear-orgpolar-bear-org
View sourceSee grades on GitHubMore from polar-bear-org →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698431 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →