Theoretical vs Attended Time Analysis

Technical Name:
  • Odoo Version

Terms and Conditions 

Theoretical vs Attended Time Analysis

Beta License: AGPL-3 OCA/hr Translate me on Weblate Try me on Runbot

This module adds a new report called "Theoretical vs Attended Time Analysis" that compares worked time, measured through attendances records, with the theoretical time, computed from employee's working calendar, public holidays and employee specific leaves. Missing attendance days are generated on the fly in the report with their corresponding theoretical hours.

There is the possibility of counting as theoretical time some leave types if specified in them.

As an example, imagine a work week with 40 theoretical hours, and these attendance situation:

  • Monday: Worked 10 hours
  • Tuesday: Worked 10 hours
  • Wednesday: Worked 10 hours
  • Thursday: Worked 10 hours
  • Friday: Ask for a compensation leave (said leave type), as already worked 40 hours.

On the report, whole week should put 40 theoretical hours - 8 per day - against 40 worked hours (although they were on previous days, and none on Friday).

On contrary, if you want to take a holiday one of that days, you should ask for a leave type without the check for counting as theoretical time, and then the whole week will be 32 theoretical hours against the worked hours of that week without the leave.

Table of contents


On installation time, this module computes the theoretical hours for the day of the attendance check-in, so if you have a lot of records, this would be a bit slow.


You need to be at least "Attendance / Manual Attendance" for being able to see the attendances report.

For including some leave types in the theoretical time, you have to:

  1. Go to Leaves > Configuration.
  2. Select leave type you want to include.
  3. Check the mark "Include in theoretical hours".

When generating non worked days, this module uses a start date for beginning the series generation, which is:

  • Manual start date set on the employee.
  • If not set, the greatest of these 2 dates:
    • Employee creation date.
    • Working calendar line start date.

For configuring manual start date, you have to:

  1. Go to Employees > Employees.
  2. Select an employee.
  3. Go to "HR Settings" page.
  4. Set the date in "Theoretical hours start date" field.

The generation will stop on the end date of the working calendar line or today, so don't forget to properly set start and end dates of the lines of the working calendar for not leaving empty spaces between them.


  1. Go to Attendances > Reports > Theoretical vs Attended Time Analysis.
  2. Check pivot table or look at the graph view.

Known issues / Roadmap

  • Employees with less than 1 week in the company will show full week theoretical hours.
  • Activate ORM cache for improving performance on computing theoretical hours, but assuring that the cache is cleared when the conditions of the computation changes.
  • If you change employee's working time, theoretical hours for non attended days will be computed according this new calendar. You have to define start and end dates inside the calendar for avoiding this side effect.
  • Recompute theoretical hours of affected days when changing the leave type to be included or not in theoretical time.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.



  • Tecnativa


Other credits


  • Font Awesome: Icon.


This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/hr project on GitHub.

You are welcome to contribute. To learn how please visit

This is a preview of the recently viewed products by the user.
Once the user has seen at least one product this snippet will be visible.

Recently viewed Products