Weekly Timesheet to Payroll Summary
Example prompt: "Every Monday at 7am, pull last week's hours from our 'Timesheets' Google Sheet, reconcile them against the jobs each person was on, and flag anything off. Build a one-page payroll summary in Google Docs grouped by PAYE vs CIS and post the totals in #payroll on Slack."
The Problem
Most weeks the lads scribble their hours on a tally sheet in the van, ping them by message to the office, or fill in the shared sheet on the way home. Someone, usually whoever is least busy on Monday morning, then turns that into a payroll run. The bit that is slow is not the typing — it is the reconciliation. Whose hours add up against the jobs they were actually on. Who has overtime this week and who does not. Who is missing a day. The bookkeeper wants a clean number by Tuesday lunchtime and we want them to have it without three back-and-forth emails about a day that was logged to the wrong job code.
How GloriaMundo Solves It
We build a scheduled workflow that runs every Monday morning. An integration step pulls last week's timesheet entries from the jobs sheet. A code step totals hours by person, by day, and by job, and runs a set of sanity checks against the rota and the open job list — long days, missing days, mismatched codes, unconfirmed entries. Another code step applies each person's pay rate and overtime threshold from the workforce tab, splits PAYE from CIS, and works out the week's totals. An LLM step writes a one-page payroll summary grouped by status with the flagged items at the top. Integration steps save it to the payroll folder, log the run in the history tab, draft an email to us with the summary attached, and post a one-liner in Slack so we know at a glance whether the run is clean. Glass Box preview shows the totals and the flags before anything is saved or sent.
Example Workflow Steps
- Trigger (scheduled): At 7am every Monday morning.
- Step 1 (integration): Pull every 'Timesheets' row in the 'Jobs' Google Sheet dated in the previous Monday-to-Sunday week, plus the 'Rota' and the open jobs list.
- Step 2 (code): Total hours by person and by day, group by job, and flag long days, missing-against-rota days, unknown job codes, and entries tagged 'awaiting confirmation'.
- Step 3 (integration): Read each person's pay rate, overtime threshold, and PAYE or CIS status from the 'Workforce' tab.
- Step 4 (code): Calculate basic and overtime hours and total pay per person, splitting PAYE from CIS.
- Step 5 (llm): Write a one-page payroll summary grouped by status with totals and flagged items listed at the top.
- Step 6 (integration): Save the summary to the 'Payroll' Google Drive folder under this week's ending date and append a row to the 'Payroll History' tab.
- Step 7 (integration): Draft a Gmail to me with the summary attached and the flagged items in the body, left as a draft.
- Step 8 (integration): Post a one-liner in #payroll on Slack with the week, the total cost, and the flag count.
Integrations Used
- Google Sheets — the timesheets, rota, jobs list, workforce, and payroll history tabs
- Google Docs — the weekly payroll summary
- Google Drive — the 'Payroll' folder where each week's summary is filed
- Gmail — the draft email to the owner with the summary attached
- Slack — the one-liner with the totals and the flag count
Who This Is For
Small to mid-size trade firms with five to thirty people on the tools, a mix of PAYE and CIS, who currently rebuild the weekly payroll number on a Monday morning by hand and would rather start the week with a clean draft and a list of the two or three entries that actually need a chase.
Time & Cost Saved
Pulling the week together by hand takes one to two hours for a team of ten when the entries are tidy, and easily double that when they are not — most of the time goes on the reconciliation, not the maths. The workflow turns it into a ten-minute review of a draft summary and a short list of flags. The bigger saving is the bookkeeper getting a clean number first thing Monday instead of an end-of-week scramble, and the team being paid on the right day every week without anyone having to chase.