Home / Use cases / Staff time across federal grants

Use case · grants and staff time

Staff time across federal grants, without the month-end spreadsheet

Updated September 2026

Log hours by program each week, have one person approve them, and the split across grants builds itself. Here is how that works when you have three staff and two federal grants.

The problem, in your words

Two grants each pay part of the same coordinator. The county wants to know what share of her time was theirs. So does the state. Your answer today is a spreadsheet that gets filled in at month end, from memory. You know it would not survive a hard look.

You are not doing it wrong. The tools are wrong. A spreadsheet has no memory of who approved what, or when. A payroll app knows the total, not the split. The split is the whole question.

The short answer

Everyone you pay logs their hours by program each week, admin and fundraising included. One person approves the week. Approved hours, times each person's pay rate, become the cost of each program. Each grant then shows what it has spent. That is the whole system, and it is the record an auditor asks for.

The org in this example

Established band ($100K to $500K a year)

BudgetAbout $320K a year
Paid staff3, one on a salary
VolunteersAbout 40
Funding2 federal grants passed through the state, 1 foundation grant

An invented example, sized like the orgs Ember is built for. Not a customer.

What the rule asks for

The federal rule on salaries, 2 CFR 200.430, asks for three things. The record has to cover a person's whole job, not only the hours you charge to the grant. It has to be part of your normal records, with someone other than the worker signing off. And it has to match what you actually paid. That is it. No special form, and no signed certificate every month, as long as your records do that job. Time and effort reporting is the name for the habit.

What it looks like, week by week

  1. Set it up once

    Add each grant once: who it is from, how much, and the one program it pays for. Then say what each person is paid an hour. Pay rates are dated, so giving someone a raise in March does not quietly rewrite January.

    Ember Grants, the county grant's detail panel with the goal it supports, the award amount, the spend-down bar and its report deadlines
    The county grant: the goal it pays for, the award, what is left, and the report dates. Demo data.
  2. Monday: your coordinator logs last week

    Whoever ran the program opens Ember Time, taps the programs they worked on, and taps the hours. Meals on Saturday, the garden on Wednesday, a little admin. Most weeks it is one tap of Same as last week, one line fixed, and it comes to you. It takes about as long as reading this step.

    Ember Time, a coordinator's weekly timesheet split across three programs with the Submit for approval button
    One week, three programs, one button to send it for approval. Demo data.
  3. You get an email when a week is waiting

    Nobody has to remember to chase anyone. If someone forgets to log their time, they get a nudge on Monday. You get a list on Friday of whatever is still waiting on you.

  4. You approve the week, or send it back

    Each week shows you whether that person is paid by the hour or on a salary, a flag if they went over 40 hours, and how long it has been sitting there. Approve it, or send it back with a note saying what to fix. If you ever approve your own hours, the record shows that too.

    Ember Time approvals queue with one submitted timesheet, its waiting time and the Approve and Send back actions
    Nothing counts until someone other than the worker signs off. Demo data.
  5. The split you have been doing by hand appears on its own

    Approved hours, times each person's pay rate, is what the week cost. The same screen breaks that cost down by program. Download it as a spreadsheet and you have the split across every grant, person by person, week by week. That is the number the county asked for.

    Ember Time payroll export showing hours to pay and the by-program cost allocation with a Download CSV button
    The split, by program, built only from hours somebody approved. Demo data.
  6. Each grant shows what it has spent

    Record what you spend against the program it belongs to, in Ember Budget. Because the county grant pays for one program, you can see how much of that grant is left without adding anything up. The dates its reports are due sit right beside it.

    Ember Budget, the Weekend Meals program sheet with its spent bar against the year's plan
    One program: what you planned to spend, what you have spent, and how far into the year you are. Demo data.
  7. Audit day

    Send two files: approved hours by person and program, and the money you spent. Then open two screens: who approved each week and when, and what each person was paid at the time. Nothing has to be rebuilt from memory, because none of it was ever kept in anyone's memory.

Two things Ember does not do

