{
  "slug": "staff-cost-allocation",
  "title": "Staff Cost Allocation Calculator",
  "heading": "Staff Cost Allocation Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/staff-cost-allocation",
  "summary": "Split one employee's fully-loaded cost across programs by time.",
  "description": "When one staff member splits time across multiple grant-funded programs, each grant typically wants to see only its share of that person's fully-loaded cost, salary plus benefits and payroll taxes, based on documented time allocation, not an arbitrary split. This calculator takes an employee's base salary, a fringe/benefits rate, and the percentage of time they spend on up to three programs (which should come from a timesheet or approved time-and-effort certification, not a guess), and produces the fully-loaded cost allocated to each program, which is exactly the figure a grant budget and a time-and-effort report both need to match.",
  "formula": "Fully-loaded cost = salary × (1 + fringe rate); allocated cost per program = fully-loaded cost × time %.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=staff-cost-allocation",
  "inputs": [
    {
      "id": "salary",
      "label": "Annual base salary",
      "kind": "number",
      "hint": null,
      "default": 62000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "fringeRate",
      "label": "Fringe/benefits rate",
      "kind": "number",
      "hint": null,
      "default": 27,
      "unit": "%",
      "min": 0,
      "max": 60
    },
    {
      "id": "program1Pct",
      "label": "% time on Program A",
      "kind": "number",
      "hint": null,
      "default": 50,
      "unit": null,
      "min": 0,
      "max": 100
    },
    {
      "id": "program2Pct",
      "label": "% time on Program B",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": null,
      "min": 0,
      "max": 100
    },
    {
      "id": "program3Pct",
      "label": "% time on admin/other",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": null,
      "min": 0,
      "max": 100
    }
  ],
  "outputs": [
    {
      "id": "fullyLoaded",
      "label": "Fully-loaded annual cost",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "program1Cost",
      "label": "Allocated to Program A",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "program2Cost",
      "label": "Allocated to Program B",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "program3Cost",
      "label": "Allocated to admin/other",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Annual base salary: 62000 $",
      "Fringe/benefits rate: 27 %",
      "% time on Program A: 50",
      "% time on Program B: 30",
      "% time on admin/other: 20"
    ],
    "outputs": [
      "Fully-loaded annual cost: $78,740",
      "Allocated to Program A: $39,370",
      "Allocated to Program B: $23,622",
      "Allocated to admin/other: $15,748"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter annual base salary ($).",
      "Enter fringe/benefits rate (%).",
      "Enter % time on program a.",
      "Enter % time on program b.",
      "Enter % time on admin/other.",
      "Read your fully-loaded annual cost 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": {
        "salary": 37000,
        "fringeRate": 16,
        "program1Pct": 30,
        "program2Pct": 20,
        "program3Pct": 10
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "salary": 62000,
        "fringeRate": 27,
        "program1Pct": 50,
        "program2Pct": 30,
        "program3Pct": 20
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "salary": 99000,
        "fringeRate": 43,
        "program1Pct": 80,
        "program2Pct": 50,
        "program3Pct": 30
      }
    }
  ],
  "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": "Do percentages need to add up to 100?",
      "a": "Yes for an accurate allocation; this calculator normalizes them if they don't, but a time-and-effort report submitted to a federal grantor must show percentages that actually sum to 100% of the employee's compensated time, not an approximation."
    },
    {
      "q": "What's a typical fringe rate to use?",
      "a": "Most nonprofits land between 20% and 35% of base salary once you include employer payroll taxes (roughly 7.65% for FICA/Medicare), health insurance, retirement match, and workers' comp. Calculate your organization's actual blended rate from your last completed fiscal year rather than guessing."
    },
    {
      "q": "How often does time allocation need to be documented for federal grants?",
      "a": "2 CFR 200.430 requires personnel activity reports or equivalent documentation that reflects actual after-the-fact activity, not a budgeted estimate, prepared at least monthly and signed by the employee or a supervisor with firsthand knowledge of the work performed."
    },
    {
      "q": "What if an employee's actual time shifts significantly mid-year?",
      "a": "Update the allocation percentages going forward and, if a federal grant is involved, be prepared to true-up the allocation based on actual time-and-effort documentation at year-end; budgeted allocations are estimates, actual documented time is what withstands an audit."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/functional-expense-split",
    "https://www.revenuelab.fyi/toolbox/multi-grant-overhead-allocation"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Staff Cost Allocation Calculator (https://www.revenuelab.fyi/toolbox/staff-cost-allocation)"
}