Skip to content
DevMarket
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on DevMarket

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.
The totals per employee, the problem days and the printed summary.
The totals per employee, the problem days and the printed summary.
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

FeatureWhat it does
A summary for any periodFor all the employees, some departments or chosen employees.
Late and earlyArrival after the start of the schedule and departure before its end, with a grace in minutes.
OvertimeTime worked before the schedule starts or after it ends, from a minimum number of minutes. A lunch break without a punch is not overtime.
AbsencesA scheduled day with no attendance. Public holidays and time off of the schedule are left out; today and the future are not counted.
Days offWork on a day without schedule is overtime (you can switch this off).
TotalsScheduled and present days, absences, late and early (times and minutes), hours worked, overtime and the attendance rate.
DetailEvery day with the schedule, the first check-in, the last check-out and the status.
PDF and ExcelA printed summary (with or without the days), and two Excel files: totals and days.
Time zonesEach employee is compared with their schedule in their own time zone.
ArabicEverything is translated and works right to left.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededAttendances (hr_attendance)
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_attendance_overtime.zip; unzip it to get the folder taqnix_attendance_overtime.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. 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.
A new summary with its rules.
A new summary with its rules.
RuleMeaning
Grace for lateAn arrival up to this many minutes after the start of the schedule is on time (5 by default).
Grace for early leaveA departure up to this many minutes before its end is on time (5 by default).
Minimum overtimeTime outside the schedule counts as overtime from this many minutes (15 by default).
Work on days off is overtimeAll the time worked on a day without schedule is overtime.
Print the daysThe 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.
The totals: Marc is late five times, Audrey left early, Jeffrey was absent twice, Tina and Ernest have overtime.
The totals: Marc is late five times, Audrey left early, Jeffrey was absent twice, Tina and Ernest have overtime.
ColumnMeaning
Scheduled / Present / Absent daysDays of the schedule; those with an attendance; those without.
Late and EarlyHow many times and how many minutes in total.
Worked hoursThe hours of the check-in and check-out pairs.
OvertimeOutside 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.
The late, early and absent days, grouped by employee.
The late, early and absent days, grouped by employee.
StatusMeaning
PresentOn time.
Late / Left early / Late and left earlyBeyond the grace.
AbsentA scheduled day without attendance.
Worked on a day offAttendance on a day without schedule.
No check-outThe employee did not check out: the day is shown without hours.
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.
The printed summary.
The printed summary.

How it is computed

RuleDetail
The scheduleThe working schedule of the employee, without public holidays and time off, in the employee's time zone.
LateFirst check-in of the day, compared with the start of the schedule.
EarlyLast check-out of the day, compared with the end of the schedule.
OvertimeThe time before the schedule starts plus the time after it ends. The lunch break is not counted.
AbsentA scheduled day before today with no attendance.
Several punchesThe first check-in and the last check-out of the day; the hours are the sum of the pairs.

Who can do what

WhoCan
Attendance officers (all attendances)Create and compute summaries, print and export them.
Attendance administratorsAlso delete summaries.

Arabic and right to left

A summary in an Arabic interface.
A summary in an Arabic interface.

Limits

LimitDetail
Odoo’s own overtimeThe module is a report: it does not approve overtime or change the overtime of Odoo Attendances.
One scheduleThe schedule of the employee (or of the company) is used; flexible hours are not interpreted.
Night shiftsAn interval that crosses midnight is attached to the day where it starts.
SizeUp 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 days

Troubleshooting

ProblemWhat to do
Everybody is absentThe employees have no working schedule, or it does not include these days.
Late for everybody by some hoursCheck the time zone of the employees: the schedule is read in it.
Too many days for so many employeesChoose a shorter period or a department.
Overtime is missingIt must reach the minimum (15 minutes by default); lower it for the report.
The PDF is empty or shows boxeswkhtmltopdf 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.