KangarooClock

← Blog

When Two Programs Share One Roster

· 5 min read

It is grant reporting week. You open the export, ready to pull the food-bank hours, and the rows are a mess. Maria worked the pantry Tuesday and tutored Thursday. Both entries are in there, same name, no way to tell which is which except by squinting at the times and trying to remember the schedule. You have two programs, one report deadline for each, and one pile of hours that does not sort itself.

This happens because both programs run off the same roster. Same people, same clock, same workspace. That part is fine. The problem is that nothing on the entry says which program it belongs to. A clock-in is a name and a time. Without a label, Maria's pantry shift and Maria's tutoring session look identical in the data.

Why one roster is the right call, and where it goes wrong

Keeping both programs in one workspace is usually correct. Your volunteers cross over. The person stacking cans on Tuesday reads with a kid on Thursday. If you split them into two separate workspaces, that person exists twice, gets counted twice in your distinct-worker total, and you spend the year reconciling two lists that should be one.

So the shared roster stays. What breaks is treating time entries as if they carry no context. They do not, unless you add it. When every clock-in lands in the same undifferentiated bucket, the export gives you a true count of hours worked and no way to say hours worked on what. That distinction is the whole point of a grant report.

The fix is not more spreadsheets after the fact. It is labeling the entry at the moment it is created, so the split is already done by the time you export.

Tags separate the work, worker groups separate the people

Kangaroo Clock has two labels, and they do different jobs. Getting them straight is what makes the mixed-export problem go away.

Tags label the time entry. A tag says what this block of time was for: "food bank" or "tutoring." Since a tag rides on the entry, the same person can log pantry hours under one tag on Tuesday and tutoring hours under another on Thursday. When you export, you filter by tag and get only the rows for that program. The food-bank report pulls its own hours. The tutoring report pulls its own. Neither touches the other.

Worker groups label the person. A group says who someone is: which team, role, or program they belong to. Useful when you want a report on everyone in the after-school group regardless of what they clocked. Groups sort people; tags sort time. If you try to use groups to separate two programs that share volunteers, you are back to the double-counting problem, because a person can only be so many things at once and their hours still land in one bucket.

The short version: pick the program with a tag on the entry, describe the person with a group. The guide to running multiple programs from one workspace walks through the setup for both, including how to name them so the export sorts predictably.

Filtered kiosks so nobody has to remember the tag

Asking volunteers to pick the right tag when they clock in is asking for mistakes. Half of them will forget, some will guess, and you are back to sorting by memory. Move the decision off the worker and onto the station instead.

Run a kiosk per program. The tablet at the pantry entrance is set to tag every clock-in "food bank." The tablet in the tutoring room tags everything "tutoring." Maria taps her name at the pantry and her time is labeled before she has walked to the shelves. She never chooses anything. The location does the labeling.

If a program is pop-up or has no fixed spot, a posted QR code does the same job. Print one poster per program, each carrying its own tag, and post it where that program happens. You can build one from the QR sign-in poster generator. A volunteer scans, taps their name, and the tag is applied by which poster they scanned. No app, no login, no dropdown to get wrong. Try the flow first on the live kiosk demo if you want to see exactly what the worker sees.

What the clean export looks like

With tags on every entry, the CSV export stops being a puzzle. Filter to "food bank" and you get one file: the pantry rows only, with a distinct-worker count for just that program. Filter to "tutoring" and you get the other. Two grant reports, each pulled straight from the data, no manual splitting and no cross-contamination.

The distinct-worker count matters more than people expect. Grant reports often ask how many unique volunteers a program served, not just total hours. Because the roster is shared, Maria counts once toward the food-bank number and once toward the tutoring number, which is correct. She really did serve both programs. What you avoid is her showing up as two different people, or her tutoring hours padding the food-bank total.

Forgotten clock-outs used to wreck this too. A volunteer who leaves without tapping out could log a fourteen-hour pantry shift that never happened, and that phantom time would sit in the wrong program's report. Kangaroo Clock's auto-close for stale entries handles it by closing a forgotten entry at its start time plus a cutoff, never at the current time, so a missed clock-out cannot inflate either program's hours.

Set it up before the next reporting deadline

You do not need to re-tag the whole year tonight. Create a tag for each program, set one kiosk or QR poster per program to apply it, and every entry from tomorrow forward sorts itself. The next time grant week comes around, you filter, you export, and both reports are already separate. That is the entire fix.

Tags: tags, reporting, volunteers, csv-export

See it in your own setup

No signup needed. Add a few names, share a kiosk URL, watch hours land.

Try the demo →