Clocking in
On a phone, one tap. On a tablet on the wall, a name and a 4-digit PIN. No email is required to punch.
On screen, a day reads 7h 56m.
Firmhours keeps punches, approvals, time off, and the period in one place. You approve the days. You download the file. That's the job.
On a phone, one tap. On a tablet on the wall, a name and a 4-digit PIN. No email is required to punch.
On screen, a day reads 7h 56m.
Every punch lands on that person's time card for the day, with the activity and customer they picked. Screens show hours as 7h 56m. The payroll file writes the same hours as 7.93.
A punch away from a work site, with no location shared, or with a long break carries a flag and the reason, so you know which days to look at before you approve.
Anyone can leave a note on a day, like "I forgot to clock out at 4:30," for whoever approves it.
Managers approve one day at a time, for their own team. Flagged days stay flagged until someone looks. Nothing is corrected for you.
If something is wrong, fix the punch, the activity or the customer, then approve. The editor's name stays on the record and the employee is notified.
Withdraw an approval if you need to. Only people with the approve-time permission can sign days off.
Payday collects the approved days for the period into the hours file you built: regular, overtime, double time, PTO and holiday hours for each person, written as decimals.
Download it and import it into the payroll you already run. Finalize locks the period and posts time-off accrual. An admin can reopen it within 4 hours.
Missed someone? Pay one person off-cycle instead of redoing the run.
Give each person only the access they need. Set each permission separately. Admins see everything.
People are told when their day is edited or their time-off request is decided. Firmhours reminds anyone who forgot to clock out, or is still clocked in, on a schedule you set.
Birthdays, hire-date anniversaries and the reminders you add for a person, like a 90-day or 6-month review, don't send a notification. They show up on Home base, so they're in front of you when you open Firmhours.
Turn on location for punches, then add a work site: give it a name, set the allowed distance, and enter an address or use your current location. Click Add site and you're done.
From then on, a punch outside the allowed distance is flagged for whoever approves the day, with the reason. It is never blocked. People who work from home or on the road can be marked remote.
Location is read only at the moment of a punch, and only if the person allows it. Nothing tracks anyone during the day.
A punch can carry an activity and a customer. People pick them on the clock screen and switch mid-shift with one tap, without clocking out.
Put activities, departments and customers in the order your crew picks them, so the common ones are on top.
Then run Hours by customer or Hours by activity for any date range to see where the time went. That's your job costing.
People request time off. You approve, deny, or cancel. Accrual, a waiting period, and carry-over are included. Holidays are observed automatically. A coverage view shows who is out.
Thirteen named reports cover payday and the rest of the period, plus an Overview dashboard. Hours summary is the one you run on payday: each person's hours for the period, in one place.
Drill into hours by customer, activity or person, then switch the range to the full month. Managers see their own team. A permission widens reports to the whole company.
Need a different shape? Build a custom report: pick the columns, name it, save it. Every report downloads as a CSV.
Hours summary is the fixed report you run on payday: each person's hours for the period, in one place. It doesn't change shape. If you want different columns, build a custom report.
Plus an Overview dashboard for the period at a glance.
Pick the columns you want, name the report and save it. It sits in your report list next to the others and downloads as a CSV like the rest.
A punch can carry a customer and an activity. Run Hours by customer or Hours by activity for any date range to see where the time went.
Export formats
Firmhours builds the hours file from your approved days. You upload it in your payroll provider's hours import. No connection to set up, nothing to break.
Firmhours builds the hours file in the layout your payroll provider's import expects. You map the columns by hand once, by drag and drop: the order, headers and date style. Simple formats take seconds; complex ones a few minutes. Save it, and every export after that is one click. Files write hours as decimals, like 7.93. If your provider changes its import, adjust the columns and save.
Ask them to turn it on before your first payday. See which ones on Connections.
| Payroll ID | Name | Regular | OT | DT | PTO | Holiday | Total |
|---|---|---|---|---|---|---|---|
| 1006 | Keisha Barnes | 36.22 | 0.00 | 0.00 | 0.00 | 0.00 | 36.22 |
| 1007 | Rosa Delgado | 32.82 | 0.00 | 0.00 | 0.00 | 0.00 | 32.82 |
| 1008 | Lena Fischer | 32.73 | 0.00 | 0.00 | 0.00 | 0.00 | 32.73 |
| 1009 | Marcus Hale | 33.30 | 0.00 | 0.00 | 0.00 | 0.00 | 33.30 |
| 1010 | Tomas Lindqvist | 32.75 | 0.00 | 0.00 | 0.00 | 0.00 | 32.75 |
| 1011 | Owen McCarthy | 11.28 | 0.00 | 0.00 | 0.00 | 0.00 | 11.28 |
| 1012 | Priya Natarajan | 33.02 | 0.00 | 0.00 | 0.00 | 0.00 | 33.02 |
| 1013 | Diego Ramos | 34.47 | 0.00 | 0.00 | 0.00 | 0.00 | 34.47 |
A simple format takes seconds to build. A complex one can take a few minutes. If an import fails, compare your file with what the provider expects. It is nearly always a header mismatch.