Hands-On Tutorial

Building a Personnel Budget from Scratch

GAFL 6510: Public & Nonprofit Finance · Fels Institute of Government · University of Pennsylvania

Getting Started

You are a budget analyst for the City of Riverdale, PA. Your task is to build the FY2026 personnel budget for the Department of Public Works (DPW) — 25 employees across four divisions. You will calculate loaded costs, aggregate by division, and project FY2027.

Setup Steps

1Click Download Starter Spreadsheet above to get the pre-formatted .xlsx file. It contains employee roster data in columns A–G on Sheet1, and a benefits rate reference on Sheet2.
2Open the file in Excel, Google Sheets, or LibreOffice Calc. Column H (LOADED_COST) is intentionally blank — that's where you'll build your formulas.
3Work through the four tasks below. When you're done, use the Check My Work panels to verify your answers and get feedback.

Two Ways to Check Your Work

  • Quick Check: Enter specific computed cell values and get instant feedback with error diagnosis
  • Full Check: Upload your completed spreadsheet for a comprehensive scorecard

Each task has a progressive hint system — try to work it out yourself first!

Loaded Cost — The True Cost of an Employee

A budget that shows only salary is misleading. The real cost of employing someone includes health insurance, pension contributions, FICA (Social Security + Medicare), workers' compensation, and unemployment insurance. In public sector budgeting, this total is called the loaded costAlso called "fully-burdened cost" — salary plus all employer-paid benefits or fully-burdened cost.

Why Does This Matter?

If you budget $1 million for 15 employees based on salaries alone, you'll actually need $1.28–$1.32 million. That $280,000–$320,000 gap comes from benefits. Budget directors who forget this end up cutting services mid-year. The benefits rate in column G tells you exactly what multiplier to apply.

Formula
Loaded Cost = Annual Salary × (1 + Benefits Rate)
Excel for H5: =F5*(1+G5)
The "(1 + rate)" adds 100% of salary plus the benefits percentage. A 32% rate gives a multiplier of 1.32.

Worked Example — Martinez, Director (DPW-001, Row 5)

$98,500 × (1 + 0.32 ) = $98,500 × 1.32 = $130,020

What to Do in Excel

1In cell H5, type: =F5*(1+G5) — press Enter. You should see $130,020.
2Copy H5 down through H29 to fill all 25 employees. (Select H5, press Ctrl+C, then select H6:H29 and press Ctrl+V, or drag the fill handle.)
3Column H should already be labeled LOADED_COST in row 4. Save your file.
4Spot-check: H29 (Hernandez, Admin) should equal $70,400.
Need Help?
Conceptual hint: The formula multiplies salary by a multiplier greater than 1. A 32% benefits rate means the multiplier is 1.32 — every dollar of salary costs $1.32 all-in. Make sure you're adding 1 to the rate, not just multiplying by the rate alone. =F5*G5 gives you only the benefits portion, not the total.
Formula detail: =F5*(1+G5) uses relative references so when you copy down, row 6 becomes =F6*(1+G6), row 7 becomes =F7*(1+G7), etc. No absolute references needed here — the benefits rate in each employee's own row is what you want.
Exact answers:
H5 (Martinez, Director): $130,020
H19 (Martin, Parks Groundskeeper): $54,180
H29 (Hernandez, Admin): $70,400
Check My Work — Task 1

Enter values from these three cells in your spreadsheet (tolerance ±$1):

Division Subtotals — Who Works Where, and What Do They Cost?

Raw employee lists don't help a budget director make decisions. You need costs aggregated by organizational unit. SUMIFSums only the rows where a condition is true — like "Streets" in column C lets you sum a column only for rows matching a condition, such as all employees in the Streets division.

Why Does This Matter?

This is how real budget systems work. Every city's budget software breaks down personnel costs by department, division, program, or location. You're replicating that logic in Excel using SUMIF. Once you can build it by hand, you'll understand what the software is actually doing — and you'll be able to explain it to others.

Formula 1 — FTE Total by Division
= SUMIF(division_range, "DivisionName", FTE_range)
Streets FTE (E31): =SUMIF($C$5:$C$29,"Streets",$E$5:$E$29)
Formula 2 — Loaded Cost Total by Division
= SUMIF(division_range, "DivisionName", loaded_cost_range)
Streets Loaded Cost (H31): =SUMIF($C$5:$C$29,"Streets",$H$5:$H$29)
Use absolute references ($C$5:$C$29 etc.) so the lookup range doesn't shift when copying.

Worked Example — Streets Division (Row 31)

Streets Division has 10 employees (DPW-001 through DPW-010). DPW-009 (Taylor) is a 0.5 FTE, so:

FTE Total: 9 × 1.0 + 1 × 0.5 = 9.5 FTE
Salary Total: $614,500

What to Do in Excel

