In most service companies where Odoo has been integrated, service sheets, or timesheets, have revolutionized management practices. These service sheets are produced by each employee as they work on the different cases or projects that are running. Each of these is represented by an analytic account in the system.
Throughout the day, when employees work on one project or another, they add a line to the timesheets with details of the time used on each project. At the end of the day, each employee must mark all the time worked on client or internal projects to make up the full number of hours worked in the day. If an account is not in the system, then the time is added to the hours that have not been assigned for the day.
Timesheet for a working day
The figure Timesheet for a working day
gives an example of a timesheet for an employee.
Do not confuse timesheets and attendance compliance
The timesheet system is not intended to be a disguised attendance form. There is no control over the service times and the employee is free to encode 8 or 9 hours or more of services each day if they want.
If you decide to put such a system into place, it is important to clarify this point with your staff. The objective here is not to control hours, because the employees decide for themselves what they will be entering – but to track the tasks running and the allocation of costs between them is the responsibility of the management.
To enable your system with all the features related to Timesheet, you need to install Timesheet module from module list or Go to menu Settings > Configuration > Human Resources tick
Manage timesheets
and click on apply button.
Install Timesheet Module
Amongst the many uses of such a timesheet system for a company, here are some of the most important:
- enabling tracking of the true costs of a project by accounting for the time used on it,
- tracking the services provided by different employees,
- comparing the hours really used on a project with the initial planning estimates,
- automatically invoicing based on the service hours provided,
- obtaining a list of the service hours for a given client,
- knowing the costs needed to run the company, such as the marketing costs, the training costs for a new employee, and the invoicing rates for a client.
Timesheet Categories
You will need to install the Manufacturing application (mrp
) in order to access timesheet categories. The different timesheet categories (working time sessions) can be defined through the menu Manufacturing > Configuration > Resources > Working Time
and selecting one of the groups there such as 45 Hours/Week
.
Timesheet category for full time 45 hours per week
To be able to use timesheets fully, install the module hr_timesheet_sheet
from module list or Go to menu Settings > Configuration > Human Resources
tick Allow timesheets validation by managers
and click on apply button.. Once this module has been installed and the employees configured, the different system users can enter their timesheet data in the menu Human Resources > Time Tracking > Timesheet Activities
, then click Create.
It is a good idea if all employees who use timesheets place this menu in their shortcuts. That is because they will need to return to them several times each day.
For a new entry:
- The
User
: proposed by default, but you can change it if you are encoding the first timesheet for another company employee.- The
Date
: automatically proposed as today's date, but it is possible to change it if you are encoding the timesheet for a prior day.Analytic Account
: for the project you have been working on - obviously it should be predefined.Description
: a free text description of the work done in the time.Duration
: number of units of time (the units are defined as part of the product).
The other fields are automatically completed, but can be modified: the Product which is the service product such as consultancy, the Unit of Measure
(predefined, and could perhaps be minutes, hours or days), the Cost
of the service (which is calculated by default), and the associated General Account
.
The hours are then encoded throughout the day by each employee. It helps to revisit the list at the end of the day to verify that the number of hours of attendance in the company has been properly accounted for. The total entered is shown at the bottom right of the list of service hours.
By default, Odoo is configured to show the amount of each service when an employee encodes the number of hours per project. You can modify this field by adding the attribute invisible=True
in the timesheet view.
(And the way to do that is either to modify the view on the file system, or click on the logged in user at top-right and select About Odoo
and then select Activate the developer mode
. Now go to the HR > Time Tracking > Timesheet Activities
menu. Click on Debug View#
and then select Edit TreeView.
If you have sufficient permissions, you can edit the XML that defines the current view.)
The value in the Amount
field shows employees the cost of their time used in the company, so masking this field might not always be the best option.
The accuracy of the services entered is crucial for calculating the profitability of the different jobs and the recharging of services. Different reports are therefore available for verifying employees' data entry. Employees can verify their own timesheet using the following reports:
- Printing the particular employee's timesheet, using the menu
Reporting > Human Resources > Employee Timesheet
. - Printing more than one employees' timesheet, using the menu
Reporting > Human Resources > Reports > Employees Timesheet
. You can print a summary in the form of a table per user and per day. - Reviewing profit of timesheet, using the menu
Reporting > Human Resources > Reports > Timesheet Profit
. - You can then use the statistical reports to analyze your services by period, by product or by account using the menu
Reporting > Human Resources > Timesheet Analysis and Reporting > Human Resources > Timesheet Sheet Analysis
.
Employees' monthly summary timesheet
Chart of timesheet by account
You already know that timesheets are closely linked with analytic accounts. The different projects reported on the timesheets correspond to analytic accounts. The timesheet entries themselves are analytic entries.
These entries comprise various analytic operations that do not correspond to any of the general accounts. Therefore all operations that modify and create timesheet lines automatically impact the corresponding analytic line and, conversely are automatically modified by changes in that line.
Timesheets and Analytical Data
The implementation of timesheets in Odoo relating to analytic entries is managed by an inheritance mechanism: the timesheet object inherits the analytic entry object.
The information is therefore not encoded into the database as two separate events, which avoids many synchronization problems. They are stored in two different tables, however, because a service is an analytical entry, but an analytical entry is not necessarily a service.
This is not a classical approach, but it is logical and pragmatic. Employee timesheets are a good indication of how the costs of a service enterprise are spread across different cases, as reported in the analytic accounts.
An analytic account should be reflected in the general accounts, but there is no direct counterpart of these analytic accounts in the general accounts. Instead, if the hourly costs of the employees are correctly accounted for, the month's timesheet entries should be balanced by the salary + benefits package paid out to all the employees at the end of the month.
Despite all this, it is quite difficult to work out the average hourly cost of an employee precisely, because it depends on:
- the extra hours that they have worked,
- holidays and sickness,
- salary variations and all the linked costs, such as social insurance charges.
The reports that enable you to relate general accounts to analytic accounts are valuable tools for improving your evaluation of different hourly costs of employees. The difference between product balances in the analytic account and in the general accounts, divided by the total number of hours worked, can then be applied to the cost of the product. Some companies adjust for that difference by carrying out another analytic operation at the end of the month in an account created for that purpose. This analytic account should have a balance that tends towards zero.
Because you have got a system with integrated timesheets, you can then:
- track the profitability of projects in the analytic accounts,
- look at the history of timesheet entries by project and by employee,
- regularly adjust hourly costs by comparing your rates with reality,
Project Cost Control
Controlling the costs and the profitability of projects precisely is very important.
It enables you to make good estimates and to track budgets allocated to different services and their projects, such as sales and, R&D costs. You can also refine your arguments on the basis of clear facts rather than guesses if you have to renegotiate a contract with a customer following a project slippage.
The analyses of profitability by project and by employee are available from the analytic accounts. They take all of the invoices into account, and also take into account the cost of the time spent on each project.
Manage attendance through Sign in / Sign out
In some companies, staff have to sign in when they arrive at work and sign out again at the end of the day. If each employee has been linked to a system user, then they can sign in on Odoo by using the menu Human Resources > Attendances > Sign in / Sign out
.
If an employee has forgotten to sign out on leaving, the system proposes that they sign out manually and type in the time that they left when they come in again the next day. This gives you a simple way of managing forgotten sign-outs.
Find employee attendance details from their forms in Human Resources > Employees > Employees
.
To get the detail of attendance from an employee's form in Odoo, you can use the available reports:
- Attendances By Month
- Attendances By Week
- Attendance Error Report
The last report highlights errors in attendance data entry. It shows you whether an employee has entered the time of entry or exit manually and the differences between the actual and expected sign out time and the time.
Keep track of differences between timesheets and attendance
When they are used properly, timesheets can be a good control tool for project managers and can provide awareness of costs and times.
When employee teams are important, a control system must be implemented. All employees should complete their timesheets correctly because this forms the basis of planning control, and the financial management and invoicing of projects
You will see in Deliver Quality Services
that you can automatically invoice services at the end of the month based on the timesheet. But at the same time, some contracts are limited to prepaid hours. These hours and their deduction from the original limit are also managed by these timesheets.
In such a situation, hours that are not coded into the timesheets represent lost money for the company. So it is important to establish effective follow-up of the services timesheets and their encoding. To set up a structure for control using timesheets you should install the module hr_timesheet_sheet
(Timesheets in the Reconfigure wizard).
Process of approving a timesheet
This module supplies a new screen enabling you to manage timesheets by period. Timesheet entries are made by employees each day. At the end of the week, employees validate their week's sheet and it is then passed to the services manager, who must approve his team's entries. Periods are defined in the company forms, and you can set them to run monthly or weekly.
To enter timesheet data each employee uses the menu Human Resources > Time Tracking > My Current Timesheet
.
Form for entering timesheet data
This form describes summary of attendance (total hours) of employee.
The second tab of the timesheet, Details
, gives the number of hours worked on the different projects.
Detail of hours worked on different projects for an employee
The third tab of timesheet, Attendances
, shows when there is a gap between the attendance and the timesheet entries, you can use the third tab to detect the days or the entries that have not been correctly entered.
The user starts with the sign-in and sign-out times. The system enables the control of attendance day by day. The two buttons Sign In
and Sign Out
enable the automatic completion of hours in the area to the right. These hours can be modified by employee, so it is not a true management control system.
Detail of hours worked by day for an employee
The button Timesheet Activities
shows the time worked on all the different projects. That enables you to step back to see an overview of the time an employee has worked spread over different projects.
At the end of the week or the month, the employee can submit his/her timesheet to manager by clicking on button Submit to Manager
.
Each manager can then look at a list of his department's timesheets waiting for approval using the menu Reporting > Human Resource > Timesheet Sheet Analysis by applying the proper filters. He then has to approve them or return them to their initial state.
To define the departmental structure, use the menu Human Resources > Configuration > Human Resources > Departments
.
Timesheet Approval
At first sight, the approval of timesheets by a department manager can seem a bureaucratic hindrance. This operation is crucial for effective management, however. We have too frequently seen companies in the situation where managers are so overworked that they do not know what their employees are doing.
So this approval process supplies the manager with an outline of each employee's work at least once a week. And this is carried out for the hours worked on all the different projects.
Once the timesheets have been approved, you can then use them for cost control and for invoicing hours to clients.
Contracts and their rates, planning, and methods of invoicing are the object of the following chapter, Deliver Quality Services
.