Export reports
Reports adds up attendance and leave for your company over a period you choose. You check the numbers on screen. Then you download them as a file for your accountant or for an outside payroll system.
The report counts days and minutes only. It never shows pay.
Before you start
- You need the Owner or Admin role. Other people do not see Reports in the sidebar. If they open the page, they see Admins only.
- Approve the pending leave requests for the period first. Until a request is approved, its days count as absences.
- Add your public holidays and company off-days under Holidays on Settings → Leave. Kelola does not count those dates as working days. See Set up leave types and holidays.
Pick a reporting period
- Select Reports in the sidebar. The page is titled Operational reports.
- Select the date field under Reporting period.
- Pick a start date, then an end date.
The report updates as soon as you pick the end date. Every total, chart, and file on the page uses this period. To narrow it to some people, use the filters. See Filter the report below.
When you open the page, the period runs from the 1st of this month to today. "Today" is today in your company's time zone, not on your own computer. A period can be up to one year long. If you pick a longer one, the page shows no data and you cannot export.
A period that ends after today
You can pick an end date in the future, for example the last day of this month. Kelola counts only up to today. Days after today are not target days and not absences, because they have not happened yet. The page then shows Counted up to today, with the last day it counted.
Approved leave after today is not counted yet either. It shows once its days arrive.
Check who is in the report
The report covers every employee who worked for your company during the period, and that includes you. The number next to the period shows how many people that is. When a filter is on, it counts only the people the filters keep.
- Active and Suspended people are in the report.
- Offboarded people stay in the report for the periods they worked in. Kelola counts their days only up to their Last working day, the date picked when they were offboarded. A person whose last working day is 8 September is in the September report, with target days from 1 to 8 September. Scans after that day do not count. They are not in the October report. For someone offboarded before Kelola asked for this date, the last working day is the day they were offboarded.
- Invited people are left out, because they have not started yet.
For someone who joined during the period, Kelola starts counting on their join date.
Filter the report
Four filters sit below the period: Department, Position, Office location, and Employee. Each one shows All … until you choose something, for example All departments.
- Select a filter.
- Pick one or more values. You can type to search the list.
The page updates as soon as you pick. The filters work like this:
- Inside one filter, a person matches any value you pick. With Sales and Support under Department, the report shows people in either department.
- Across filters, a person must match all of them. With Sales under Department and Bali under Office location, the report shows only people in Sales who work at Bali.
- A person with no value does not match. Someone with no department is left out as soon as you pick a department.
- Employee lists everyone who can be in a report, offboarded people too, so you can check the period someone worked before they left. Invited people are not in the list.
The filters change every total, both charts, the table, and the Accounting CSV, Excel, and Payroll CSV files. What you see is what you download. The Phase 2 handoff always covers the whole company. Filters do not change it.
To remove every filter, select Clear filters. It shows only while a filter is on.
The period and the filters are saved in the page address. You can bookmark the page, or send the link to another admin, and it opens with the same view.
If no one matches, the table shows No one matches these filters. Remove a filter or choose a different one. If a filter list cannot load, the page shows Some filters could not load. You can still use the other filters, or reload the page.
Read the totals and charts
The top of the page shows six totals for the period:
- Attendance rate: days worked as a share of target days, for everyone together.
- Days worked: days worked out of target days, for example
40 / 44. - Late minutes: all late minutes added together.
- Early departures: how many times people clocked out before the end of their work schedule.
- Paid leave days: approved paid leave, in days.
- Absences: working days with no clock-in and no approved leave.
Two charts sit below the totals:
- Attendance status splits the period's clock-ins by status: On time, Late, Remote, Unclosed, and Adjusted. Remote is a remote clock-in. Unclosed is a shift that Kelola flagged because it has no clock-out. Adjusted is a shift closed by an approved shift fix. A record an admin corrected or added counts under the status Kelola worked out for its new times.
- Days worked vs target compares the two numbers for up to 12 employees: the ones with the most target days.
Each clock-in counts once in Attendance status, under its latest status. So a late clock-in that is later flagged as unclosed counts as Unclosed. The chart counts the clock-ins of the people in the report, up to today. When a filter is on, it counts only the people the filters keep.
The page refreshes by itself every 30 seconds. New clock-ins appear without a reload.
Check each employee's numbers
Per-employee breakdown has one row per employee, sorted by name. The columns are:
- Target: the working days the person was due to work.
- Worked: the days they clocked in at least once.
- Late: how many times they clocked in late.
- Late min: their late minutes added together.
- Early out: how many times they clocked out early.
- Paid leave and Unpaid leave: their approved leave, in days.
- Absences: working days with no clock-in and no approved leave.
- No clock-out: their flagged shifts that still have no clock-out. Each one counts as a day worked with 0 hours until someone approves a shift fix. When there are any, a warning above the numbers says how many.
Understand how the numbers are counted
- Working days. A working day is a day of the person's work week, minus your company holidays (the dates under Holidays on Settings → Leave). The work week comes from the person's work schedule, or from your company's work week if the work schedule has none. Most companies use Monday to Friday. So Target can differ from person to person. See Set up your company. Kelola does not use the shifts on My team → Schedule here.
- Time zone. Kelola decides which day a clock-in belongs to in your company's time zone. See Set up your company.
- Night shifts. A night shift counts on the day it starts. A shift from Monday 22:00 to Tuesday 06:00 is a Monday: it counts toward Monday's Target, Worked and leave, never Tuesday's. A late clock-in after midnight, for example at 00:30, still belongs to the shift that started the evening before.
- Worked. Every clock-in counts, whatever its status. A clock-in on a day off or a holiday counts too, so Worked can be higher than Target.
- Late. A clock-in is late when it comes after the start of the person's work schedule plus its grace period. Late minutes count from the end of the grace period. For example, with a 09:00 start and 15 minutes of grace, a 09:20 clock-in is 5 minutes late. People with no work schedule, and remote clock-ins, are never late. Kelola works this out at the moment of the clock-in, so a later change to the work schedule does not change it.
- Early out. A clock-out is early when it comes before the end of the person's work schedule. At each clock-in, Kelola saves the work schedule the person had at that moment: its start, end, and grace period. Early departures use that saved work schedule. So if you change a work schedule later, past numbers do not change. Clock-ins from before Kelola saved work schedules have no saved copy. For those, Kelola uses the person's current work schedule. A shift fix changes only the clock-out time. The shift keeps the work schedule saved at its clock-in. A night work schedule, such as 22:00 to 06:00, ends the next morning, so a clock-out at 05:30 the next day is 30 minutes early, and a clock-out at 23:00 the same evening is 7 hours early. A person with no work schedule at clock-in never clocks out early on that day. A shift with no clock-out never counts as early.
- Leave. Only approved leave counts. Its leave type decides whether it is paid or unpaid. A half-day counts as 0.5. If a request runs past the start or the end of the period, Kelola counts only its days inside the period. A half-day stays a half-day when its day is inside the period. For example, leave from 29 September to 2 October with a half-day on 2 October counts 1.5 days in October: 1 October (whole) and 2 October (half). The same rule applies at today and at the day someone left.
- Absences. Today is part of the period when you first open the page. If today is a working day, someone who has not clocked in yet has one absence for today until they clock in.
Download a file
The four export buttons are at the top right of the page. Each one downloads a file for the period and the filters on screen. The Phase 2 handoff is the one exception: it always covers the whole company.
- Check the dates under Reporting period, and the filters below it.
- Select Accounting CSV, Excel, Payroll CSV, or Phase 2 handoff.
Your browser saves the file. The four files hold the same numbers in different shapes:
- Accounting CSV is for your accountant or a spreadsheet. Its column names are easy to read, and they are in the Language you chose in Preferences. In English, they are
Employee,Email,Target days,Days worked,Late arrivals,Late minutes,Early departures,Early departure minutes,Paid leave days,Unpaid leave days, andUnauthorized absences. For 1 to 30 September 2026, the file istimesheet-2026-09-01_to_2026-09-30.csv. - Excel is the Accounting CSV as an Excel workbook (
.xlsx). It has the same rows and the same column names, in your Language. The numbers are real number cells, so you can add them up at once. The header row stays in view while you scroll. For the same dates, the file istimesheet-2026-09-01_to_2026-09-30.xlsx. - Payroll CSV is for an outside payroll system. It has the same numbers under fixed column names for software, such as
employee_id,period_start, anddays_worked. Every row repeats the period. For the same dates, the file ispayroll-handshake-2026-09-01_to_2026-09-30.csv. - Phase 2 handoff is a JSON file (a structured text format for software) in a fixed, versioned format. It has the late and early-departure minutes, but not how many times each happened. Kelola checks every record before the download starts. Kelola's own Payroll does not use this file, so use it only if another system asks for this format. For the same dates, the file is
phase2-handshake-2026-09-01_to_2026-09-30.json.
Early departure minutes appear only in the files, not on screen. The Payroll CSV and the Phase 2 handoff keep the same column names in every language, so that software can read them.
The export buttons are off while another file downloads. They are also off when the report has no rows, for example when the period is longer than one year.
If something goes wrong, Kelola tells you:
- Export failed means a CSV or Excel file did not download. Try again.
- Export blocked means Phase 2 handoff did not download. When a record fails the check, Kelola downloads nothing at all. A common cause is a work email that is not a valid address. An owner or admin can fix it on the person's Edit employee form, see Edit an employee's record. Then try again. If you still see it, contact the Kelola team.
- Phase 2 export ready means the file downloaded. It also shows how many employee records the file holds.
Fix a number that looks wrong
Fix the record behind the number, not the file. The page picks up the change within 30 seconds. Then download the file again.
- A day shows as an absence, but the person was on leave. Make sure their leave request is approved. See Approve requests.
- A holiday counts as a working day. Add it under Holidays on Settings → Leave.
- Someone forgot to clock out. Once Kelola flags the shift as unclosed, they can request a shift fix. The day already counts in Worked. Until the fix is approved, it can never count as an early departure. See Fix a shift.
- Late or early numbers look wrong. Check the Work schedule on the person's employee record. See Edit an employee's record. A change there counts from the person's next clock-in. Past clock-ins keep the work schedule saved with them. Only older clock-ins, from before Kelola saved work schedules, are recounted with the new one.
- Someone forgot to clock in, or a time is wrong. An owner or admin can add the missing record or correct the wrong one on Attendance records. The report then counts the new times and status. A finalized pay run does not change, and a draft pay run changes only when you run it again. See Fix a shift.