1In E31: =SUMIF($C$5:$C$29,"Streets",$E$5:$E$29) — Streets FTE total.
2In F31: =SUMIF($C$5:$C$29,"Streets",$F$5:$F$29) — Streets salary total.
3In H31: =SUMIF($C$5:$C$29,"Streets",$H$5:$H$29) — Streets loaded cost total.
4Repeat for Parks (row 32), Sanitation (row 33), Admin (row 34) — change "Streets" to the division name exactly as it appears in the data.
5In row 36 (Department Total): =SUM(E31:E34), =SUM(F31:F34), =SUM(H31:H34). Save your file.
Need Help?
Conceptual hint: SUMIF takes three arguments: the range to check (column C, the division names), the value to match (e.g., "Streets"), and the range to sum (the FTE or cost column). The division names must match exactly — "Streets" not "streets" or "STREETS".
Formula detail: Use dollar signs ($C$5:$C$29) to lock the lookup range. This way you can copy formulas from row 31 to rows 32–34 and only need to change the division name string, not the range references.
Exact FTE totals:
Streets: —  |  Parks: —  |  Sanitation: —  |  Admin: —
Department Total FTE: —
Check My Work — Task 2

Enter three values from your subtotal rows (FTE tolerance ±0.1, dollar tolerance ±$1):

FY2027 Projection — What Does Next Year Cost?

Personnel costs almost never stay flat. Collective bargaining agreements, civil service step increases, and cost-of-living adjustments drive salaries up each year. Budget directors must project these increases before the fiscal year begins. This task applies a 3% across-the-board step increase and recalculates loaded costs.

Why Does This Matter?

A 3% step increase sounds small. For a department of this size, it adds approximately $55,000 to the annual personnel budget. That's the point — personnel costs are the largest and stickiest line item in any city budget. Once you hire someone, you're committed to escalating costs for as long as they're employed.

Formula — FY2027 Salary
FY2027 Salary = FY2026 Salary × 1.03
Column I (I5): =F5*1.03
Formula — FY2027 Loaded Cost
FY2027 Loaded Cost = FY2027 Salary × (1 + Benefits Rate)
Column J (J5): =I5*(1+G5)
The benefits rate in column G does not change — you're only raising the salary base.

Worked Example — Martinez, Director (DPW-001)

FY27 Salary: $98,500 × 1.03 = $101,455
FY27 Loaded: $101,455 × 1.32 = $133,921

What to Do in Excel

1Add header "FY27_SALARY" in cell I4 and "FY27_LOADED" in J4.
2In I5: =F5*1.03 — copy down through I29.
3In J5: =I5*(1+G5) — copy down through J29.
4Add division subtotals and department total for columns I and J (rows 31–36) using the same SUMIF/SUM approach from Task 2. Save your file.

📈 Budget Impact Calculator

Adjust the step increase to see how it affects the department-wide projected budget. This shows why even small percentage changes have large dollar impacts at scale.

%
FY27 Dept Salary Total: —
FY27 Dept Loaded Cost Total: —
Year-over-Year Increase: —
Need Help?
Conceptual hint: The step increase multiplier is 1.03, not 0.03. Multiplying by 1.03 gives you the new total salary (100% of old salary + 3% increase). Multiplying by 0.03 would give you only the raise amount, not the new salary.
Formula detail: The benefits rate in column G does not change year-over-year in this exercise — you're only increasing the base salary. The loaded cost formula is the same structure as Task 1, just applied to the new FY27 salary: =I5*(1+G5).
Exact answers:
I5 (Martinez FY27 Salary): $101,455
J5 (Martinez FY27 Loaded): —
J36 (Dept FY27 Loaded Total): —
Check My Work — Task 3

Enter three values from your FY27 projection (tolerance ±$2):

Visualizing Personnel Costs by Division

Charts in budget documents aren't decoration — they communicate resource allocation decisions to elected officials and the public who can't read a spreadsheet. A well-designed chart of personnel costs by division tells a story about organizational priorities.

⚠ The 3D Pie Chart Rule

Never, under any circumstances, use a 3D pie chart in a professional budget document. They distort proportions, are impossible to read accurately, and signal to your audience that you don't know what you're doing. A horizontal or vertical bar chart is almost always the right choice for comparing budget categories.

What to Do in Excel

1Select the four division names (B31:B34) and their FY26 loaded cost totals (H31:H34). Hold Ctrl to select non-adjacent columns.
2Insert a Clustered Bar Chart (Insert → Charts → Bar). This is better than a pie chart for comparing magnitudes.
3Add data labels showing dollar amounts. Format as currency ($###,###).
4Title the chart: "DPW FY2026 Personnel Budget by Division." Delete the legend (only one series). Save your file.

Reference Chart — Generate for Comparison

Click below to generate a reference chart showing FY26 and FY27 loaded costs side-by-side for each division. Use the toggle buttons to switch views.

Discussion Questions

Answer Key

Use this to verify individual values after you have attempted each task. Click to reveal.