Attendance Late, Early & Overtime Report for Odoo 19 documentation
A guide to the attendance report: creating a summary, its rules, the totals, the days, printing and exporting, and how it is computed.
Documents version 1.0.0Updated Oct 23, 2026
Start here
In plain words: Odoo records when people check in and out, but to know who was late, who left early, who worked overtime and who was absent in the month, HR exports the attendances and counts by hand. Attendance Late, Early and Overtime Report compares every check-in and check-out with the working schedule of the employee and gives, for a period, the totals per employee and the detail of every day, ready to print or to export to Excel for payroll.
Tip: Public holidays and time off of the schedule are not absences, and each employee is read in their own time zone.
What you get
| Feature | What it does |
|---|---|
| A summary for any period | For all the employees, some departments or chosen employees. |
| Late and early | Arrival after the start of the schedule and departure before its end, with a grace in minutes. |
| Overtime | Time worked before the schedule starts or after it ends, from a minimum number of minutes. A lunch break without a punch is not overtime. |
| Absences | A scheduled day with no attendance. Public holidays and time off of the schedule are left out; today and the future are not counted. |
| Days off | Work on a day without schedule is overtime (you can switch this off). |
| Totals | Scheduled and present days, absences, late and early (times and minutes), hours worked, overtime and the attendance rate. |
| Detail | Every day with the schedule, the first check-in, the last check-out and the status. |
| PDF and Excel | A printed summary (with or without the days), and two Excel files: totals and days. |
| Time zones | Each employee is compared with their schedule in their own time zone. |
| Arabic | Everything is translated and works right to left. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Attendances (hr_attendance) |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_attendance_overtime.zip; unzip it to get the foldertaqnix_attendance_overtime. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- Remove the “Apps” filter, search Attendance Late, Early and Overtime Report and press Install.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_attendance_overtime --stop-after-init
Create a summary
In plain words: Attendances → Reporting → Attendance summary, then New. Choose the period, the departments or the employees (empty means everybody) and the rules, then press Compute.
| Rule | Meaning |
|---|---|
| Grace for late | An arrival up to this many minutes after the start of the schedule is on time (5 by default). |
| Grace for early leave | A departure up to this many minutes before its end is on time (5 by default). |
| Minimum overtime | Time outside the schedule counts as overtime from this many minutes (15 by default). |
| Work on days off is overtime | All the time worked on a day without schedule is overtime. |
| Print the days | The PDF also lists every day of every employee. |
The totals
In plain words: The Employees tab shows one line per employee. The calendar button opens the days of that employee. Compute again after attendances were corrected.
| Column | Meaning |
|---|---|
| Scheduled / Present / Absent days | Days of the schedule; those with an attendance; those without. |
| Late and Early | How many times and how many minutes in total. |
| Worked hours | The hours of the check-in and check-out pairs. |
| Overtime | Outside the schedule, from the minimum. |
| Attendance % | Present days divided by scheduled days. |
Day by day
In plain words: The Days button lists every day. Filter Late, early or absent to see what to talk about, or With overtime to see what to pay.
| Status | Meaning |
|---|---|
| Present | On time. |
| Late / Left early / Late and left early | Beyond the grace. |
| Absent | A scheduled day without attendance. |
| Worked on a day off | Attendance on a day without schedule. |
| No check-out | The employee did not check out: the day is shown without hours. |
Print and export
In plain words: Print gives the summary in PDF; tick Print the days to add the detail of every employee. Excel: totals and Excel: days download the figures for payroll or your own analysis.
How it is computed
| Rule | Detail |
|---|---|
| The schedule | The working schedule of the employee, without public holidays and time off, in the employee's time zone. |
| Late | First check-in of the day, compared with the start of the schedule. |
| Early | Last check-out of the day, compared with the end of the schedule. |
| Overtime | The time before the schedule starts plus the time after it ends. The lunch break is not counted. |
| Absent | A scheduled day before today with no attendance. |
| Several punches | The first check-in and the last check-out of the day; the hours are the sum of the pairs. |
Who can do what
| Who | Can |
|---|---|
| Attendance officers (all attendances) | Create and compute summaries, print and export them. |
| Attendance administrators | Also delete summaries. |
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| Odoo’s own overtime | The module is a report: it does not approve overtime or change the overtime of Odoo Attendances. |
| One schedule | The schedule of the employee (or of the company) is used; flexible hours are not interpreted. |
| Night shifts | An interval that crosses midnight is attached to the day where it starts. |
| Size | Up to 20,000 employee-days for a summary; use shorter periods or departments beyond. |
For developers
In plain words: Skip this chapter if you only use the module.
report = env['taqnix.attendance.report'].create({'date_from': '2026-10-01', 'date_to': '2026-10-31'})
report.action_compute()
report.line_ids.mapped('overtime_hours') # totals per employee
report.day_ids # the daysTroubleshooting
| Problem | What to do |
|---|---|
| Everybody is absent | The employees have no working schedule, or it does not include these days. |
| Late for everybody by some hours | Check the time zone of the employees: the schedule is read in it. |
| Too many days for so many employees | Choose a shorter period or a department. |
| Overtime is missing | It must reach the minimum (15 minutes by default); lower it for the report. |
| The PDF is empty or shows boxes | wkhtmltopdf must be installed; avoid symbols that the font lacks if you customise the template. |
Updating and removing
Replace the folder with the new version, restart Odoo and run -u taqnix_attendance_overtime. Summaries are kept.
Support
Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.