Volunteer Hours & Rota Log
Log volunteer sessions and shifts, count the hours funders ask for, value them at your own notional rate, track travel and expense reimbursements, and see who has an induction, check or training outstanding. Runs entirely in your browser — nothing is uploaded.
Version 1.0.0 · Updated Aug 20, 2026
Use Volunteer Hours & Rota Log now
Runs in your browser · nothing is uploaded
This in-page version cannot save your work between visits — browser storage is switched off inside the sandbox. Download the free file to keep your data on your own computer.
Overview
Frequently asked questions
Is the Volunteer Hours & Rota Log really free?
Yes. The Volunteer Hours & Rota Log is a free download with every feature included — no trial period, no locked features and no account required.
Does my data stay private when I use the Volunteer Hours & Rota Log?
Yes. The tool is a single HTML file that runs entirely on your computer and makes no network requests, so nothing you enter is ever uploaded or shared.
Does the Volunteer Hours & Rota Log work offline?
Yes. Once downloaded it runs completely offline in any modern browser — no internet connection, installation or plugins needed.
Do I need Excel or any other software to use the Volunteer Hours & Rota Log?
No. It replaces the spreadsheet template entirely: open the file in your browser (Chrome, Edge, Firefox or Safari) on Windows, Mac, Linux or a tablet, and start working.
How to use Volunteer Hours & Rota Log
The complete in-tool guidance, reproduced here so you can read it before you download.
What this tool does
CM8-177 is a volunteer hours log and a light rota in one file. You record who volunteered, when, on what and for how long. It totals the hours, values them at a rate you choose, tracks the travel and expenses you paid back, works out a no-show rate, and shows which volunteers have an induction, a background check or a piece of training outstanding.
It exists because funders ask for volunteer hours and almost nobody has counted them. Hours reconstructed from memory at the end of a grant year are always wrong, usually low, and impossible to defend if anyone asks how you arrived at them.
Everything runs inside this single file. There is no account, no upload and no network request of any kind, so volunteer names, visit details and check dates never leave the computer you are using.
What to log
One row per volunteer per session. If four people work the same shift, that is four rows — anything else makes the per-person figures impossible. Log it on the day, or at the latest at the end of the week.
- Activity or project — the thing the hours belong to, and the breakdown funders ask for. Keep the names consistent: "Lunch club" and "Lunch Club" are two activities to this tool.
- Session or shift — which slot it was: "Wednesday lunch", "Setup crew".
- Role — what the person does. The summary shows the role from each person's most recent row, so a change of role follows them.
- Note — what was done, who supervised, why a session was cancelled, what a reimbursement covered. The note is what saves you when a figure is questioned a year later.
Hours, times and breaks
Session hours = hours entered, if any otherwise = (end time − start time) in minutes ÷ 60, with an end before the start treated as crossing midnight
Leave the hours box empty and the tool reads the start and end times. Times parse as 09:00, 9.00, 9 AM or 13:30. An end earlier than the start is treated as an overnight shift, so 22:00 to 02:00 is four hours, not minus twenty.
Breaks are the reason the hours box exists. The clock span of a shift is not the hours volunteered. For an 08:00 to 16:00 shift with an hour for lunch, leave both times in so the rota is right and enter 7 in the hours box. The tool will not accept hours longer than the span between the times, because that is always a mistake.
Round honestly and consistently. Quarter hours are enough precision for anything a funder will read.
What counts and what does not
Only sessions marked attended contribute hours. This is the single most common way a volunteer hours figure gets inflated.
Counted hours = session hours, where status = attended Counted hours = 0, where status = scheduled, did not attend, or cancelled
A scheduled session is a plan, a cancelled session did not happen, and a no-show is a shift somebody was booked for and did not do. None of them are volunteering. The register still shows the session length for all four statuses so the rota reads properly, but every total, tile, chart and table uses attended sessions only. The tool refuses to save hours against a scheduled, cancelled or missed session, so the mistake cannot be made by accident.
Notional value — read this before you report it
The notional value of volunteer time is a reporting convention. It is not income, not expenditure, not a saving and not a donation. No money changes hands. Nothing about it belongs in a set of accounts, a budget, a cash-flow forecast or a claim. Presenting it as any of those things is a serious misstatement, and it is the most common error in volunteer reporting.
Notional value = counted hours × notional hourly value (Settings)
Used properly, the figure answers one question: roughly what scale of work is being done here for nothing? That is worth saying in an annual review, because a hundred hours means little to a reader with no feel for your operation.
Used improperly it becomes donated time on an income line, or a saving in a budget, and neither is true. You did not receive money, and you did not spend less than you planned — you would not have bought those hours at that price, or at all.
- Always label it. "Notional value of volunteer time, not included in income" is enough. Never let it appear beside real money unlabelled.
- Always state the rate and where it came from. Median hourly pay for comparable paid work locally is defensible; a professional charge-out rate for stewarding a fete is not.
- Never add it to real money — not income, not reserves, not match funding — unless a funder has told you in writing how they want volunteer time treated. Their rules win over anything here.
If in doubt, report the hours and leave the money out. The hours are the fact; the value is an opinion about the hours.
Travel and expenses
Reimbursing out-of-pocket costs is real money leaving the organisation, and it is the one figure here that does belong in your accounts.
Travel value = travel amount entered, if any otherwise = travel distance × distance rate (Settings), on attended sessions only Total reimbursement = travel value + other expenses, on any session that is not scheduled
Leave the travel amount blank and the tool values the distance at your rate; enter an amount and it uses that instead. Entering 0 is not the same as leaving it blank — 0 means the volunteer declined the money, and stops the distance being valued. That distinction matters when somebody asks why the reimbursement total does not match the distances.
Distance uses whichever unit you set in Settings. The tool never converts between kilometres and miles, so pick one and use it everywhere. A round trip means the whole journey, out and back.
Reimbursements count on attended, missed and cancelled sessions, because money can genuinely be owed for a journey made before a session was called off. They never count on a scheduled session, and the tool will not let you save one.
How volunteer expenses are treated for tax, what evidence you must hold and whether a flat allowance is permitted at all differ by country. Reimburse actual costs against receipts unless you have taken advice saying otherwise, and never pay anything that looks like a wage.
The no-show rate
No-show rate = did-not-attend sessions ÷ (attended + did-not-attend sessions) × 100
Scheduled sessions are excluded because they have not happened; cancelled sessions are excluded because the organisation, not the volunteer, ended them. The denominator is only sessions that went ahead or should have.
The rate is only as honest as your logging. Record the attendances and quietly skip the no-shows and the rate is zero and tells you nothing. A rate that climbs is usually a rota problem — shifts too long, too early, or booked too far ahead — rather than a people problem.
Induction, checks and training
Three ticks travel with each row, and a background check can carry an expiry date.
Days to expiry = expiry date − today Compliance gap = any of the three ticks missing, or a completed check whose expiry date has passed
They belong to the person, not the session, but they are recorded on rows — so the volunteer summary and the compliance tile use each volunteer's most recent dated row as their current position. Update the ticks as things are completed and the summary follows; leave old rows alone and the history stays accurate.
The tool treats all three as required for everybody. That is deliberately conservative. If a role genuinely does not need a background check, either record it as complete with a note explaining why, or accept the flag and explain it in the report. Do not decide for yourself that a role involving unsupervised contact with people who may be at risk is exempt.
Set the check validity in Settings and, when you tick a completed check with no expiry date, the preview suggests one that many months on from the session date. It is a suggestion: whether checks expire, and after how long, is set by your own policy or by whoever requires the check. Leave the expiry blank if they do not expire — the summary then says "no check expiry recorded" rather than pretending to know.
A tick is not evidence. It records that somebody said a check was done. It does not prove it was done, does not say whether it was the right check for the role, and is no substitute for holding the actual result under whatever conditions apply where you are.
Using it as a rota
Log future sessions as scheduled and the tool becomes a forward rota: filter to scheduled and you have the coming shifts with times, people and — usefully — their compliance status. A volunteer booked onto a shift with an outstanding check shows red before the shift happens, which is the only moment that information is any use. When the session is done, edit the row, set it to attended and add the hours. Nothing is double-counted, because the same row simply changes state.
Reporting to funders
Most volunteer reporting asks for total hours, the number of distinct volunteers, a breakdown by activity and something about reliability. All four are on the printed report. Before you send it:
- Set the date filter to the funder's period. The scope line under the report title states the filter in force — check it says what you think it says.
- Check the activity names. Two spellings of the same project split the hours across two lines and make the report look careless.
- Decide whether to include the notional value at all. If you do, label it and state the rate. If the funder has its own rate or its own rule, use theirs.
- Say what is not in the figures — trustee time, informal help, hours nobody logged. Being explicit that the total is a floor is far better than being asked why it looks low.
The volunteer count is distinct names with at least one attended session in the current filter. The same person entered as "J. Smith" and as "Jane Smith" counts twice. Consistent naming is the whole of the answer.
Volunteer data
This file holds names, roles, movements and the fact that a background check exists — personal information about identifiable people, and in many places check-related information is treated as especially sensitive.
Keep only what you need; volunteer numbers or initials work well if the file will be shared internally. Do not record check reference numbers, certificate contents or anything a check disclosed — this is the wrong place for it. Treat exports as confidential, restrict who can open the machine it sits on, and delete records when your retention policy says so.
Printing and sharing
Print Report produces a report from whatever the current filter shows: header, headline figures, the four charts, the volunteer and activity summaries, the full session log and your closing notes. Print to PDF to circulate it. Everything obeys the filter, including the CSV, so clear the filters before issuing anything described as the full year.
Saving your work
Sessions, settings and the report header are written to this browser's local storage as you type, and the toolbar shows the time of the last save. That storage belongs to one browser on one computer: another browser, a private window, a second machine or a clean-up tool that clears site data will not have it.
Treat Export .json as the real save — one file containing everything, which Import .json restores anywhere. Export CSV gives you the log for spreadsheet work and includes every filtered record, not only those drawn on screen. Reset asks twice, then erases everything this tool has stored. There is no undo.
Accuracy & disclaimer
This tool records what you enter and calculates from it. It cannot tell whether a session happened, whether the hours are honest, whether a background check was carried out, or whether it was the right check for the role. It reports nothing to anybody and confirms nothing about anybody.
What checks are required for which roles, who may hold the results, how long records may be kept, how volunteer expenses must be treated, and how volunteer time may be presented in accounts and grant claims all differ by country, by sector and by funder. This is an internal record-keeping and calculation aid — not legal, accounting or safeguarding advice, and not a substitute for your own policies or for advice from somebody qualified to give it.
Where this fits
Part of Volunteers & Workforce in Nonprofit & Community.
Related tools
Record every donation and donor for a charity, club or community group, keep restricted funds visibly separate from money you are free to spend, track tax relief and thank-yous, and print a treasurer's report. Runs entirely in your browser — nothing is uploaded.
Track grant applications from first research to decision, see your real success rate, and never miss a funder reporting deadline. Runs entirely in your browser. Nothing is uploaded.
Compare job offers on what they are actually worth an hour of your life: base, realistic bonus, employer pension, benefits, equity and signing money against the hours you really work, the leave you really get, and the time and cost of commuting. Works in any currency and any tax regime. Nothing is u
Work out the fully-loaded annual cost of an employee, the true cost per productive hour, the on-cost multiplier and the charge-out rate you need — then compare the same work priced as a contractor. Runs entirely in your browser. No installation, no account, no upload.
Compare a salary with a day rate on the same footing: unpaid holiday and sickness, pension, benefits, business costs and the days you will not bill. Works out the day rate that matches a salary. Runs entirely in your browser. Nothing is uploaded.
Test whether a pay rise or promotion is actually worth taking: the increase after inflation, the change in what you earn an hour once the extra hours are counted, and the marginal rate you are being paid for the additional time. Works in any currency and any tax regime. Nothing is uploaded.