Everything between the punch and the paycheck.

Firmhours keeps punches, approvals, time off, and the period in one place. You approve the days. You download the file. That's the job.

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.

Time cards

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.

Approvals

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

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.

Access

Give each person only the access they need. Set each permission separately. Admins see everything.

Notifications

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.

Work sites

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.

Activities and customers

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.

Time off

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.

Also included

  • Roster and offboarding. The roster is who punches. Someone who doesn't clock in during a month isn't charged for that month.
  • Org chart. Drag anyone onto a new manager and the org chart updates.
  • Add your crew from a spreadsheet. Paste your list, match the columns, and everyone's in. No typing names one by one.
  • Help built in. 96 help articles inside Firmhours, searchable, and you only see the ones for what you're allowed to do.
  • Paid or unpaid breaks. Set breaks and lunches as paid or unpaid for the whole company.
  • Departments and managers. Group people by department and give each person a manager.
  • Rehire someone. Bring a past employee back and their service time picks up where it left off.
  • Starting PTO balances. Load the balances people already had before you started with Firmhours.
  • Time-card notes. Anyone can flag "this time is wrong." The manager fixes it and marks it handled.
  • Back-dated time off. Someone called in sick Tuesday? Enter it later, as long as the period isn't closed.
  • Forgot-to-clock-out reminders. Firmhours reminds people on a schedule you set.
  • Overnight shifts. A 10pm to 6am shift is 8 hours. On the night clocks fall back, it's 9, and Firmhours counts all 9.
  • Nobody's hours reset when you join. Service time, PTO tiers and holidays run from each person's real hire date, not the day you signed up.

Reports

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.

  • Hours summary
  • Hours detail
  • Hours by customer
  • Hours by activity
  • Daily totals
  • PTO balances and liability
  • PTO ledger
  • Time off taken
  • Upcoming time off
  • Employee roster
  • Birthdays
  • Hire dates
  • Flagged punches

Plus an Overview dashboard for the period at a glance.

Custom report builder

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.

Job costing

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

Built to match the payroll you already run.

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 IDNameRegularOTDTPTOHolidayTotal
1006Keisha Barnes36.220.000.000.000.0036.22
1007Rosa Delgado32.820.000.000.000.0032.82
1008Lena Fischer32.730.000.000.000.0032.73
1009Marcus Hale33.300.000.000.000.0033.30
1010Tomas Lindqvist32.750.000.000.000.0032.75
1011Owen McCarthy11.280.000.000.000.0011.28
1012Priya Natarajan33.020.000.000.000.0033.02
1013Diego Ramos34.470.000.000.000.0034.47
Approved

How the export builder works

  1. 1Start a new export format and look at the columns your payroll provider's import asks for.
  2. 2Drag in those columns and put them in the same order. You map them by hand once. Nothing is guessed for you.
  3. 3Set the header row, the date style and the separator. Pick one row per person, or one row per pay type with your provider's pay codes.
  4. 4Save it. After that, every payday export is one click.

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.