{
  "slug": "program-staff-ratio",
  "title": "Program-to-Staff Ratio Calculator",
  "heading": "Program Staff Ratio Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/program-staff-ratio",
  "summary": "Check staffing capacity against caseload or membership to spot burnout risk.",
  "description": "Direct service nonprofits, from case management agencies to youth programs, need a working ratio of clients or participants to front-line staff FTEs to plan hiring and avoid the quality erosion and burnout that come with chronic overload. This calculator divides your total active caseload or participant count by full-time-equivalent direct service staff to produce a ratio, then compares it against a target you set based on sector norms for your specific service type, since a reasonable caseworker ratio in intensive case management (1:15-25) looks nothing like a reasonable ratio for a drop-in youth program (1:40+) or an after-school tutoring program.",
  "formula": "Ratio = total active caseload ÷ direct-service FTEs; compare to your sector benchmark.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=program-staff-ratio",
  "inputs": [
    {
      "id": "caseload",
      "label": "Total active caseload/participants",
      "kind": "number",
      "hint": null,
      "default": 480,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "fte",
      "label": "Direct-service staff FTEs",
      "kind": "number",
      "hint": null,
      "default": 16,
      "unit": null,
      "min": 0.5,
      "max": null
    },
    {
      "id": "targetRatio",
      "label": "Target ratio (clients per FTE)",
      "kind": "number",
      "hint": null,
      "default": 25,
      "unit": null,
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "ratio",
      "label": "Current ratio (per FTE)",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "idealFte",
      "label": "FTEs needed to hit target ratio",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "fteGap",
      "label": "Additional FTEs needed",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "overCapacityPct",
      "label": "% over (or under) target capacity",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Total active caseload/participants: 480",
      "Direct-service staff FTEs: 16",
      "Target ratio (clients per FTE): 25"
    ],
    "outputs": [
      "Current ratio (per FTE): 30",
      "FTEs needed to hit target ratio: 19.2",
      "Additional FTEs needed: 3.2",
      "% over (or under) target capacity: 20.0%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter total active caseload/participants.",
      "Enter direct-service staff ftes.",
      "Enter target ratio (clients per fte).",
      "Read your current ratio (per fte) on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "caseload": 290,
        "fte": 9.6,
        "targetRatio": 15
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "caseload": 480,
        "fte": 16,
        "targetRatio": 25
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "caseload": 770,
        "fte": 25.6,
        "targetRatio": 40
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "What ratio should I use as a target?",
      "a": "It depends heavily on service intensity: intensive case management (housing, child welfare) often targets 1:15-25, community health workers 1:30-50, and light-touch programs like drop-in tutoring can run 1:50+. Check your state licensing requirements first since many human services programs have mandated maximums, not just best-practice suggestions."
    },
    {
      "q": "Should administrative or supervisory staff count in the FTE figure?",
      "a": "No, use only staff who carry a direct caseload or deliver direct service hours. Including a program director who spends 80% of their time on grant management and supervision will understate your real per-worker load and mask a staffing shortage."
    },
    {
      "q": "What happens when we're chronically over target?",
      "a": "Expect rising staff turnover (nonprofit sector burnout is directly linked to caseload overload in multiple workforce studies), declining service quality metrics, and increased risk of missed compliance requirements in regulated programs. Use this number to make the hiring case to funders and the board before those consequences show up."
    },
    {
      "q": "Can we solve an over-capacity ratio without new hires?",
      "a": "Sometimes: triage lower-need clients to a lighter-touch service tier, add case aides or paraprofessionals who can absorb administrative tasks from full caseworkers, or reduce intake temporarily while working down a backlog, but these are stopgaps, not permanent fixes for structural understaffing."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/cost-per-beneficiary",
    "https://www.revenuelab.fyi/toolbox/staff-cost-allocation"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Program-to-Staff Ratio Calculator (https://www.revenuelab.fyi/toolbox/program-staff-ratio)"
}