Skip to main content
Glama
staffing-math

staffing-math

by bsunter93

Monthly hiring plan

hiring_plan
Read-onlyIdempotent

Generate a monthly requisition plan that calculates how many roles to open each month so FTE on hand keeps up with demand after attrition, time to hire, and ramp.

Instructions

Month-by-month hiring plan: how many requisitions to open each month so FTE on hand keeps up with FTE needed, after attrition, time to hire and ramp. Give weekly_volume with monthly_growth (0.05 means 5% a month, compounding), or weekly_volume_by_month. Unknown inputs fall back to stated defaults: current headcount defaults to what month 1 needs, attrition to 0, time to hire to 2 months, ramp to 0. When attrition is assumed, the result also gives the plan at 15% and 30%. Give hires_in_flight for people already hired or in the pipeline. Returns the plan table, totals, the arithmetic, and which inputs were assumed. A hire counts as zero capacity until fully ramped.

Input Schema

NameRequiredDescriptionDefault
monthsNoPlan length in months when using monthly_growth. Default 12.
shrinkageNoShare of paid time not available for the work: PTO, sick time, training, meetings. 0.30 means 30%. Default 0.3.
ramp_monthsNoMonths from start date to full productivity. Default 0.
start_monthNoFirst month of the plan as YYYY-MM, used only to label months.
weekly_volumeNoWeekly volume in month 1. Use with monthly_growth.
monthly_growthNoMonth-over-month change in weekly volume. 0.05 means 5% a month. Default 0.
hires_in_flightNoPeople already hired or in the pipeline, and the month they start counting. These are the only way to cover months before a new requisition can land.
annual_attritionNoShare of the team that leaves in a year. 0.25 means 25%. Default 0.
minutes_per_caseYesAverage handling time per case, in minutes.
target_occupancyNoShare of available time you plan to keep people busy with the work. Default 0.85.
current_headcountNoFTE on the team today. Default: what month 1 needs, rounded up.
hours_per_fte_weekNoPaid hours per full-time person per week. Default 40.
time_to_hire_monthsNoMonths from opening a requisition to the start date. Default 2.
weekly_volume_by_monthNoAverage weekly volume in each month of the plan, instead of weekly_volume and monthly_growth.

Output Schema

NameRequiredDescriptionDefault
notesYes
stepsYes
answerYes
engineYes
inputsYes
monthsYes
most_spareYes
total_reqsYes
attrition_rangeYes
expected_leaversYes
lookahead_monthsYes
months_with_spareYes
fte_needed_last_monthYes
fte_needed_first_monthYes
first_month_hires_can_countYes
months_short_before_hires_landYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, read-only, idempotent, closed-world computation, so the description's burden is lower, and it still adds real behavior: unknown inputs fall back to stated defaults, the response is accompanied by a 15% and 30% attrition sensitivity, and it reports which inputs were assumed. The rule that a hire counts as zero capacity until fully ramped is a genuinely useful behavioral disclosure. It does not cover runtime characteristics such as compute cost or limits on large month arrays.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by input-mode selection, defaults, sensitivity behavior, and return contents in a logical order with no filler. It is dense but appropriately so for a 14-parameter planning model; only minor tightening would help.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter computational tool with annotations and an output schema, the description covers the ambiguity an agent would actually hit: default resolution, the two mutually exclusive volume modes, pipeline hires, ramp treatment, and what the response contains. The remaining gap is the absent relationship to its sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining the interplay of parameters rather than repeating them — monthly_growth is stated to be compounding, current_headcount defaults to month 1's requirement rounded up, and hires_in_flight is framed as the only way to cover months before a new requisition can land. It stays silent on shrinkage, target_occupancy, and hours_per_fte_week, but those are documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the resource and the computed output precisely: month-by-month requisitions to open so FTE on hand tracks FTE needed after attrition, time to hire, and ramp. That is far more specific than a tautology. It does not, however, distinguish itself from the siblings required_fte and erlang_staffing, so an agent must infer which of the three to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Guidance is given on how to drive the model (supply weekly_volume with monthly_growth, or weekly_volume_by_month; use hires_in_flight for people already hired) and on default fallbacks for unspecified inputs. What is missing is when-to-use-this-vs-alternatives: no sibling is named and no exclusion is stated, so routing among required_fte, erlang_staffing, and this tool is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools