Last updated November 6, 2026
General information, not tax or legal advice. The rules depend on your country and your situation, so check anything with a tax or legal consequence with your accountant.
A team timesheet your invoices can use has one row per person, client, job, task and rate, a column for each day, a billable flag and a weekly total. Everyone fills in the same layout. Adding up rows by client and rate then gives you the quantity for each invoice line, with no retyping.
The weekly timesheet layout
The weekly timesheet layout below works in Excel or Google Sheets. Copy the header row into row 1, columns A to L, and put the week's start date in the tab name. These rows are invented, for the week starting Monday 2 November 2026, and they show two people on 37.5-hour weeks.
| Person | Client | Job | Task | Rate | Bill? | Mon | Tue | Wed | Thu | Fri | Total |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Ana | Alder Foods | ALD-07 | Design | SEN | Y | 4 | 3.5 | 0 | 2 | 3 | 12.5 |
| Ana | Birch Legal | BIR-02 | Review | SEN | Y | 2 | 2 | 4 | 2.5 | 0 | 10.5 |
| Ana | Internal | INT-01 | Admin, meetings | N | 1.5 | 2 | 3.5 | 3 | 4.5 | 14.5 | |
| Ana's week | 7.5 | 7.5 | 7.5 | 7.5 | 7.5 | 37.5 | |||||
| Ben | Alder Foods | ALD-07 | Build | STD | Y | 5 | 6 | 3 | 0 | 2 | 16.0 |
| Ben | Cedar Homes | CED-11 | Build | STD | Y | 2 | 1 | 4 | 6.5 | 4.5 | 18.0 |
| Ben | Internal | INT-02 | Training | N | 0.5 | 0.5 | 0.5 | 1 | 1 | 3.5 | |
| Ben's week | 7.5 | 7.5 | 7.5 | 7.5 | 7.5 | 37.5 |
Add Saturday and Sunday columns if your team works weekends. On a second tab, keep a small table of what each rate code is worth: SEN is €120 an hour and STD is €85 in this example.
What is each timesheet column for?
Each column in a team timesheet exists because an invoice, or a check on an invoice, needs it.
| Column | What goes in it | Why it's there |
|---|---|---|
| Person | One name, spelled one way | Lets you add up each person's week |
| Client | The name as it appears on the invoice | Decides which invoice the hours go on |
| Job | A code from your project numbering | Keeps two jobs for one client apart |
| Task | A word from a short shared list | Becomes the description on the invoice line |
| Rate | A code, not an amount | Staff don't need to see prices, and a rate change touches one tab |
| Bill? | Y or N | Keeps internal hours on the sheet and off the invoice |
| Mon to Fri | Decimal hours | Spreadsheets add 7.5 more reliably than 7:30 |
| Total | =SUM(G2:K2) on row 2, copied down |
The quantity you'll bill |
Add one column when you start invoicing from the sheet: the invoice number each row went on. Blank means unbilled, so nothing is billed twice.
Decide the unit before anyone starts. The billing increment chart converts minutes to decimals for 6, 10 and 15-minute units. When the timesheet is due and what happens if it's late belong in a timesheet policy, and who signs it off is covered in the approval process.
How do you turn a timesheet into invoice lines?
Turn a timesheet into invoice lines by adding up the Total column for each client and rate code, counting only rows marked Y. In Excel or Google Sheets, this formula returns 12.5 for the example above:
=SUMIFS($L:$L,$B:$B,"Alder Foods",$E:$E,"SEN",$F:$F,"Y")
Run it for each client and rate combination, then multiply by the rate.
| Invoice to | Line | Hours | Rate | Net |
|---|---|---|---|---|
| Alder Foods | Design, job ALD-07 | 12.5 | €120 | €1,500 |
| Alder Foods | Build, job ALD-07 | 16.0 | €85 | €1,360 |
| Birch Legal | Review, job BIR-02 | 10.5 | €120 | €1,260 |
| Cedar Homes | Build, job CED-11 | 18.0 | €85 | €1,530 |
| Total | 57.0 | €5,650 |
Then run the check that catches most mistakes. The sheet holds 75 hours in total, which is two 37.5-hour weeks. Billable hours of 57 plus the 18 non-billable hours make 75, so every hour is accounted for. If the sums don't meet, a row has the wrong flag or a client name is spelled two ways, since SUMIFS won't match a typo.
The guide to turning billable hours into an invoice covers what to show on the invoice itself.
Is a billing timesheet also a working-time record?
A billing timesheet isn't automatically a working-time record. In the EU, the Court of Justice ruled in case C-55/18 that member states must require employers to have an objective, reliable and accessible system for measuring the time each worker works each day, and each member state decides the form it takes.
This layout counts hours per client. It doesn't show start times, finish times or rest breaks. Check what your country requires, and keep that record separately if this one doesn't meet it.
Using this timesheet with ERPFlow
ERPFlow doesn't have a timer or timesheets today. Time tracking, including converting tracked time into invoices, is coming soon. For now this layout lives in your spreadsheet, and ERPFlow takes over at the invoice. It also has no timesheet approvals or per-person time reports.
- Rate codes become services: create one service per rate, such as "Senior time" with the unit set to hours and a price of €120. On an invoice, pick it and type the timesheet's total as the quantity. Reword the line's description to name the job, as in the table above.
- Totals beside the customer: a project linked to a customer adds up the time typed on its cards, per project and per customer, as described in how projects work. Each card holds one figure, with no date and no split by person. It doesn't become invoice lines.
- Bringing totals in by file: the CSV import for project cards has a time spent column in whole minutes, so 12.5 hours is 750. Each row creates a new card, any project or column it names must already exist, and assignees aren't in the file. The Free plan caps project cards at 10 in total.