It does not pay anyone. It hands your payroll provider the approved hours and what they add up to; they still run payroll. And while everyone's hours are split by program, the dollar figure follows the people you pay by the hour, not the people on a salary.

Who does what

If you are the executive director

You approve the week. You and anyone you make an admin are the only people who can see pay rates. When the auditor writes, you send two files and open two screens. You never open a spreadsheet.

If you are the program manager

You log your time by program once a week, and you can approve time for the programs you run. You cannot approve your own, which protects you as much as it protects the org.

If you are the treasurer or on the board

You see each program's money: what came in, what went out, whether it is on pace. You never see a pay rate, a donor's name or a single line of the ledger.

Built for orgs like this
  • Two or more grants pay part of the same person's wages, and a funder wants to know the split.
  • You have a few paid staff and one person who can check their hours.
  • Your money comes from federal or state grants, so an audit is a real possibility.
  • You would rather the record built itself every week than be reconstructed every month.

What it costs at this size

An org with a $320K budget sits in the Established band: $99 a month billed yearly, with every app and no limit on how many people you add. Under $50K a year it is $0. Your price follows your budget, so hiring a fourth person does not change it. See every band.

Free template

Time and effort certification template

If your funder wants a signed certificate on top of the approvals, this is the one to use. Free, no sign-up.

This is general information, not legal or accounting advice. Federal grant rules change and are applied differently by different agencies and auditors. Check with your auditor, your grant officer, or an attorney before relying on any of it.

The Ember tool for this step

Ember Time

Staff log hours by program in a few taps, a supervisor approves the week, and every program carries its real staff cost.

The Ember tool for this step

Ember Grants

Every award, deadline and report in one pipeline, with the goals each grant pays for beside it.

The Ember tool for this step

Ember Budget

Money in and out by program, restricted kept apart from flexible, with a spend bar against the plan.

Sources: Regulation: 2 CFR 200.430 (eCFR), read 3 September 2026. The org, people and figures on this page are an invented example; Ember has no customer data to report yet. Product behavior is described as built on 3 September 2026 and re-checked at each release.

Common questions

Is there software that tracks time and effort for federal grants at a small nonprofit?

Yes. The job needs three things. Everyone logs hours by program each week. Someone else approves the week. Approved hours times pay rates become each program's cost. Ember Time does that for any number of people. A grant in Ember Grants reads its spend from the program it funds.

What counts as a time record for a federal grant?

Records that reflect each person's whole workload, are reviewed by someone else, and match what you paid. A weekly timesheet by program with a supervisor's approval does that. A separate monthly certification form is one way, not the only way. More on timesheets and federal grants.

What if the same person is on a federal grant and a foundation grant?

Same record, two readers. The federal share follows 2 CFR 200.430 and your approved hours. The foundation share follows the grant agreement, which says whether staff costs for the program are allowed. One timesheet by program answers both, because each grant is tied to a program.

Does the split have to match the budget we proposed to the funder?

No. It follows recorded effort, not the budget you proposed. Say a coordinator's approved hours were 60 percent on the county's program and 40 percent on the state's. That is the split. The split changes week to week, and your records should show it.

What does an auditor want to see for staff time?

Hours by person and program for the period. Who approved them and when. The pay rate in effect. A ledger that ties to payroll. Two downloads and two screens in Ember cover that. What they do not want is a spreadsheet rebuilt from memory after the fact.

Is this right for an org with millions in federal awards?

If you negotiate an indirect cost rate and run cost pools across many awards, you need grant accounting built for that. Sage Intacct and Unanet are the better fit today. Ember is built for the org with a few staff, a few awards, and no accounting department.

Does Ember run payroll?

No. It exports approved hours, gross pay for hourly staff, and a cost split by program as a CSV. Your payroll provider pays people. Nothing reaches that export until a reviewer has approved the week.

News and guides by email

Sign up for Ember's newsletter: what's new in Ember, plus guides and resources for running a nonprofit, sent to your inbox.

Unsubscribe anytime. Privacy policy

We use cookies for analytics and, if you opt in, advertising. See our Privacy Policy.